UnixTypes.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #pragma once
  2. extern "C" {
  3. namespace Unix {
  4. #define SEEK_SET 0
  5. #define SEEK_CUR 1
  6. #define SEEK_END 2
  7. #define SIGINT 2
  8. #define SIGKILL 9
  9. #define SIGSEGV 11
  10. #define SIGTERM 15
  11. typedef dword dev_t;
  12. typedef dword ino_t;
  13. typedef dword mode_t;
  14. typedef dword nlink_t;
  15. typedef dword uid_t;
  16. typedef dword gid_t;
  17. #ifdef SERENITY
  18. typedef void (*__sighandler_t)(int);
  19. typedef __sighandler_t sighandler_t;
  20. typedef dword sigset_t;
  21. typedef void siginfo_t;
  22. struct sigaction {
  23. union {
  24. void (*sa_handler)(int);
  25. void (*sa_sigaction)(int, siginfo_t*, void*);
  26. };
  27. sigset_t sa_mask;
  28. int sa_flags;
  29. void (*sa_restorer)(void);
  30. };
  31. #define SA_NOCLDSTOP 1
  32. #define SA_NOCLDWAIT 2
  33. #define SA_SIGINFO 4
  34. #define SIG_BLOCK 0
  35. #define SIG_UNBLOCK 1
  36. #define SIG_SETMASK 2
  37. #define SIGHUP 1
  38. #define SIGINT 2
  39. #define SIGQUIT 3
  40. #define SIGILL 4
  41. #define SIGTRAP 5
  42. #define SIGABRT 6
  43. #define SIGBUS 7
  44. #define SIGFPE 8
  45. #define SIGKILL 9
  46. #define SIGUSR1 10
  47. #define SIGSEGV 11
  48. #define SIGUSR2 12
  49. #define SIGPIPE 13
  50. #define SIGALRM 14
  51. #define SIGTERM 15
  52. #define SIGCONT 18
  53. #define SIGTSTP 20
  54. #define SIGTTIN 21
  55. #define SIGTTOU 22
  56. #endif
  57. #ifdef SERENITY
  58. // FIXME: Support 64-bit offsets!
  59. typedef signed_dword off_t;
  60. typedef unsigned int time_t;
  61. #else
  62. typedef signed_qword off_t;
  63. typedef ::time_t time_t;
  64. #endif
  65. typedef dword blksize_t;
  66. typedef dword blkcnt_t;
  67. typedef dword size_t;
  68. typedef signed_dword ssize_t;
  69. struct stat {
  70. dev_t st_dev; /* ID of device containing file */
  71. ino_t st_ino; /* inode number */
  72. mode_t st_mode; /* protection */
  73. nlink_t st_nlink; /* number of hard links */
  74. uid_t st_uid; /* user ID of owner */
  75. gid_t st_gid; /* group ID of owner */
  76. dev_t st_rdev; /* device ID (if special file) */
  77. off_t st_size; /* total size, in bytes */
  78. blksize_t st_blksize; /* blocksize for file system I/O */
  79. blkcnt_t st_blocks; /* number of 512B blocks allocated */
  80. time_t st_atime; /* time of last access */
  81. time_t st_mtime; /* time of last modification */
  82. time_t st_ctime; /* time of last status change */
  83. };
  84. }
  85. }