28 lines
718 B
Plaintext
28 lines
718 B
Plaintext
|
# Author: Sven Vogel
|
||
|
# Edited: 25.05.2024
|
||
|
# License: GPL-2.0
|
||
|
|
||
|
# ,----------------------------------------.
|
||
|
# | Memory Management |
|
||
|
# `----------------------------------------`
|
||
|
|
||
|
import "def.gem"
|
||
|
|
||
|
# Allocate `len` bytes of heap memory
|
||
|
# Returns a pointer to the memory as `ptr`
|
||
|
fun heap_alloc(in u32: len)(out ref u8: ptr)
|
||
|
|
||
|
# Rellocate `len` bytes of heap memory
|
||
|
# Returns a pointer to the memory as `ptr`
|
||
|
fun heap_realloc(in u32: len, in out ref u8: ptr)
|
||
|
|
||
|
# Free a block of memory
|
||
|
fun heap_free(in ref u8: ptr)
|
||
|
|
||
|
# Copy `len` bytes from `dst` into `src`
|
||
|
fun copy(in ref u8: dst, in ref u8: src, in u32 len)
|
||
|
|
||
|
# Fill `len` bytes of `dst` with `byte`
|
||
|
fun fill(in ref u8: dst, in u8: byte, in u32 len)
|
||
|
|