fns.h 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. /*
  2. * This file is part of the UCB release of Plan 9. It is subject to the license
  3. * terms in the LICENSE file found in the top-level directory of this
  4. * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
  5. * part of the UCB release of Plan 9, including this file, may be copied,
  6. * modified, propagated, or distributed except according to the terms contained
  7. * in the LICENSE file.
  8. */
  9. /*
  10. * sorted by 4,/^$/|sort -bd +1
  11. */
  12. int addarena(Arena *name);
  13. void addstat(int, int);
  14. void addstat2(int, int, int, int);
  15. ZBlock *alloczblock(uint32_t size, int zeroed, uint alignment);
  16. Arena *amapitoa(Index *index, uint64_t a, uint64_t *aa);
  17. Arena *amapitoag(Index *index, uint64_t a, uint64_t *gstart, uint64_t *glimit, int *g);
  18. uint64_t arenadirsize(Arena *arena, uint32_t clumps);
  19. int arenatog(Arena *arena, uint64_t aa, uint64_t *gstart, uint64_t *glimit, int *g);
  20. void arenaupdate(Arena *arena, uint32_t size, uint8_t *score);
  21. int asumload(Arena *arena, int g, IEntry *entries, int maxentries);
  22. void backsumarena(Arena *arena);
  23. void binstats(int32_t (*fn)(Stats *s0, Stats *s1, void*), void *arg, int32_t t0, int32_t t1, Statbin *bin, int nbin);
  24. int bloominit(Bloom*, int64_t, unsigned char*);
  25. int bucklook(uint8_t*, int, uint8_t*, int);
  26. uint32_t buildbucket(Index *ix, IEStream *ies, IBucket *ib, uint);
  27. void checkdcache(void);
  28. void checklumpcache(void);
  29. int clumpinfoeq(ClumpInfo *c, ClumpInfo *d);
  30. int clumpinfoeq(ClumpInfo *c, ClumpInfo *d);
  31. uint32_t clumpmagic(Arena *arena, uint64_t aa);
  32. uint countbits(uint n);
  33. int delarena(Arena *arena);
  34. void delaykickicache(void);
  35. void delaykickround(Round*);
  36. void delaykickroundproc(void*);
  37. void dirtydblock(DBlock*, int);
  38. void diskaccess(int);
  39. void disksched(void);
  40. void *emalloc(uint32_t);
  41. void emptydcache(void);
  42. void emptyicache(void);
  43. void emptylumpcache(void);
  44. void *erealloc(void *, uint32_t);
  45. char *estrdup(char*);
  46. void *ezmalloc(uint32_t);
  47. Arena *findarena(char *name);
  48. int flushciblocks(Arena *arena);
  49. void flushdcache(void);
  50. void flushicache(void);
  51. int flushpart(Part*);
  52. void flushqueue(void);
  53. void fmtzbinit(Fmt *f, ZBlock *b);
  54. void freearena(Arena *arena);
  55. void freearenapart(ArenaPart *ap, int freearenas);
  56. void freeiestream(IEStream *ies);
  57. void freeifile(IFile *f);
  58. void freeisect(ISect *is);
  59. void freeindex(Index *index);
  60. void freepart(Part *part);
  61. void freezblock(ZBlock *b);
  62. DBlock *_getdblock(Part *part, uint64_t addr, int mode, int load);
  63. DBlock *getdblock(Part *part, uint64_t addr, int mode);
  64. uint32_t hashbits(uint8_t *score, int nbits);
  65. char *hargstr(HConnect*, char*, char*);
  66. int64_t hargint(HConnect*, char*, int64_t);
  67. int hdebug(HConnect*);
  68. int hdisk(HConnect*);
  69. int hnotfound(HConnect*);
  70. int hproc(HConnect*);
  71. int hsethtml(HConnect*);
  72. int hsettext(HConnect*);
  73. int httpdinit(char *address, char *webroot);
  74. int iaddrcmp(IAddr *ia1, IAddr *ia2);
  75. IEntry* icachedirty(uint32_t, uint32_t, uint64_t);
  76. uint32_t icachedirtyfrac(void);
  77. void icacheclean(IEntry*);
  78. int icachelookup(uint8_t *score, int type, IAddr *ia);
  79. AState icachestate(void);
  80. int ientrycmp(const void *vie1, const void *vie2);
  81. char *ifileline(IFile *f);
  82. int ifilename(IFile *f, char *dst);
  83. int ifileuint32_t(IFile *f, uint32_t *r);
  84. int inbloomfilter(Bloom*, uint8_t*);
  85. int indexsect(Index *ix, uint8_t *score);
  86. int indexsect0(Index *ix, uint32_t buck);
  87. Arena *initarena(Part *part, uint64_t base, uint64_t size, uint32_t blocksize);
  88. ArenaPart *initarenapart(Part *part);
  89. int initarenasum(void);
  90. void initbloomfilter(Index*);
  91. void initdcache(uint32_t mem);
  92. void initicache(uint32_t mem);
  93. void initicachewrite(void);
  94. IEStream *initiestream(Part *part, uint64_t off, uint64_t clumps, uint32_t size);
  95. ISect *initisect(Part *part);
  96. Index *initindex(char *name, ISect **sects, int n);
  97. void initlumpcache(uint32_t size, uint32_t nblocks);
  98. int initlumpqueues(int nq);
  99. Part* initpart(char *name, int mode);
  100. void initround(Round*, char*, int);
  101. int initventi(char *config, Config *conf);
  102. void insertlump(Lump *lump, Packet *p);
  103. int insertscore(uint8_t *score, IAddr *ia, int state, AState *as);
  104. void kickdcache(void);
  105. void kickicache(void);
  106. void kickround(Round*, int wait);
  107. int loadbloom(Bloom*);
  108. ZBlock *loadclump(Arena *arena, uint64_t aa, int blocks, Clump *cl, uint8_t *score, int verify);
  109. DBlock *loadibucket(Index *index, uint8_t *score, ISect **is, uint32_t *buck, IBucket *ib);
  110. int loadientry(Index *index, uint8_t *score, int type, IEntry *ie);
  111. void logerr(int severity, char *fmt, ...);
  112. Lump *lookuplump(uint8_t *score, int type);
  113. int lookupscore(uint8_t *score, int type, IAddr *ia);
  114. int maparenas(AMap *am, Arena **arenas, int n, char *what);
  115. void markbloomfilter(Bloom*, uint8_t*);
  116. uint msec(void);
  117. int namecmp(char *s, char *t);
  118. void namecp(char *dst, char *src);
  119. int nameok(char *name);
  120. void needmainindex(void);
  121. void needzeroscore(void);
  122. Arena *newarena(Part *part, uint32_t, char *name, uint64_t base, uint64_t size, uint32_t blocksize);
  123. ArenaPart *newarenapart(Part *part, uint32_t blocksize, uint32_t tabsize);
  124. ISect *newisect(Part *part, uint32_t vers, char *name, uint32_t blocksize, uint32_t tabsize);
  125. Index *newindex(char *name, ISect **sects, int n);
  126. uint32_t now(void);
  127. int okamap(AMap *am, int n, uint64_t start, uint64_t stop, char *what);
  128. int okibucket(IBucket*, ISect*);
  129. int outputamap(Fmt *f, AMap *am, int n);
  130. int outputindex(Fmt *f, Index *ix);
  131. int _packarena(Arena *arena, uint8_t *buf, int);
  132. int packarena(Arena *arena, uint8_t *buf);
  133. int packarenahead(ArenaHead *head, uint8_t *buf);
  134. int packarenapart(ArenaPart *as, uint8_t *buf);
  135. void packbloomhead(Bloom*, uint8_t*);
  136. int packclump(Clump *c, uint8_t *buf, uint32_t);
  137. void packclumpinfo(ClumpInfo *ci, uint8_t *buf);
  138. void packibucket(IBucket *b, uint8_t *buf, uint32_t magic);
  139. void packientry(IEntry *i, uint8_t *buf);
  140. int packisect(ISect *is, uint8_t *buf);
  141. void packmagic(uint32_t magic, uint8_t *buf);
  142. ZBlock *packet2zblock(Packet *p, uint32_t size);
  143. int parseamap(IFile *f, AMapN *amn);
  144. int parseindex(IFile *f, Index *ix);
  145. void partblocksize(Part *part, uint32_t blocksize);
  146. int partifile(IFile *f, Part *part, uint64_t start, uint32_t size);
  147. void printarenapart(int fd, ArenaPart *ap);
  148. void printarena(int fd, Arena *arena);
  149. void printindex(int fd, Index *ix);
  150. void printstats(void);
  151. void putdblock(DBlock *b);
  152. void putlump(Lump *b);
  153. int queuewrite(Lump *b, Packet *p, int creator, uint ms);
  154. uint32_t readarena(Arena *arena, uint64_t aa, uint8_t *buf, int32_t n);
  155. int readarenamap(AMapN *amn, Part *part, uint64_t base, uint32_t size);
  156. Bloom *readbloom(Part*);
  157. int readclumpinfo(Arena *arena, int clump, ClumpInfo *ci);
  158. int readclumpinfos(Arena *arena, int clump, ClumpInfo *cis, int n);
  159. ZBlock *readfile(char *name);
  160. int readifile(IFile *f, char *name);
  161. Packet *readlump(uint8_t *score, int type, uint32_t size, int *cached);
  162. int readpart(Part *part, uint64_t addr, uint8_t *buf, uint32_t n);
  163. int resetbloom(Bloom*);
  164. int runconfig(char *config, Config*);
  165. int scorecmp(uint8_t *, uint8_t *);
  166. void scoremem(uint8_t *score, uint8_t *buf, int size);
  167. void setatailstate(AState*);
  168. void seterr(int severity, char *fmt, ...);
  169. void setstat(int, int32_t);
  170. void settrace(char *type);
  171. uint64_t sortrawientries(Index *ix, Part *tmp, uint64_t *tmpoff, Bloom *bloom);
  172. void startbloomproc(Bloom*);
  173. Memimage* statgraph(Graph *g);
  174. void statsinit(void);
  175. int storeclump(Index *index, ZBlock *b, uint8_t *score, int type, uint32_t creator, IAddr *ia);
  176. int storeientry(Index *index, IEntry *m);
  177. int strscore(char *s, uint8_t *score);
  178. int struint32_t(char *s, uint32_t *r);
  179. int struint64_t(char *s, uint64_t *r);
  180. void sumarena(Arena *arena);
  181. int syncarena(Arena *arena, uint32_t n, int zok, int fix);
  182. int syncindex(Index *ix);
  183. void trace(char *type, char*, ...);
  184. void traceinit(void);
  185. int u64log2(uint64_t v);
  186. uint64_t unittoull(char *s);
  187. int unpackarena(Arena *arena, uint8_t *buf);
  188. int unpackarenahead(ArenaHead *head, uint8_t *buf);
  189. int unpackarenapart(ArenaPart *as, uint8_t *buf);
  190. int unpackbloomhead(Bloom*, uint8_t*);
  191. int unpackclump(Clump *c, uint8_t *buf, uint32_t);
  192. void unpackclumpinfo(ClumpInfo *ci, uint8_t *buf);
  193. void unpackibucket(IBucket *b, uint8_t *buf, uint32_t magic);
  194. void unpackientry(IEntry *i, uint8_t *buf);
  195. int unpackisect(ISect *is, uint8_t *buf);
  196. uint32_t unpackmagic(uint8_t *buf);
  197. void ventifmtinstall(void);
  198. void vtloghdump(Hio*, VtLog*);
  199. void vtloghlist(Hio*);
  200. int vtproc(void(*)(void*), void*);
  201. int vttypevalid(int type);
  202. void waitforkick(Round*);
  203. int wbarena(Arena *arena);
  204. int wbarenahead(Arena *arena);
  205. int wbarenamap(AMap *am, int n, Part *part, uint64_t base, uint64_t size);
  206. int wbarenapart(ArenaPart *ap);
  207. void wbbloomhead(Bloom*);
  208. int wbisect(ISect *is);
  209. int wbindex(Index *ix);
  210. int whackblock(uint8_t *dst, uint8_t *src, int ssize);
  211. uint64_t writeaclump(Arena *a, Clump *c, uint8_t *clbuf);
  212. uint32_t writearena(Arena *arena, uint64_t aa, uint8_t *clbuf, uint32_t n);
  213. int writebloom(Bloom*);
  214. int writeclumpinfo(Arena *arean, int clump, ClumpInfo *ci);
  215. int writepng(Hio*, Memimage*);
  216. uint64_t writeiclump(Index *ix, Clump *c, uint8_t *clbuf);
  217. int writelump(Packet *p, uint8_t *score, int type, uint32_t creator, uint ms);
  218. int writepart(Part *part, uint64_t addr, uint8_t *buf, uint32_t n);
  219. int writeqlump(Lump *u, Packet *p, int creator, uint ms);
  220. Packet *zblock2packet(ZBlock *zb, uint32_t size);
  221. void zeropart(Part *part, int blocksize);
  222. /*
  223. //#pragma varargck argpos sysfatal 1
  224. //#pragma varargck argpos logerr 2
  225. //#pragma varargck argpos SetErr 2
  226. */
  227. #define scorecmp(h1,h2) memcmp((h1),(h2),VtScoreSize)
  228. #define scorecp(h1,h2) memmove((h1),(h2),VtScoreSize)
  229. #define MK(t) ((t*)emalloc(sizeof(t)))
  230. #define MKZ(t) ((t*)ezmalloc(sizeof(t)))
  231. #define MKN(t,n) ((t*)emalloc((n)*sizeof(t)))
  232. #define MKNZ(t,n) ((t*)ezmalloc((n)*sizeof(t)))
  233. #define MKNA(t,at,n) ((t*)emalloc(sizeof(t) + (n)*sizeof(at)))