Merge branch 'ml/trace'
[git/git.git] / pack.h
CommitLineData
a733cb60
LT
1#ifndef PACK_H
2#define PACK_H
3
01247d87
LT
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 */
a733cb60 9enum object_type {
01247d87
LT
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,
a733cb60
LT
17};
18
19/*
20 * Packed object header
21 */
22#define PACK_SIGNATURE 0x5041434b /* "PACK" */
01247d87 23#define PACK_VERSION 2
d60fc1c8 24#define pack_version_ok(v) ((v) == htonl(2) || (v) == htonl(3))
a733cb60
LT
25struct pack_header {
26 unsigned int hdr_signature;
27 unsigned int hdr_version;
28 unsigned int hdr_entries;
29};
30
f3bf9224 31extern int verify_pack(struct packed_git *, int);
a49dd05f
JH
32extern int check_reuse_pack_delta(struct packed_git *, unsigned long,
33 unsigned char *, unsigned long *,
34 enum object_type *);
a733cb60 35#endif