Data*	allocdata(File*, uint, uint);
SFid*	allocsfid(void);
SFid*	alreadyopen(Fid*, uint);
int	askserver(Fcall*, Fid*);
void	badpath(Path*, char*, char*);
void	cacheinval(File*);
void	closefile(Fid*, int, int);
void	cachemerge(Data*, char*, int, int);
void	copystat(File*, Dir*, int);
int	cacheread(File*, void*, vlong, int);
int	ctltest(Fid*);
void	cachewrite(File*, void*, vlong, int);
void	datainit(void);
int	delegate(Fcall*, Fid*, SFid*);
void	dumpdata(Data*, int);
String*	dupstr(String*);
void	error(char*, ...);
void	fileinval(Path*);
Data*	finddata(File*, uvlong, int*);
Fid*	findfid(Host*, u32int, int);
void	freedata(Data*);
void	freeinval(Path*);
void	freepath(Path*);
void	freesfid(SFid*);
void	freestr(String*);
void	genstats(void);
void	io(void);
int	localwalk(Fid*, Fcall*, Fcall*, Path**);
void	mountinit(char*, char*, char*);
Path*	newpath(Path*, char*, Qid);
String*	newstr(char*);
void	openfile(Fid*, int, u32int, SFid*);
int	openmode(uint);
char*	pathstr(Path*);
void	printpath(Path*, int);
void	putfid(Fid*);
void	putfile(File*);
void	rattach(Fcall*);
void	rauth(Fcall*);
void	rclunk(Fcall*);
void	rcreate(Fcall*);
void	rcvmsg(P9fs*, Fcall*);
void	rflush(Fcall*);
void	ropen(Fcall*);
void	rread(Fcall*);
void	rremove(Fcall*);
void	rstat(Fcall*);
void	rversion(Fcall*);
void	rwalk(Fcall*);
void	rwrite(Fcall*);
void	rwstat(Fcall*);
void	sendmsg(P9fs*, Fcall*);
void	sendreply(char*);
void	setinval(Path*, char*);
SFid*	sfclone(SFid*);
void	sfclunk(SFid*);
Data*	storedata(File*, uvlong, int*);
void	warning(char*);
