diff options
| author | Christian Cunningham <cc@localhost> | 2024-07-13 21:31:54 -0700 | 
|---|---|---|
| committer | Christian Cunningham <cc@localhost> | 2024-07-13 21:31:54 -0700 | 
| commit | 537b6c834b541b1f8f15f2ad31dcdc7f9d9a71a5 (patch) | |
| tree | 11fead33d115c910fbeb1b5663cbeb2359ee4b19 | |
| parent | a33f52d00496a7bed8e5b9bac533853a8733e209 (diff) | |
Basic Allocator
| -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  | 
