diff options
author | Ramsay Jones <ramsay@ramsay1.demon.co.uk> | 2009-03-20 19:51:48 +0000 |
---|---|---|
committer | Shawn O. Pearce <spearce@spearce.org> | 2009-03-20 14:39:02 -0700 |
commit | 79ca2edcd4e7a801400fa33c2c705b8f03a5d7f5 (patch) | |
tree | d48d51dea1dd8e90bb8c960e68afe72cabc5f6aa /src/map.h | |
parent | 7a6cf8153799563464d6f1761e55352c327b4122 (diff) | |
download | libgit2-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.h | 31 |
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__ */ |