From a22120fe947fc0a950f3b2ef04753b573a989885 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 4 Nov 2021 17:38:58 +0000 Subject: [PATCH] Reorganize code --- core/runtime/procs.odin | 55 +++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/core/runtime/procs.odin b/core/runtime/procs.odin index d588a2c2f..fe37c7e7d 100644 --- a/core/runtime/procs.odin +++ b/core/runtime/procs.odin @@ -1,6 +1,31 @@ package runtime -when ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64" || (ODIN_NO_CRT && ODIN_OS != "windows") { +when ODIN_NO_CRT && ODIN_OS == "windows" { + foreign import lib "system:NtDll.lib" + + @(private="file") + @(default_calling_convention="std") + foreign lib { + RtlMoveMemory :: proc(dst, src: rawptr, length: int) --- + RtlFillMemory :: proc(dst: rawptr, length: int, fill: i32) --- + } + + @(link_name="memset", linkage="strong", require) + memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr { + RtlFillMemory(ptr, len, val) + return ptr + } + @(link_name="memmove", linkage="strong", require) + memmove :: proc "c" (dst, src: rawptr, len: int) -> rawptr { + RtlMoveMemory(dst, src, len) + return dst + } + @(link_name="memcpy", linkage="strong", require) + memcpy :: proc "c" (dst, src: rawptr, len: int) -> rawptr { + RtlMoveMemory(dst, src, len) + return dst + } +} else when ODIN_NO_CRT || (ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64") { @(link_name="memset", linkage="strong", require) memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr { if ptr != nil && len != 0 { @@ -36,34 +61,6 @@ when ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64" || (ODIN_NO_CRT && ODIN_OS ! } return dst - } -} else when ODIN_NO_CRT && ODIN_OS == "windows" { - foreign import lib "system:NtDll.lib" - - @(private="file") - @(default_calling_convention="std") - foreign lib { - RtlMoveMemory :: proc(dst, src: rawptr, length: int) --- - RtlFillMemory :: proc(dst: rawptr, length: int, fill: i32) --- - } - - @(link_name="memset", linkage="strong", require) - memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr { - RtlFillMemory(ptr, len, val) - return ptr - } - - @(link_name="memmove", linkage="strong", require) - memmove :: proc "c" (dst, src: rawptr, len: int) -> rawptr { - RtlMoveMemory(dst, src, len) - return dst - - } - @(link_name="memcpy", linkage="strong", require) - memcpy :: proc "c" (dst, src: rawptr, len: int) -> rawptr { - RtlMoveMemory(dst, src, len) - return dst - } } else { memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr {