From 537b6c834b541b1f8f15f2ad31dcdc7f9d9a71a5 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Sat, 13 Jul 2024 21:31:54 -0700 Subject: Basic Allocator --- alloc.inc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 alloc.inc (limited to 'alloc.inc') 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 -- cgit v1.2.1