xref: /plan9-contrib/sys/src/cmd/venti/srv/fns.h (revision c65cf52c968b3e4454fbdf2cbd1ee2e54eea2c58)
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