summaryrefslogtreecommitdiff
path: root/src/map.h
diff options
context:
space:
mode:
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>2009-03-20 19:51:48 +0000
committerShawn O. Pearce <spearce@spearce.org>2009-03-20 14:39:02 -0700
commit79ca2edcd4e7a801400fa33c2c705b8f03a5d7f5 (patch)
treed48d51dea1dd8e90bb8c960e68afe72cabc5f6aa /src/map.h
parent7a6cf8153799563464d6f1761e55352c327b4122 (diff)
downloadlibgit2-79ca2edcd4e7a801400fa33c2c705b8f03a5d7f5.tar.gz
win32: Add routines to abstract memory-mapped file functions
In particular, the git__mmap() and git__munmap() routines provide the interface to platform specific memory-mapped file facilities. We provide implementations for unix and win32, which can be found in their own sub-directories. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'src/map.h')
-rw-r--r--src/map.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/map.h b/src/map.h
new file mode 100644
index 000000000..3188ffdbb
--- /dev/null
+++ b/src/map.h
@@ -0,0 +1,31 @@
+#ifndef INCLUDE_map_h__
+#define INCLUDE_map_h__
+
+#include "common.h"
+
+
+/* git__mmap() prot values */
+#define GIT_PROT_NONE 0x0
+#define GIT_PROT_READ 0x1
+#define GIT_PROT_WRITE 0x2
+#define GIT_PROT_EXEC 0x4
+
+/* git__mmmap() flags values */
+#define GIT_MAP_FILE 0
+#define GIT_MAP_SHARED 1
+#define GIT_MAP_PRIVATE 2
+#define GIT_MAP_TYPE 0xf
+#define GIT_MAP_FIXED 0x10
+
+typedef struct { /* memory mapped buffer */
+ void *data; /* data bytes */
+ size_t len; /* data length */
+#ifdef GIT_WIN32
+ HANDLE fmh; /* file mapping handle */
+#endif
+} git_map;
+
+extern int git__mmap(git_map *out, size_t len, int prot, int flags, int fd, off_t offset);
+extern int git__munmap(git_map *map);
+
+#endif /* INCLUDE_map_h__ */