Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
typedef struct PaqHeader PaqHeader;
2
typedef struct PaqBlock PaqBlock;
3
typedef struct PaqTrailer PaqTrailer;
4
typedef struct PaqDir PaqDir;
5
 
6
enum {
7
	HeaderMagic = 0x529ab12b,
8
	HeaderSize = 44,
9
	BigHeaderMagic = 0x25a9,
10
	BlockMagic = 0x198a1cbf,
11
	BlockSize = 12,
12
	BigBlockMagic = 0x91a8,
13
	TrailerMagic = 0x6b46e688,
14
	TrailerSize = 28,
15
	Version = 1,
16
	MaxBlockSize = 512*1024,
17
	MinBlockSize = 512,
18
	MinDirSize = 28,
19
};
20
 
21
/* block types */
22
enum {
23
	DirBlock,
24
	DataBlock,
25
	PointerBlock,
26
};
27
 
28
/* encodings */
29
enum {
30
	NoEnc,
31
	DeflateEnc,
32
};
33
 
34
struct PaqHeader
35
{
36
	ulong	magic;
37
	ushort	version;
38
	ulong	blocksize;
39
	ulong	time;
40
	char	label[32];
41
};
42
 
43
struct PaqBlock
44
{
45
	ulong	magic;
46
	ulong	size;		/* data size - always <= blocksize */
47
	uchar	type;
48
	uchar	encoding;
49
	ulong	adler32;	/* applied to unencoded data */
50
};
51
 
52
struct PaqTrailer
53
{
54
	ulong	magic;
55
	ulong	root;
56
	uchar	sha1[20];
57
};
58
 
59
struct PaqDir
60
{
61
	ulong	qid;
62
	ulong	mode;
63
	ulong	mtime;
64
	ulong	length;
65
	ulong	offset;		/* to pointer block */
66
	char 	*name;
67
	char	*uid;
68
	char	*gid;
69
};