summaryrefslogtreecommitdiff
path: root/lib/uefi.c3l/src/exports.c3
diff options
context:
space:
mode:
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);