summaryrefslogtreecommitdiff
path: root/lib/uefi.c3l/src/exports.c3
diff options
context:
space:
mode:
authorandromeda <andromeda@bsd.my.domain>2026-10-19 13:37:35 -0400
committerandromeda <andromeda@bsd.my.domain>2026-10-19 13:37:35 -0400
commit97d331175ae47aec3d0b990ada9754a9e4298e32 (patch)
tree6b95823d67087725124a385f3b3860f8dd58304c /lib/uefi.c3l/src/exports.c3
parent07e96320de32c04b0de038ab8b1ece5724506235 (diff)
minimum that compiles
Diffstat (limited to 'lib/uefi.c3l/src/exports.c3')
-rw-r--r--lib/uefi.c3l/src/exports.c311
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/uefi.c3l/src/exports.c3 b/lib/uefi.c3l/src/exports.c3
index 3b337e3..332311c 100644
--- a/lib/uefi.c3l/src/exports.c3
+++ b/lib/uefi.c3l/src/exports.c3
@@ -188,6 +188,15 @@ fn void* memcpy(void* into, void* from, usz length) @export("memcpy") @nostrip
return into;
}
+fn void* memmove(void* into, void* from, usz length) @export("memmove") @nostrip
+{
+ void* tmp = malloc(length);
+ memcpy(tmp, from, length);
+ memcpy(into, tmp, length);
+ free(tmp);
+ return into;
+}
+
fn void memset(
void* at,
char value,
@@ -204,4 +213,4 @@ fn void* realloc(
) @export("realloc") @nostrip => efi_system::efi_sys.realloc(pool, prev_len, new_len)!!;
fn void free(void* pool) @export("free") @nostrip => efi_system::efi_sys.free(pool);
-fn void? free_safe(void* pool) @export("free_safe") @nostrip => efi_system::efi_sys.free_safe(pool); \ No newline at end of file
+fn void? free_safe(void* pool) @export("free_safe") @nostrip => efi_system::efi_sys.free_safe(pool);