csum-file.hon commit Merge branch 'en/merge-recursive-2' (96b7c4d)
   1#ifndef CSUM_FILE_H
   2#define CSUM_FILE_H
   3
   4struct progress;
   5
   6/* A SHA1-protected file */
   7struct sha1file {
   8        int fd;
   9        int check_fd;
  10        unsigned int offset;
  11        git_SHA_CTX ctx;
  12        off_t total;
  13        struct progress *tp;
  14        const char *name;
  15        int do_crc;
  16        uint32_t crc32;
  17        unsigned char buffer[8192];
  18};
  19
  20/* sha1close flags */
  21#define CSUM_CLOSE      1
  22#define CSUM_FSYNC      2
  23
  24extern struct sha1file *sha1fd(int fd, const char *name);
  25extern struct sha1file *sha1fd_check(const char *name);
  26extern struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp);
  27extern int sha1close(struct sha1file *, unsigned char *, unsigned int);
  28extern int sha1write(struct sha1file *, void *, unsigned int);
  29extern void sha1flush(struct sha1file *f);
  30extern void crc32_begin(struct sha1file *);
  31extern uint32_t crc32_end(struct sha1file *);
  32
  33#endif