summaryrefslogtreecommitdiff
path: root/git-compat-util.h
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-08-18 21:57:16 +0200
committerJunio C Hamano <gitster@pobox.com>2008-08-18 22:37:55 -0700
commitfdb2a2a600969598fd80f01b009fbbb020d596ab (patch)
tree935e08662721c94bf3d4aabf2542653ae16bd20a /git-compat-util.h
parent2ebc02d32a4360da2cf69c2b5f5bfad0716d42b0 (diff)
downloadgit-fdb2a2a600969598fd80f01b009fbbb020d596ab.tar.gz
compat: introduce on_disk_bytes()
Some platforms do not have st_blocks member in "struct stat"; mingw already emulates it by rounding it up to closest 512-byte blocks (even though it could overcount when a file has holes). The reason to use the member is only to figure out how many kilobytes the files occupy on-disk, so give a helper function in git-compat-util.h to compute this value. Signed-off-by: Junio C Hamano <gitster@pobox.com> Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Diffstat (limited to 'git-compat-util.h')
-rw-r--r--git-compat-util.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/git-compat-util.h b/git-compat-util.h
index cf89cdf459..1b40dbd535 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -192,6 +192,12 @@ extern int git_munmap(void *start, size_t length);
#endif /* NO_MMAP */
+#ifdef NO_ST_BLOCKS_IN_STRUCT_STAT
+#define on_disk_bytes(st) ((st).st_size)
+#else
+#define on_disk_bytes(st) ((st).st_blocks * 512)
+#endif
+
#define DEFAULT_PACKED_GIT_LIMIT \
((1024L * 1024L) * (sizeof(void*) >= 8 ? 8192 : 256))