X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=csum-file.h;h=3b540bdc21d2edf8d3d6fc2b5e52cc840aa19395;hb=19a6cd372a998df3079d870e02c064c5bb101841;hp=294add2a91496355b42ce02ecfe9c453d21b291a;hpb=03f94ae9f909952ed5a78917ab319a312889354b;p=git.git diff --git a/csum-file.h b/csum-file.h index 294add2a9..3b540bdc2 100644 --- a/csum-file.h +++ b/csum-file.h @@ -6,6 +6,7 @@ struct progress; /* A SHA1-protected file */ struct sha1file { int fd; + int check_fd; unsigned int offset; git_SHA_CTX ctx; off_t total; @@ -16,11 +17,21 @@ struct sha1file { unsigned char buffer[8192]; }; +/* Checkpoint */ +struct sha1file_checkpoint { + off_t offset; + git_SHA_CTX ctx; +}; + +extern void sha1file_checkpoint(struct sha1file *, struct sha1file_checkpoint *); +extern int sha1file_truncate(struct sha1file *, struct sha1file_checkpoint *); + /* sha1close flags */ #define CSUM_CLOSE 1 #define CSUM_FSYNC 2 extern struct sha1file *sha1fd(int fd, const char *name); +extern struct sha1file *sha1fd_check(const char *name); extern struct sha1file *sha1fd_throughput(int fd, const char *name, struct progress *tp); extern int sha1close(struct sha1file *, unsigned char *, unsigned int); extern int sha1write(struct sha1file *, void *, unsigned int);