pack.hon commit Merge branch 'jc/fmt-patch' into next (b9d301b)
   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 */
   9enum 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#define pack_version_ok(v) ((v) == htonl(2) || (v) == htonl(3))
  25struct pack_header {
  26        unsigned int hdr_signature;
  27        unsigned int hdr_version;
  28        unsigned int hdr_entries;
  29};
  30
  31extern int verify_pack(struct packed_git *, int);
  32extern int check_reuse_pack_delta(struct packed_git *, unsigned long,
  33                                  unsigned char *, unsigned long *,
  34                                  enum object_type *);
  35#endif