mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 23:28:48 +00:00
os2: initial implementation for Darwin&BSDs, process API is only thing incomplete
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
//+private
|
||||
//+build darwin, netbsd, freebsd, openbsd
|
||||
package os2
|
||||
|
||||
import "base:runtime"
|
||||
import "core:time"
|
||||
|
||||
import "core:sys/posix"
|
||||
|
||||
_exit :: proc "contextless" (code: int) -> ! {
|
||||
posix.exit(i32(code))
|
||||
}
|
||||
|
||||
_get_uid :: proc() -> int {
|
||||
return int(posix.getuid())
|
||||
}
|
||||
|
||||
_get_euid :: proc() -> int {
|
||||
return int(posix.geteuid())
|
||||
}
|
||||
|
||||
_get_gid :: proc() -> int {
|
||||
return int(posix.getgid())
|
||||
}
|
||||
|
||||
_get_egid :: proc() -> int {
|
||||
return int(posix.getegid())
|
||||
}
|
||||
|
||||
_get_pid :: proc() -> int {
|
||||
return int(posix.getpid())
|
||||
}
|
||||
|
||||
_get_ppid :: proc() -> int {
|
||||
return int(posix.getppid())
|
||||
}
|
||||
|
||||
_process_info_by_handle :: proc(process: Process, selection: Process_Info_Fields, allocator: runtime.Allocator) -> (info: Process_Info, err: Error) {
|
||||
return _process_info_by_pid(process.pid, selection, allocator)
|
||||
}
|
||||
|
||||
_current_process_info :: proc(selection: Process_Info_Fields, allocator: runtime.Allocator) -> (info: Process_Info, err: Error) {
|
||||
return _process_info_by_pid(_get_pid(), selection, allocator)
|
||||
}
|
||||
|
||||
_process_open :: proc(pid: int, flags: Process_Open_Flags) -> (process: Process, err: Error) {
|
||||
err = .Unsupported
|
||||
return
|
||||
}
|
||||
|
||||
_Sys_Process_Attributes :: struct {}
|
||||
|
||||
_process_start :: proc(desc: Process_Desc) -> (process: Process, err: Error) {
|
||||
err = .Unsupported
|
||||
return
|
||||
}
|
||||
|
||||
_process_wait :: proc(process: Process, timeout: time.Duration) -> (process_state: Process_State, err: Error) {
|
||||
err = .Unsupported
|
||||
return
|
||||
}
|
||||
|
||||
_process_close :: proc(process: Process) -> Error {
|
||||
return .Unsupported
|
||||
}
|
||||
|
||||
_process_kill :: proc(process: Process) -> Error {
|
||||
return .Unsupported
|
||||
}
|
||||
Reference in New Issue
Block a user