"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)