Merge master branch changes into release candidate branch.
[git] / pack.h
1 #ifndef PACK_H
2 #define PACK_H
3
4 /*
5  * The packed object type is stored in 3 bits.
6  * The type value 0 is a reserved prefix if ever there is more than 7
7  * object types, or any future format extensions.
8  */
9 enum object_type {
10         OBJ_EXT = 0,
11         OBJ_COMMIT = 1,
12         OBJ_TREE = 2,
13         OBJ_BLOB = 3,
14         OBJ_TAG = 4,
15         /* 5/6 for future expansion */
16         OBJ_DELTA = 7,
17 };
18
19 /*
20  * Packed object header
21  */
22 #define PACK_SIGNATURE 0x5041434b       /* "PACK" */
23 #define PACK_VERSION 2
24 struct pack_header {
25         unsigned int hdr_signature;
26         unsigned int hdr_version;
27         unsigned int hdr_entries;
28 };
29
30 extern int verify_pack(struct packed_git *, int);
31
32 #endif