diff options
| author | Christian Cunningham <cc@localhost> | 2024-11-02 16:42:47 -0700 | 
|---|---|---|
| committer | Christian Cunningham <cc@localhost> | 2024-11-02 16:42:47 -0700 | 
| commit | 39709266fcba445e267bdecf5f1c1a8f2112880a (patch) | |
| tree | e1186d4e5a9743618df84b42a9e7005346500ffe | |
| parent | a69a84ee6ef6d4a93167d5d096f28b8b40ed1b86 (diff) | |
Allocation functionalized
| -rw-r--r-- | alloc.inc | 22 | 
1 files changed, 18 insertions, 4 deletions
@@ -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  | 
