UnixTypes.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/DistinctNumeric.h>
  8. #include <AK/Types.h>
  9. #include <Kernel/API/POSIX/dirent.h>
  10. #include <Kernel/API/POSIX/fcntl.h>
  11. #include <Kernel/API/POSIX/futex.h>
  12. #include <Kernel/API/POSIX/net/if.h>
  13. #include <Kernel/API/POSIX/net/if_arp.h>
  14. #include <Kernel/API/POSIX/net/route.h>
  15. #include <Kernel/API/POSIX/netinet/in.h>
  16. #include <Kernel/API/POSIX/poll.h>
  17. #include <Kernel/API/POSIX/serenity.h>
  18. #include <Kernel/API/POSIX/signal.h>
  19. #include <Kernel/API/POSIX/stdio.h>
  20. #include <Kernel/API/POSIX/sys/mman.h>
  21. #include <Kernel/API/POSIX/sys/ptrace.h>
  22. #include <Kernel/API/POSIX/sys/socket.h>
  23. #include <Kernel/API/POSIX/sys/stat.h>
  24. #include <Kernel/API/POSIX/sys/time.h>
  25. #include <Kernel/API/POSIX/sys/times.h>
  26. #include <Kernel/API/POSIX/sys/un.h>
  27. #include <Kernel/API/POSIX/sys/utsname.h>
  28. #include <Kernel/API/POSIX/sys/wait.h>
  29. #include <Kernel/API/POSIX/termios.h>
  30. #include <Kernel/API/POSIX/time.h>
  31. #include <Kernel/API/POSIX/unistd.h>
  32. // Kernel internal options.
  33. #define O_NOFOLLOW_NOERROR (1 << 29)
  34. #define O_UNLINK_INTERNAL (1 << 30)
  35. // Avoid interference with AK/Types.h and LibC/sys/types.h by defining *separate* names:
  36. TYPEDEF_DISTINCT_ORDERED_ID(pid_t, ProcessID);
  37. TYPEDEF_DISTINCT_ORDERED_ID(pid_t, ThreadID);
  38. TYPEDEF_DISTINCT_ORDERED_ID(pid_t, SessionID);
  39. TYPEDEF_DISTINCT_ORDERED_ID(pid_t, ProcessGroupID);
  40. typedef u32 __u32;
  41. typedef u16 __u16;
  42. typedef u8 __u8;
  43. typedef int __s32;
  44. typedef short __s16;
  45. struct iovec {
  46. void* iov_base;
  47. size_t iov_len;
  48. };
  49. struct sched_param {
  50. int sched_priority;
  51. };
  52. #define ST_RDONLY 0x1
  53. #define ST_NOSUID 0x2
  54. struct statvfs {
  55. unsigned long f_bsize;
  56. unsigned long f_frsize;
  57. fsblkcnt_t f_blocks;
  58. fsblkcnt_t f_bfree;
  59. fsblkcnt_t f_bavail;
  60. fsfilcnt_t f_files;
  61. fsfilcnt_t f_ffree;
  62. fsfilcnt_t f_favail;
  63. unsigned long f_fsid;
  64. unsigned long f_flag;
  65. unsigned long f_namemax;
  66. };