diff options
| author | Warmist | 2011-07-28 01:00:12 +0300 |
|---|---|---|
| committer | Warmist | 2011-07-28 01:00:12 +0300 |
| commit | bc23cc9eca8a0f6053f0ef7a6087dfbb7a764df8 (patch) | |
| tree | 28a7b7e81c56a4890235a6ecbdc88ce64a224975 /library/Process-linux.cpp | |
| parent | a01004efd6a7962c52a88cfc662924e884ee7097 (diff) | |
| download | dfhack-bc23cc9eca8a0f6053f0ef7a6087dfbb7a764df8.tar.gz dfhack-bc23cc9eca8a0f6053f0ef7a6087dfbb7a764df8.tar.bz2 dfhack-bc23cc9eca8a0f6053f0ef7a6087dfbb7a764df8.tar.xz | |
Made Process::setPermisions functions, to set memory page's permisions
Diffstat (limited to 'library/Process-linux.cpp')
| -rw-r--r-- | library/Process-linux.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/library/Process-linux.cpp b/library/Process-linux.cpp index 23d8baf1..937bd155 100644 --- a/library/Process-linux.cpp +++ b/library/Process-linux.cpp @@ -25,6 +25,7 @@ distribution. #include "Internal.h" #include <dirent.h> #include <errno.h> +#include <sys/mman.h> #include <string> #include <vector> @@ -176,4 +177,16 @@ string Process::getPath() int Process::getPID() { return getpid(); +} + +bool Process::setPermisions(const t_memrange & range,const t_memrange &trgrange) +{ + int result; + int protect=0; + if(trgrange.read)protect|=PROT_READ; + if(trgrange.write)protect|=PROT_WRITE; + if(trgrange.execute)protect|=PROT_EXECUTE; + result=mprotect((void *)range.start, range.end-range.start,protect); + + return result==0; }
\ No newline at end of file |
