#ifndef PACK_H
#define PACK_H

/*
 * The packed object type is stored in 3 bits.
 * The type value 0 is a reserved prefix if ever there is more than 7
 * object types, or any future format extensions.
 */
enum object_type {
	OBJ_EXT = 0,
	OBJ_COMMIT = 1,
	OBJ_TREE = 2,
	OBJ_BLOB = 3,
	OBJ_TAG = 4,
	/* 5/6 for future expansion */
	OBJ_DELTA = 7,
};

/*
 * Packed object header
 */
#define PACK_SIGNATURE 0x5041434b	/* "PACK" */
#define PACK_VERSION 2
#define pack_version_ok(v) ((v) == htonl(2) || (v) == htonl(3))
struct pack_header {
	unsigned int hdr_signature;
	unsigned int hdr_version;
	unsigned int hdr_entries;
};

extern int verify_pack(struct packed_git *, int);
extern int check_reuse_pack_delta(struct packed_git *, unsigned long,
				  unsigned char *, unsigned long *,
				  enum object_type *);
#endif
