process.odin 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. package os2
  2. import "core:sync"
  3. import "core:time"
  4. import "core:runtime"
  5. args: []string
  6. exit :: proc "contextless" (code: int) -> ! {
  7. runtime.trap()
  8. }
  9. get_uid :: proc() -> int {
  10. return -1
  11. }
  12. get_euid :: proc() -> int {
  13. return -1
  14. }
  15. get_gid :: proc() -> int {
  16. return -1
  17. }
  18. get_egid :: proc() -> int {
  19. return -1
  20. }
  21. get_pid :: proc() -> int {
  22. return -1
  23. }
  24. get_ppid :: proc() -> int {
  25. return -1
  26. }
  27. Process :: struct {
  28. pid: int,
  29. handle: uintptr,
  30. is_done: b32,
  31. signal_mutex: sync.RW_Mutex,
  32. }
  33. Process_Attributes :: struct {
  34. dir: string,
  35. env: []string,
  36. files: []^File,
  37. sys: ^Process_Attributes_OS_Specific,
  38. }
  39. Process_Attributes_OS_Specific :: struct{}
  40. Process_Error :: enum {
  41. None,
  42. }
  43. Process_State :: struct {
  44. pid: int,
  45. exit_code: int,
  46. exited: bool,
  47. success: bool,
  48. system_time: time.Duration,
  49. user_time: time.Duration,
  50. sys: rawptr,
  51. }
  52. Signal :: #type proc()
  53. Kill: Signal = nil
  54. Interrupt: Signal = nil
  55. find_process :: proc(pid: int) -> (^Process, Process_Error) {
  56. return nil, .None
  57. }
  58. process_start :: proc(name: string, argv: []string, attr: ^Process_Attributes) -> (^Process, Process_Error) {
  59. return nil, .None
  60. }
  61. process_release :: proc(p: ^Process) -> Process_Error {
  62. return .None
  63. }
  64. process_kill :: proc(p: ^Process) -> Process_Error {
  65. return .None
  66. }
  67. process_signal :: proc(p: ^Process, sig: Signal) -> Process_Error {
  68. return .None
  69. }
  70. process_wait :: proc(p: ^Process) -> (Process_State, Process_Error) {
  71. return {}, .None
  72. }