Add adoc building. Allow EXTRA files for packing.
[rrq/lsp-utils.git] / lsp-misc / mmap.lsp
index 639b1c9d0ff43d436abdcc9b08d9f8e145c00fa9..bb3f3be044cad613731cd029e86e495725c83bb4 100644 (file)
         "int" ; int whence
         )
 
+(import LIBC "msync" "int"
+        "void*" ; void *addr
+        "long" ; size_t length
+        "int" ; int flags
+        )
+
 (constant
  'PROT_READ 0x01
+ 'PROT_WRITE 0x2
  'MAP_SHARED 0x01
  'SEEK_END 2
  )
 
 ;; Creates a new mapping in the virtual address space of the calling
 ;; process.
-(define (MMap:MMap FD LENGTH (OFFSET 0))
+(define (MMap:MMap FD LENGTH (OFFSET 0) (PROT PROT_READ))
   (when (string? FD) (setf FD (open FD "r")))
   (let ((D (list (context) nil LENGTH 0 0 FD OFFSET)))
     (when (< LENGTH) (setf (D 2) (lseek FD 0 SEEK_END)))
-    (setf (D 1) (mmap 0 (D 2) PROT_READ MAP_SHARED FD OFFSET))
+    (setf (D 1) (mmap 0 (D 2) PROT MAP_SHARED FD OFFSET))
     D))
 
 (define (Unmap)