]> git.proxmox.com Git - libgit2.git/blobdiff - src/unix/map.c
New upstream version 1.4.3+dfsg.1
[libgit2.git] / src / unix / map.c
index 87ee6594b963c9ada5ef195f6f89c4ac19336491..23fcb786e5ab3a4d396a78f92025c868bf760885 100644 (file)
@@ -4,7 +4,8 @@
  * This file is part of libgit2, distributed under the GNU GPL v2 with
  * a Linking Exception. For full terms see the included COPYING file.
  */
-#include <git2/common.h>
+
+#include "common.h"
 
 #if !defined(GIT_WIN32) && !defined(NO_MMAP)
 
@@ -17,14 +18,19 @@ int git__page_size(size_t *page_size)
 {
        long sc_page_size = sysconf(_SC_PAGE_SIZE);
        if (sc_page_size < 0) {
-               giterr_set_str(GITERR_OS, "Can't determine system page size");
+               git_error_set(GIT_ERROR_OS, "can't determine system page size");
                return -1;
        }
        *page_size = (size_t) sc_page_size;
        return 0;
 }
 
-int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t offset)
+int git__mmap_alignment(size_t *alignment)
+{
+  return git__page_size(alignment);
+}
+
+int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, off64_t offset)
 {
        int mprot = PROT_READ;
        int mflag = 0;
@@ -47,7 +53,7 @@ int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t offs
        out->data = mmap(NULL, len, mprot, mflag, fd, offset);
 
        if (!out->data || out->data == MAP_FAILED) {
-               giterr_set(GITERR_OS, "Failed to mmap. Could not write data");
+               git_error_set(GIT_ERROR_OS, "failed to mmap. Could not write data");
                return -1;
        }
 
@@ -58,8 +64,10 @@ int p_mmap(git_map *out, size_t len, int prot, int flags, int fd, git_off_t offs
 
 int p_munmap(git_map *map)
 {
-       assert(map != NULL);
+       GIT_ASSERT_ARG(map);
        munmap(map->data, map->len);
+       map->data = NULL;
+       map->len = 0;
 
        return 0;
 }