aboutsummaryrefslogtreecommitdiff
path: root/core/sync/sync2
diff options
context:
space:
mode:
authorYawning Angel <yawning@schwanenlied.me>2021-11-12 06:22:17 +0000
committerYawning Angel <yawning@schwanenlied.me>2021-11-17 14:00:00 +0000
commit61c581baeb94ac73cbb25e93af2710d12e15f25c (patch)
tree5338661017bfda2596d2ee408b564dac162c7273 /core/sync/sync2
parent6c4c9aef618dcf3932be88ca6df65164145b7cea (diff)
core/sys/unix: Add syscalls_linux.odin
Linux is in the unfortunate situation where the system call number is architecture specific. This consolidates the system call number definitions in a single location, adds some wrappers, and hopefully fixes the existing non-portable invocations of the syscall intrinsic.
Diffstat (limited to 'core/sync/sync2')
-rw-r--r--core/sync/sync2/futex_linux.odin3
-rw-r--r--core/sync/sync2/primitives_linux.odin5
2 files changed, 4 insertions, 4 deletions
diff --git a/core/sync/sync2/futex_linux.odin b/core/sync/sync2/futex_linux.odin
index 1bd41c7cf..fca28cace 100644
--- a/core/sync/sync2/futex_linux.odin
+++ b/core/sync/sync2/futex_linux.odin
@@ -5,6 +5,7 @@ package sync2
import "core:c"
import "core:time"
import "core:intrinsics"
+import "core:sys/unix"
FUTEX_WAIT :: 0
FUTEX_WAKE :: 1
@@ -34,7 +35,7 @@ get_errno :: proc(r: int) -> int {
}
internal_futex :: proc(f: ^Futex, op: c.int, val: u32, timeout: rawptr) -> int {
- code := int(intrinsics.syscall(202, uintptr(f), uintptr(op), uintptr(val), uintptr(timeout), 0, 0))
+ code := int(intrinsics.syscall(unix.SYS_futex, uintptr(f), uintptr(op), uintptr(val), uintptr(timeout), 0, 0))
return get_errno(code)
}
diff --git a/core/sync/sync2/primitives_linux.odin b/core/sync/sync2/primitives_linux.odin
index 4c81295bd..89ed97985 100644
--- a/core/sync/sync2/primitives_linux.odin
+++ b/core/sync/sync2/primitives_linux.odin
@@ -2,9 +2,8 @@
//+private
package sync2
-import "core:intrinsics"
+import "core:sys/unix"
_current_thread_id :: proc "contextless" () -> int {
- SYS_GETTID :: 186
- return int(intrinsics.syscall(SYS_GETTID))
+ return unix.sys_gettid()
}