enum {
MAXPATH = 1024,
BUFSZ = 1024,
HASHSZ = 20,
};
typedef struct Revlog Revlog;
typedef struct Revmap Revmap;
typedef struct Revinfo Revinfo;
typedef struct Revtree Revtree;
typedef struct Revnode Revnode;
typedef struct Revfile Revfile;
struct Revmap
{
int rev;
int p1rev;
int p2rev;
int baserev;
int linkrev;
uchar hash[HASHSZ];
int flags;
vlong hoff;
vlong hlen;
vlong flen;
void *aux;
};
struct Revlog
{
Ref;
Revlog *next;
char *path;
int ifd;
int dfd;
vlong ioff;
int nmap;
Revmap *map;
};
struct Revnode
{
char *name;
uchar *hash;
uvlong path;
Revnode *up;
Revnode *next;
Revnode *down;
Revnode *before;
char mode;
};
struct Revinfo
{
uchar chash[HASHSZ];
uchar mhash[HASHSZ];
char *who;
char *why;
ulong when;
vlong logoff;
vlong loglen;
};
struct Revtree
{
Ref;
int level;
Revnode *root;
};
struct Revfile
{
int level;
Revinfo *info;
Revtree *tree;
Revnode *node;
Revlog *rlog;
char *buf;
int fd;
};
|