On Thu, Jun 7, 2018 at 7:01 PM Derrick Stolee <stolee@xxxxxxxxx> wrote: > diff --git a/midx.c b/midx.c > index 616af66b13..3e55422a21 100644 > --- a/midx.c > +++ b/midx.c > @@ -1,9 +1,62 @@ > #include "git-compat-util.h" > #include "cache.h" > #include "dir.h" > +#include "csum-file.h" > +#include "lockfile.h" > #include "midx.h" > > +#define MIDX_SIGNATURE 0x4d494458 /* "MIDX" */ > +#define MIDX_VERSION 1 > +#define MIDX_HASH_VERSION 1 /* SHA-1 */ ... > +static size_t write_midx_header(struct hashfile *f, > + unsigned char num_chunks, > + uint32_t num_packs) > +{ > + char byte_values[4]; > + hashwrite_be32(f, MIDX_SIGNATURE); > + byte_values[0] = MIDX_VERSION; > + byte_values[1] = MIDX_HASH_VERSION; Quoting from "State of NewHash work, future directions, and discussion" [1] * If you need to serialize an algorithm identifier into your data format, use the format_id field of struct git_hash_algo. It's designed specifically for that purpose. [1] https://public-inbox.org/git/20180612024252.GA141166@xxxxxxxxxxxxxxxxxxxxxxxxx/T/#m5fdd09dcaf31266c45343fb6c0beaaa3e928bc60 > + byte_values[2] = num_chunks; > + byte_values[3] = 0; /* unused */ > + hashwrite(f, byte_values, sizeof(byte_values)); > + hashwrite_be32(f, num_packs); > + > + return MIDX_HEADER_SIZE; > +} -- Duy