linux.nim 882 B

1234567891011121314151617181920212223242526272829
  1. import posix
  2. const
  3. CSIGNAL* = 0x000000FF
  4. CLONE_VM* = 0x00000100
  5. CLONE_FS* = 0x00000200
  6. CLONE_FILES* = 0x00000400
  7. CLONE_SIGHAND* = 0x00000800
  8. CLONE_PTRACE* = 0x00002000
  9. CLONE_VFORK* = 0x00004000
  10. CLONE_PARENT* = 0x00008000
  11. CLONE_THREAD* = 0x00010000
  12. CLONE_NEWNS* = 0x00020000
  13. CLONE_SYSVSEM* = 0x00040000
  14. CLONE_SETTLS* = 0x00080000
  15. CLONE_PARENT_SETTID* = 0x00100000
  16. CLONE_CHILD_CLEARTID* = 0x00200000
  17. CLONE_DETACHED* = 0x00400000
  18. CLONE_UNTRACED* = 0x00800000
  19. CLONE_CHILD_SETTID* = 0x01000000
  20. CLONE_STOPPED* = 0x02000000
  21. # fn should be of type proc (a2: pointer): void {.cdecl.}
  22. proc clone*(fn: pointer; child_stack: pointer; flags: cint;
  23. arg: pointer; ptid: ptr Pid; tls: pointer;
  24. ctid: ptr Pid): cint {.importc, header: "<sched.h>".}
  25. proc pipe2*(a: array[0..1, cint], flags: cint): cint {.importc, header: "<unistd.h>".}