* src/mm/memory.c (memory_mprotect): New function.
authorChristian Thalinger <twisti@complang.tuwien.ac.at>
Sun, 23 Sep 2007 19:18:31 +0000 (21:18 +0200)
committerChristian Thalinger <twisti@complang.tuwien.ac.at>
Sun, 23 Sep 2007 19:18:31 +0000 (21:18 +0200)
* src/mm/memory.h: Likewise.

src/mm/memory.c
src/mm/memory.h

index 7b2d97812931feec1ef7c0941e57988f1b72b1df..b55a42457010a8bd48ae106199fe897e23df3c8a 100644 (file)
@@ -163,6 +163,20 @@ void *memory_mmap_anon(void *addr, size_t len, int prot, int flags)
 }
 
 
+/* memory_mprotect *************************************************************
+
+   Convenience function for mprotect.  This function also does error
+   checking.
+
+*******************************************************************************/
+
+void memory_mprotect(const void *addr, size_t len, int prot)
+{
+       if (mprotect(addr, len, prot) != 0)
+               vm_abort("memory_mprotect: mprotect failed: %s", strerror(errno));
+}
+
+
 /* memory_checked_alloc ********************************************************
 
    Allocated zeroed-out memory and does an OOM check.
index 1a8815cb458ce0823c4617d981cce984cce14d8c..b7cdbe7046a0659a3d3c607c750f9bbcc9b7486a 100644 (file)
@@ -202,6 +202,7 @@ Some more macros:
 bool memory_init(void);
 
 void *memory_mmap_anon(void *addr, size_t len, int prot, int flags);
+void  memory_mprotect(const void *addr, size_t len, int prot);
 
 void *memory_cnew(s4 size);
 void  memory_cfree(void *p, s4 size);