Monero
Loading...
Searching...
No Matches
Macros | Functions
virtual_memory.c File Reference
#include <sys/types.h>
#include <sys/mman.h>
#include <errno.h>
#include "virtual_memory.h"
Include dependency graph for virtual_memory.c:

Macros

#define _GNU_SOURCE   1 /* needed for MAP_ANONYMOUS on older platforms */
 
#define MAP_ANONYMOUS   MAP_ANON
 
#define PAGE_READONLY   PROT_READ
 
#define PAGE_READWRITE   (PROT_READ | PROT_WRITE)
 
#define PAGE_EXECUTE_READ   (PROT_READ | PROT_EXEC)
 
#define PAGE_EXECUTE_READWRITE   (PROT_READ | PROT_WRITE | PROT_EXEC)
 
#define Fail(func)   do {*errfunc = func; return errno;} while(0)
 
#define RESERVED_FLAGS   0
 
#define MEXTRA   0
 
#define PEXTRA   0
 

Functions

void * allocMemoryPages (size_t bytes)
 
static int pageProtect (void *ptr, size_t bytes, int rules, char **errfunc)
 
void setPagesRW (void *ptr, size_t bytes)
 
void setPagesRX (void *ptr, size_t bytes)
 
void setPagesRWX (void *ptr, size_t bytes)
 
void * allocLargePagesMemory (size_t bytes)
 
void freePagedMemory (void *ptr, size_t bytes)
 

Macro Definition Documentation

◆ _GNU_SOURCE

#define _GNU_SOURCE   1 /* needed for MAP_ANONYMOUS on older platforms */

◆ Fail

#define Fail ( func)    do {*errfunc = func; return errno;} while(0)

◆ MAP_ANONYMOUS

#define MAP_ANONYMOUS   MAP_ANON

◆ MEXTRA

#define MEXTRA   0

◆ PAGE_EXECUTE_READ

#define PAGE_EXECUTE_READ   (PROT_READ | PROT_EXEC)

◆ PAGE_EXECUTE_READWRITE

#define PAGE_EXECUTE_READWRITE   (PROT_READ | PROT_WRITE | PROT_EXEC)

◆ PAGE_READONLY

#define PAGE_READONLY   PROT_READ

◆ PAGE_READWRITE

#define PAGE_READWRITE   (PROT_READ | PROT_WRITE)

◆ PEXTRA

#define PEXTRA   0

◆ RESERVED_FLAGS

#define RESERVED_FLAGS   0

Function Documentation

◆ allocLargePagesMemory()

void * allocLargePagesMemory ( size_t bytes)

◆ allocMemoryPages()

void * allocMemoryPages ( size_t bytes)

◆ freePagedMemory()

void freePagedMemory ( void * ptr,
size_t bytes )

◆ pageProtect()

static int pageProtect ( void * ptr,
size_t bytes,
int rules,
char ** errfunc )
inlinestatic

◆ setPagesRW()

void setPagesRW ( void * ptr,
size_t bytes )

◆ setPagesRWX()

void setPagesRWX ( void * ptr,
size_t bytes )

◆ setPagesRX()

void setPagesRX ( void * ptr,
size_t bytes )