Browse Source

Temporarily fix syscall in Linux and Freebsd (eventually to be replaced with a proper implementation)

gingerBill 4 years ago
parent
commit
465b6139d5
2 changed files with 4 additions and 4 deletions
  1. 1 1
      core/os/os_freebsd.odin
  2. 3 3
      core/os/os_linux.odin

+ 1 - 1
core/os/os_freebsd.odin

@@ -10,7 +10,7 @@ import "core:c"
 Handle :: distinct i32;
 Handle :: distinct i32;
 File_Time :: distinct u64;
 File_Time :: distinct u64;
 Errno :: distinct i32;
 Errno :: distinct i32;
-Syscall :: distinct int;
+Syscall :: distinct i32;
 
 
 INVALID_HANDLE :: ~Handle(0);
 INVALID_HANDLE :: ~Handle(0);
 
 

+ 3 - 3
core/os/os_linux.odin

@@ -11,7 +11,7 @@ import "core:strconv"
 Handle    :: distinct i32;
 Handle    :: distinct i32;
 File_Time :: distinct u64;
 File_Time :: distinct u64;
 Errno     :: distinct i32;
 Errno     :: distinct i32;
-Syscall   :: distinct int;
+Syscall   :: distinct i32;
 
 
 INVALID_HANDLE :: ~Handle(0);
 INVALID_HANDLE :: ~Handle(0);
 
 
@@ -269,7 +269,7 @@ SYS_GETTID: Syscall : 186;
 
 
 foreign libc {
 foreign libc {
 	@(link_name="__errno_location") __errno_location    :: proc() -> ^int ---;
 	@(link_name="__errno_location") __errno_location    :: proc() -> ^int ---;
-	@(link_name="syscall")          syscall             :: proc(number: Syscall, #c_vararg args: ..any) -> int ---;
+	@(link_name="syscall")          syscall             :: proc(number: Syscall, #c_vararg args: ..any) -> i32 ---;
 
 
 	@(link_name="open")             _unix_open          :: proc(path: cstring, flags: c.int, mode: c.int) -> Handle ---;
 	@(link_name="open")             _unix_open          :: proc(path: cstring, flags: c.int, mode: c.int) -> Handle ---;
 	@(link_name="close")            _unix_close         :: proc(fd: Handle) -> c.int ---;
 	@(link_name="close")            _unix_close         :: proc(fd: Handle) -> c.int ---;
@@ -595,7 +595,7 @@ exit :: proc "contextless" (code: int) -> ! {
 }
 }
 
 
 current_thread_id :: proc "contextless" () -> int {
 current_thread_id :: proc "contextless" () -> int {
-	return syscall(SYS_GETTID);
+	return cast(int)syscall(SYS_GETTID);
 }
 }
 
 
 dlopen :: proc(filename: string, flags: int) -> rawptr {
 dlopen :: proc(filename: string, flags: int) -> rawptr {