/* hash */ int Hfmt(Fmt *f); int hex2hash(char *s, uchar *h); uvlong hash2qid(uchar *h); int fhash(int fd, uchar p1[], uchar p2[], uchar h[]); /* patch */ int fpatchmark(int pfd, char *mark); int fpatch(int ofd, int bfd, int pfd); /* zip */ int funzip(int ofd, int zfd, int len); /* revlog */ int fmktemp(void); int revlogopen(Revlog *r, char *path, int mode); void revlogupdate(Revlog *r); void revlogclose(Revlog *r); int revlogextract(Revlog *r, int rev, int ofd); uchar *revhash(Revlog *r, int rev); int hashrev(Revlog *r, uchar hash[]); int revlogopentemp(Revlog *r, int rev); /* info */ Revinfo *loadrevinfo(Revlog *changelog, int rev); /* tree */ char *nodepath(char *s, char *e, Revnode *nd, int mangle); Revnode *mknode(char *name, uchar *hash, char mode); Revtree *loadfilestree(Revlog *changelog, Revlog *manifest, Revinfo *ri); Revtree *loadchangestree(Revlog *changelog, Revlog *manifest, Revinfo *ri); void closerevtree(Revtree *t);