1368c31abSDavid du Colombier /* 2368c31abSDavid du Colombier * sorted by 4,/^$/|sort -bd +1 3368c31abSDavid du Colombier */ 4368c31abSDavid du Colombier int addarena(Arena *name); 5368c31abSDavid du Colombier void addstat(int, int); 6368c31abSDavid du Colombier void addstat2(int, int, int, int); 7368c31abSDavid du Colombier ZBlock *alloczblock(u32int size, int zeroed, uint alignment); 8368c31abSDavid du Colombier Arena *amapitoa(Index *index, u64int a, u64int *aa); 9f9e1cf08SDavid du Colombier Arena *amapitoag(Index *index, u64int a, u64int *gstart, u64int *glimit, int *g); 10368c31abSDavid du Colombier u64int arenadirsize(Arena *arena, u32int clumps); 11f9e1cf08SDavid du Colombier int arenatog(Arena *arena, u64int aa, u64int *gstart, u64int *glimit, int *g); 12368c31abSDavid du Colombier void arenaupdate(Arena *arena, u32int size, u8int *score); 13f9e1cf08SDavid du Colombier int asumload(Arena *arena, int g, IEntry *entries, int maxentries); 14368c31abSDavid du Colombier void backsumarena(Arena *arena); 15368c31abSDavid du Colombier void binstats(long (*fn)(Stats *s0, Stats *s1, void*), void *arg, long t0, long t1, Statbin *bin, int nbin); 16368c31abSDavid du Colombier int bloominit(Bloom*, vlong, uchar*); 17368c31abSDavid du Colombier int bucklook(u8int*, int, u8int*, int); 18368c31abSDavid du Colombier u32int buildbucket(Index *ix, IEStream *ies, IBucket *ib, uint); 19368c31abSDavid du Colombier void checkdcache(void); 20368c31abSDavid du Colombier void checklumpcache(void); 21368c31abSDavid du Colombier int clumpinfoeq(ClumpInfo *c, ClumpInfo *d); 22368c31abSDavid du Colombier int clumpinfoeq(ClumpInfo *c, ClumpInfo *d); 23368c31abSDavid du Colombier u32int clumpmagic(Arena *arena, u64int aa); 24368c31abSDavid du Colombier uint countbits(uint n); 25368c31abSDavid du Colombier int delarena(Arena *arena); 26368c31abSDavid du Colombier void delaykickicache(void); 27368c31abSDavid du Colombier void delaykickround(Round*); 28368c31abSDavid du Colombier void delaykickroundproc(void*); 29368c31abSDavid du Colombier void dirtydblock(DBlock*, int); 30368c31abSDavid du Colombier void diskaccess(int); 31368c31abSDavid du Colombier void disksched(void); 32368c31abSDavid du Colombier void *emalloc(ulong); 33368c31abSDavid du Colombier void emptydcache(void); 34368c31abSDavid du Colombier void emptyicache(void); 35368c31abSDavid du Colombier void emptylumpcache(void); 36368c31abSDavid du Colombier void *erealloc(void *, ulong); 37368c31abSDavid du Colombier char *estrdup(char*); 38368c31abSDavid du Colombier void *ezmalloc(ulong); 39368c31abSDavid du Colombier Arena *findarena(char *name); 40368c31abSDavid du Colombier int flushciblocks(Arena *arena); 41368c31abSDavid du Colombier void flushdcache(void); 42368c31abSDavid du Colombier void flushicache(void); 43368c31abSDavid du Colombier int flushpart(Part*); 44368c31abSDavid du Colombier void flushqueue(void); 45368c31abSDavid du Colombier void fmtzbinit(Fmt *f, ZBlock *b); 46368c31abSDavid du Colombier void freearena(Arena *arena); 47368c31abSDavid du Colombier void freearenapart(ArenaPart *ap, int freearenas); 48368c31abSDavid du Colombier void freeiestream(IEStream *ies); 49368c31abSDavid du Colombier void freeifile(IFile *f); 50368c31abSDavid du Colombier void freeisect(ISect *is); 51368c31abSDavid du Colombier void freeindex(Index *index); 52368c31abSDavid du Colombier void freepart(Part *part); 53368c31abSDavid du Colombier void freezblock(ZBlock *b); 54368c31abSDavid du Colombier DBlock *_getdblock(Part *part, u64int addr, int mode, int load); 55368c31abSDavid du Colombier DBlock *getdblock(Part *part, u64int addr, int mode); 56368c31abSDavid du Colombier u32int hashbits(u8int *score, int nbits); 57368c31abSDavid du Colombier char *hargstr(HConnect*, char*, char*); 58368c31abSDavid du Colombier vlong hargint(HConnect*, char*, vlong); 59368c31abSDavid du Colombier int hdebug(HConnect*); 60368c31abSDavid du Colombier int hdisk(HConnect*); 61368c31abSDavid du Colombier int hnotfound(HConnect*); 62*c65cf52cSDavid du Colombier int hproc(HConnect*); 63368c31abSDavid du Colombier int hsethtml(HConnect*); 64368c31abSDavid du Colombier int hsettext(HConnect*); 65368c31abSDavid du Colombier int httpdinit(char *address, char *webroot); 66368c31abSDavid du Colombier int iaddrcmp(IAddr *ia1, IAddr *ia2); 67368c31abSDavid du Colombier IEntry* icachedirty(u32int, u32int, u64int); 68368c31abSDavid du Colombier ulong icachedirtyfrac(void); 69368c31abSDavid du Colombier void icacheclean(IEntry*); 70f9e1cf08SDavid du Colombier int icachelookup(u8int *score, int type, IAddr *ia); 71f9e1cf08SDavid du Colombier AState icachestate(void); 72368c31abSDavid du Colombier int ientrycmp(const void *vie1, const void *vie2); 73368c31abSDavid du Colombier char *ifileline(IFile *f); 74368c31abSDavid du Colombier int ifilename(IFile *f, char *dst); 75368c31abSDavid du Colombier int ifileu32int(IFile *f, u32int *r); 76368c31abSDavid du Colombier int inbloomfilter(Bloom*, u8int*); 77368c31abSDavid du Colombier int indexsect(Index *ix, u8int *score); 78368c31abSDavid du Colombier int indexsect0(Index *ix, u32int buck); 79368c31abSDavid du Colombier Arena *initarena(Part *part, u64int base, u64int size, u32int blocksize); 80368c31abSDavid du Colombier ArenaPart *initarenapart(Part *part); 81368c31abSDavid du Colombier int initarenasum(void); 82368c31abSDavid du Colombier void initbloomfilter(Index*); 83368c31abSDavid du Colombier void initdcache(u32int mem); 84f9e1cf08SDavid du Colombier void initicache(u32int mem); 85368c31abSDavid du Colombier void initicachewrite(void); 86368c31abSDavid du Colombier IEStream *initiestream(Part *part, u64int off, u64int clumps, u32int size); 87368c31abSDavid du Colombier ISect *initisect(Part *part); 88368c31abSDavid du Colombier Index *initindex(char *name, ISect **sects, int n); 89368c31abSDavid du Colombier void initlumpcache(u32int size, u32int nblocks); 90368c31abSDavid du Colombier int initlumpqueues(int nq); 91368c31abSDavid du Colombier Part* initpart(char *name, int mode); 92368c31abSDavid du Colombier void initround(Round*, char*, int); 93368c31abSDavid du Colombier int initventi(char *config, Config *conf); 94368c31abSDavid du Colombier void insertlump(Lump *lump, Packet *p); 95f9e1cf08SDavid du Colombier int insertscore(u8int *score, IAddr *ia, int state, AState *as); 96368c31abSDavid du Colombier void kickdcache(void); 97368c31abSDavid du Colombier void kickicache(void); 98368c31abSDavid du Colombier void kickround(Round*, int wait); 99368c31abSDavid du Colombier int loadbloom(Bloom*); 100368c31abSDavid du Colombier ZBlock *loadclump(Arena *arena, u64int aa, int blocks, Clump *cl, u8int *score, int verify); 101368c31abSDavid du Colombier DBlock *loadibucket(Index *index, u8int *score, ISect **is, u32int *buck, IBucket *ib); 102368c31abSDavid du Colombier int loadientry(Index *index, u8int *score, int type, IEntry *ie); 103368c31abSDavid du Colombier void logerr(int severity, char *fmt, ...); 104368c31abSDavid du Colombier Lump *lookuplump(u8int *score, int type); 105f9e1cf08SDavid du Colombier int lookupscore(u8int *score, int type, IAddr *ia); 106368c31abSDavid du Colombier int maparenas(AMap *am, Arena **arenas, int n, char *what); 107368c31abSDavid du Colombier void markbloomfilter(Bloom*, u8int*); 108368c31abSDavid du Colombier uint msec(void); 109368c31abSDavid du Colombier int namecmp(char *s, char *t); 110368c31abSDavid du Colombier void namecp(char *dst, char *src); 111368c31abSDavid du Colombier int nameok(char *name); 112f9e1cf08SDavid du Colombier void needmainindex(void); 113368c31abSDavid du Colombier void needzeroscore(void); 114368c31abSDavid du Colombier Arena *newarena(Part *part, u32int, char *name, u64int base, u64int size, u32int blocksize); 115368c31abSDavid du Colombier ArenaPart *newarenapart(Part *part, u32int blocksize, u32int tabsize); 116368c31abSDavid du Colombier ISect *newisect(Part *part, u32int vers, char *name, u32int blocksize, u32int tabsize); 117368c31abSDavid du Colombier Index *newindex(char *name, ISect **sects, int n); 118368c31abSDavid du Colombier u32int now(void); 119368c31abSDavid du Colombier int okamap(AMap *am, int n, u64int start, u64int stop, char *what); 120368c31abSDavid du Colombier int okibucket(IBucket*, ISect*); 121368c31abSDavid du Colombier int outputamap(Fmt *f, AMap *am, int n); 122368c31abSDavid du Colombier int outputindex(Fmt *f, Index *ix); 123368c31abSDavid du Colombier int _packarena(Arena *arena, u8int *buf, int); 124368c31abSDavid du Colombier int packarena(Arena *arena, u8int *buf); 125368c31abSDavid du Colombier int packarenahead(ArenaHead *head, u8int *buf); 126368c31abSDavid du Colombier int packarenapart(ArenaPart *as, u8int *buf); 127368c31abSDavid du Colombier void packbloomhead(Bloom*, u8int*); 128368c31abSDavid du Colombier int packclump(Clump *c, u8int *buf, u32int); 129368c31abSDavid du Colombier void packclumpinfo(ClumpInfo *ci, u8int *buf); 130368c31abSDavid du Colombier void packibucket(IBucket *b, u8int *buf, u32int magic); 131368c31abSDavid du Colombier void packientry(IEntry *i, u8int *buf); 132368c31abSDavid du Colombier int packisect(ISect *is, u8int *buf); 133368c31abSDavid du Colombier void packmagic(u32int magic, u8int *buf); 134368c31abSDavid du Colombier ZBlock *packet2zblock(Packet *p, u32int size); 135368c31abSDavid du Colombier int parseamap(IFile *f, AMapN *amn); 136368c31abSDavid du Colombier int parseindex(IFile *f, Index *ix); 137368c31abSDavid du Colombier void partblocksize(Part *part, u32int blocksize); 138368c31abSDavid du Colombier int partifile(IFile *f, Part *part, u64int start, u32int size); 139368c31abSDavid du Colombier void printarenapart(int fd, ArenaPart *ap); 140368c31abSDavid du Colombier void printarena(int fd, Arena *arena); 141368c31abSDavid du Colombier void printindex(int fd, Index *ix); 142368c31abSDavid du Colombier void printstats(void); 143368c31abSDavid du Colombier void putdblock(DBlock *b); 144368c31abSDavid du Colombier void putlump(Lump *b); 145368c31abSDavid du Colombier int queuewrite(Lump *b, Packet *p, int creator, uint ms); 146368c31abSDavid du Colombier u32int readarena(Arena *arena, u64int aa, u8int *buf, long n); 147368c31abSDavid du Colombier int readarenamap(AMapN *amn, Part *part, u64int base, u32int size); 148368c31abSDavid du Colombier Bloom *readbloom(Part*); 149368c31abSDavid du Colombier int readclumpinfo(Arena *arena, int clump, ClumpInfo *ci); 150368c31abSDavid du Colombier int readclumpinfos(Arena *arena, int clump, ClumpInfo *cis, int n); 151368c31abSDavid du Colombier ZBlock *readfile(char *name); 152368c31abSDavid du Colombier int readifile(IFile *f, char *name); 153368c31abSDavid du Colombier Packet *readlump(u8int *score, int type, u32int size, int *cached); 154368c31abSDavid du Colombier int readpart(Part *part, u64int addr, u8int *buf, u32int n); 155368c31abSDavid du Colombier int resetbloom(Bloom*); 156368c31abSDavid du Colombier int runconfig(char *config, Config*); 157368c31abSDavid du Colombier int scorecmp(u8int *, u8int *); 158368c31abSDavid du Colombier void scoremem(u8int *score, u8int *buf, int size); 159368c31abSDavid du Colombier void setatailstate(AState*); 160368c31abSDavid du Colombier void seterr(int severity, char *fmt, ...); 161368c31abSDavid du Colombier void setstat(int, long); 162368c31abSDavid du Colombier void settrace(char *type); 163368c31abSDavid du Colombier u64int sortrawientries(Index *ix, Part *tmp, u64int *tmpoff, Bloom *bloom); 164368c31abSDavid du Colombier void startbloomproc(Bloom*); 165368c31abSDavid du Colombier Memimage* statgraph(Graph *g); 166368c31abSDavid du Colombier void statsinit(void); 167368c31abSDavid du Colombier int storeclump(Index *index, ZBlock *b, u8int *score, int type, u32int creator, IAddr *ia); 168368c31abSDavid du Colombier int storeientry(Index *index, IEntry *m); 169368c31abSDavid du Colombier int strscore(char *s, u8int *score); 170368c31abSDavid du Colombier int stru32int(char *s, u32int *r); 171368c31abSDavid du Colombier int stru64int(char *s, u64int *r); 172368c31abSDavid du Colombier void sumarena(Arena *arena); 173f9e1cf08SDavid du Colombier int syncarena(Arena *arena, u32int n, int zok, int fix); 174f9e1cf08SDavid du Colombier int syncindex(Index *ix); 175368c31abSDavid du Colombier void trace(char *type, char*, ...); 176368c31abSDavid du Colombier void traceinit(void); 177368c31abSDavid du Colombier int u64log2(u64int v); 178368c31abSDavid du Colombier u64int unittoull(char *s); 179368c31abSDavid du Colombier int unpackarena(Arena *arena, u8int *buf); 180368c31abSDavid du Colombier int unpackarenahead(ArenaHead *head, u8int *buf); 181368c31abSDavid du Colombier int unpackarenapart(ArenaPart *as, u8int *buf); 182368c31abSDavid du Colombier int unpackbloomhead(Bloom*, u8int*); 183368c31abSDavid du Colombier int unpackclump(Clump *c, u8int *buf, u32int); 184368c31abSDavid du Colombier void unpackclumpinfo(ClumpInfo *ci, u8int *buf); 185368c31abSDavid du Colombier void unpackibucket(IBucket *b, u8int *buf, u32int magic); 186368c31abSDavid du Colombier void unpackientry(IEntry *i, u8int *buf); 187368c31abSDavid du Colombier int unpackisect(ISect *is, u8int *buf); 188368c31abSDavid du Colombier u32int unpackmagic(u8int *buf); 189368c31abSDavid du Colombier void ventifmtinstall(void); 190368c31abSDavid du Colombier void vtloghdump(Hio*, VtLog*); 191368c31abSDavid du Colombier void vtloghlist(Hio*); 192368c31abSDavid du Colombier int vtproc(void(*)(void*), void*); 193368c31abSDavid du Colombier int vttypevalid(int type); 194368c31abSDavid du Colombier void waitforkick(Round*); 195368c31abSDavid du Colombier int wbarena(Arena *arena); 196368c31abSDavid du Colombier int wbarenahead(Arena *arena); 197368c31abSDavid du Colombier int wbarenamap(AMap *am, int n, Part *part, u64int base, u64int size); 198368c31abSDavid du Colombier int wbarenapart(ArenaPart *ap); 199368c31abSDavid du Colombier void wbbloomhead(Bloom*); 200368c31abSDavid du Colombier int wbisect(ISect *is); 201368c31abSDavid du Colombier int wbindex(Index *ix); 202368c31abSDavid du Colombier int whackblock(u8int *dst, u8int *src, int ssize); 203f9e1cf08SDavid du Colombier u64int writeaclump(Arena *a, Clump *c, u8int *clbuf); 204368c31abSDavid du Colombier u32int writearena(Arena *arena, u64int aa, u8int *clbuf, u32int n); 205368c31abSDavid du Colombier int writebloom(Bloom*); 206368c31abSDavid du Colombier int writeclumpinfo(Arena *arean, int clump, ClumpInfo *ci); 207368c31abSDavid du Colombier int writepng(Hio*, Memimage*); 208f9e1cf08SDavid du Colombier u64int writeiclump(Index *ix, Clump *c, u8int *clbuf); 209368c31abSDavid du Colombier int writelump(Packet *p, u8int *score, int type, u32int creator, uint ms); 210368c31abSDavid du Colombier int writepart(Part *part, u64int addr, u8int *buf, u32int n); 211368c31abSDavid du Colombier int writeqlump(Lump *u, Packet *p, int creator, uint ms); 212368c31abSDavid du Colombier Packet *zblock2packet(ZBlock *zb, u32int size); 213368c31abSDavid du Colombier void zeropart(Part *part, int blocksize); 214368c31abSDavid du Colombier 215368c31abSDavid du Colombier /* 216368c31abSDavid du Colombier #pragma varargck argpos sysfatal 1 217368c31abSDavid du Colombier #pragma varargck argpos logerr 2 218368c31abSDavid du Colombier #pragma varargck argpos SetErr 2 219368c31abSDavid du Colombier */ 220368c31abSDavid du Colombier 221368c31abSDavid du Colombier #define scorecmp(h1,h2) memcmp((h1),(h2),VtScoreSize) 222368c31abSDavid du Colombier #define scorecp(h1,h2) memmove((h1),(h2),VtScoreSize) 223368c31abSDavid du Colombier 224368c31abSDavid du Colombier #define MK(t) ((t*)emalloc(sizeof(t))) 225368c31abSDavid du Colombier #define MKZ(t) ((t*)ezmalloc(sizeof(t))) 226368c31abSDavid du Colombier #define MKN(t,n) ((t*)emalloc((n)*sizeof(t))) 227368c31abSDavid du Colombier #define MKNZ(t,n) ((t*)ezmalloc((n)*sizeof(t))) 228368c31abSDavid du Colombier #define MKNA(t,at,n) ((t*)emalloc(sizeof(t) + (n)*sizeof(at))) 229