X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=pack.h;h=aca4739319071ffeb201fb5bcaf55811ddf5b40f;hb=bd193f46b70fd3f8a55e2a8dcbb1fb2b4eec13d6;hp=bb275762b7eb6f473f333ae40780821e383db20b;hpb=eb4e67288bb9d66fb46092fa30d72c4bdded0c2a;p=git.git diff --git a/pack.h b/pack.h index bb275762b..aca473931 100644 --- a/pack.h +++ b/pack.h @@ -34,9 +34,25 @@ struct pack_header { */ #define PACK_IDX_SIGNATURE 0xff744f63 /* "\377tOc" */ -/* These may be overridden by command-line parameters */ -extern uint32_t pack_idx_default_version; -extern uint32_t pack_idx_off32_limit; +struct pack_idx_option { + unsigned flags; + /* flag bits */ +#define WRITE_IDX_VERIFY 01 /* verify only, do not write the idx file */ +#define WRITE_IDX_STRICT 02 + + uint32_t version; + uint32_t off32_limit; + + /* + * List of offsets that would fit within off32_limit but + * need to be written out as 64-bit entity for byte-for-byte + * verification. + */ + int anomaly_alloc, anomaly_nr; + uint32_t *anomaly; +}; + +extern void reset_pack_idx_option(struct pack_idx_option *); /* * Packed object index header @@ -55,7 +71,7 @@ struct pack_idx_entry { off_t offset; }; -extern const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects, int nr_objects, unsigned char *sha1); +extern const char *write_idx_file(const char *index_name, struct pack_idx_entry **objects, int nr_objects, const struct pack_idx_option *, unsigned char *sha1); extern int check_pack_crc(struct packed_git *p, struct pack_window **w_curs, off_t offset, off_t len, unsigned int nr); extern int verify_pack_index(struct packed_git *); extern int verify_pack(struct packed_git *);