aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-09-10 16:14:39 +0100
committergingerBill <bill@gingerbill.org>2021-09-10 16:14:39 +0100
commit9980f8106238671f0334932bf92ff57daaaa638e (patch)
treeb04f38f09f1b20b77d2397585e5882088419b0d9
parent297cdde14466cb5c9f0ea0ae79d7b54f11e9be88 (diff)
Add other constants to c and libc
-rw-r--r--core/c/c.odin8
-rw-r--r--core/c/libc/signal.odin3
-rw-r--r--core/c/libc/string.odin2
-rw-r--r--core/mem/mem.odin2
-rw-r--r--core/runtime/procs.odin2
5 files changed, 14 insertions, 3 deletions
diff --git a/core/c/c.odin b/core/c/c.odin
index 2aa91551a..d135fa93c 100644
--- a/core/c/c.odin
+++ b/core/c/c.odin
@@ -89,6 +89,14 @@ INT16_MIN :: ~INT16_MAX
INT32_MIN :: ~INT32_MAX
INT64_MIN :: ~INT64_MAX
+SIZE_MAX :: max(size_t)
+
+PTRDIFF_MIN :: min(ptrdiff_t)
+PTRDIFF_MAX :: max(ptrdiff_t)
+
+WCHAR_MIN :: min(wchar_t)
+WCHAR_MAX :: max(wchar_t)
+
NULL :: rawptr(uintptr(0))
NDEBUG :: !ODIN_DEBUG
diff --git a/core/c/libc/signal.odin b/core/c/libc/signal.odin
index afb81dea1..ad007287e 100644
--- a/core/c/libc/signal.odin
+++ b/core/c/libc/signal.odin
@@ -10,6 +10,9 @@ when ODIN_OS == "windows" {
sig_atomic_t :: distinct atomic_int
+SIG_ATOMIC_MIN :: min(sig_atomic_t)
+SIG_ATOMIC_MAX :: max(sig_atomic_t)
+
@(default_calling_convention="c")
foreign libc {
signal :: proc(sig: int, func: proc "c" (int)) -> proc "c" (int) ---
diff --git a/core/c/libc/string.odin b/core/c/libc/string.odin
index 822fe43c5..343bdd22d 100644
--- a/core/c/libc/string.odin
+++ b/core/c/libc/string.odin
@@ -38,7 +38,7 @@ foreign libc {
strtok :: proc(s1: [^]char, s2: cstring) -> [^]char ---
// 7.24.6 Miscellaneous functions
- memset : proc(s: rawptr, c: int, n: size_t) -> rawptr : runtime.memset
strerror :: proc(errnum: int) -> [^]char ---
strlen :: proc(s: cstring) -> size_t ---
}
+memset : proc "c" (s: rawptr, c: int, n: size_t) -> rawptr : runtime.memset
diff --git a/core/mem/mem.odin b/core/mem/mem.odin
index 6b216e029..92b76ff83 100644
--- a/core/mem/mem.odin
+++ b/core/mem/mem.odin
@@ -4,7 +4,7 @@ import "core:runtime"
import "core:intrinsics"
set :: proc "contextless" (data: rawptr, value: byte, len: int) -> rawptr #no_bounds_check {
- return runtime.memset(data, i32(value), len)
+ return runtime.memset(data, i32(value), int(len))
}
zero :: proc "contextless" (data: rawptr, len: int) -> rawptr {
return set(data, 0, len)
diff --git a/core/runtime/procs.odin b/core/runtime/procs.odin
index 0aaf49928..94624eea6 100644
--- a/core/runtime/procs.odin
+++ b/core/runtime/procs.odin
@@ -1,7 +1,7 @@
package runtime
@(link_name="memset")
-memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr #no_bounds_check {
+memset :: proc "c" (ptr: rawptr, val: i32, len: uint) -> rawptr #no_bounds_check {
if ptr != nil && len != 0 {
b := byte(val)
p := ([^]byte)(ptr)