From 39709266fcba445e267bdecf5f1c1a8f2112880a Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Sat, 2 Nov 2024 16:42:47 -0700 Subject: Allocation functionalized --- alloc.inc | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/alloc.inc b/alloc.inc index 2412d08..d99dff7 100644 --- a/alloc.inc +++ b/alloc.inc @@ -4,22 +4,36 @@ %include "sys.inc" %endif -%macro alloc 0-1 rax +_alloc: 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 mov rax, SYS_MMAP syscall + ret + +%macro alloc 0-1 rax + %if "%1" != "%rsi" + mov rsi, %1 ; Size to allocate + %endif + call _alloc %endm +_free: + mov rax, SYS_MUNMAP + syscall + ret + %macro free 1-2 rax + %if "%1" != "%rdi" mov rdi, %1 ; Address to free + %endif + %if "%1" != "%rsi" mov rsi, %2 ; Size allocated - mov rax, SYS_MUNMAP - syscall + %endif + call _free %endm %endif -- cgit v1.2.1