X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Fbin%2Felf.c;h=d404d6db8aa429e5406ab82bc129c2276932e36f;hb=a5759d100ffe700c4f5d42ca21528592382d425c;hp=4456a2c8d56f77b1239b1270f34bf8bff751644d;hpb=e9a7ae01935b78f05698668d57c4748a8e931d9a;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/bin/elf.c b/KernelLand/Kernel/bin/elf.c index 4456a2c8..d404d6db 100644 --- a/KernelLand/Kernel/bin/elf.c +++ b/KernelLand/Kernel/bin/elf.c @@ -29,7 +29,18 @@ static int GetSymbol(const char *Name, void **Value, size_t *Size) { } #define AddLoaded(a,b) do{}while(0) #define LoadLibrary(a,b,c) (Log_Debug("ELF", "Module requested lib '%s'",a),0) -#define SysSetMemFlags(ad,f,m) do{}while(0) +static int _SysSetMemFlags(tVAddr addr, int flag, int mask) { + if( mask & 1 ) { + if( flag ) { + // Re-set RO, clear COW + MM_SetFlags(addr, MM_PFLAG_RO, MM_PFLAG_RO|MM_PFLAG_COW); + } + else { + MM_SetFlags(addr, MM_PFLAG_RO|MM_PFLAG_COW, MM_PFLAG_RO|MM_PFLAG_COW); + } + } + return 0; +} #include "../../../Usermode/Libraries/ld-acess.so_src/elf.c" // ---- / ----