diff options
-rw-r--r-- | alloc.inc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/alloc.inc b/alloc.inc new file mode 100644 index 0000000..da27e1e --- /dev/null +++ b/alloc.inc @@ -0,0 +1,25 @@ +%ifndef ALLOC_INC +%define ALLOC_INC +%ifndef SYS_INC +%include "sys.inc" +%endif + +%macro alloc 1 + mov rax, SYS_MMAP + xor rdi, rdi ; Let Kernel give Address + mov rsi, %1 ; Size to allocate + mov rdx, 3 ; PROT_READ | PROT_WRITE + mov r10, 0x1002 ; MAP_PRIVATE | MAP_ANONYMOUS + xor r8, r8 ; fd = -1, Not backed by a file + xor r9, r9 ; offset = 0 + syscall +%endm + +%macro free 2 + mov rax, SYS_MUNMAP + mov rdi, %1 ; Address to free + mov rsi, %2 ; Size allocated + syscall +%endm + +%endif |