ae2f_docs
PgAlloc.def.cc
1/**
2 * @file PgAlloc_auto_h
3 * */
4
5#ifndef ae2f_Sys_PgAlloc_auto_h
6#define ae2f_Sys_PgAlloc_auto_h
7
8#include <ae2f/Sys/PgAlloc.h>
9#include <ae2f/Macro.h>
10
11#if ae2f_Sys_WIN(!)0
12
13
14ae2f_MAC() ae2f_SysPgAlloc_imp(
15 void* ret_mem,
16 void* const prm_addr,
17 const size_t prm_req_sz
18 )
19{
20 (ret_mem) = VirtualAlloc(
21 prm_addr
22 , prm_req_sz
23 , MEM_COMMIT
24 , PAGE_EXECUTE_READWRITE
25 );
26}
27
28#else
29
30/** @brief Allocate a memory */
31ae2f_MAC() ae2f_SysPgAlloc_imp(
32 void* ret_mem,
33 void* const prm_addr,
34 const size_t prm_req_sz
35 )
36{
37 (ret_mem) = mmap(
38 prm_addr
39 , prm_req_sz
40 , PROT_READ | PROT_WRITE
41 , MAP_PRIVATE | MAP_ANONYMOUS
42 , -1, 0
43 );
44
45 if((ret_mem) == MAP_FAILED)
46 {
47 (ret_mem) = NULL;
48 }
49}
50
51ae2f_MAC() ae2f_SysPgFree_imp(
52 void* const prm_mem,
53 const size_t prm_memsz
54 )
55{
56 munmap(prm_mem, prm_memsz);
57}
58
59#endif
60
61
62
63#endif
#define ae2f_Sys_WIN
Definition Sys.h:17
#define ae2f_MAC(...)
Definition mac.h:28