1
0

socket.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #include <endian.h>
  2. struct msghdr {
  3. void *msg_name;
  4. socklen_t msg_namelen;
  5. struct iovec *msg_iov;
  6. #if __BYTE_ORDER == __BIG_ENDIAN
  7. int __pad1, msg_iovlen;
  8. #else
  9. int msg_iovlen, __pad1;
  10. #endif
  11. void *msg_control;
  12. #if __BYTE_ORDER == __BIG_ENDIAN
  13. int __pad2;
  14. socklen_t msg_controllen;
  15. #else
  16. socklen_t msg_controllen;
  17. int __pad2;
  18. #endif
  19. int msg_flags;
  20. };
  21. struct cmsghdr {
  22. #if __BYTE_ORDER == __BIG_ENDIAN
  23. int __pad1;
  24. socklen_t cmsg_len;
  25. #else
  26. socklen_t cmsg_len;
  27. int __pad1;
  28. #endif
  29. int cmsg_level;
  30. int cmsg_type;
  31. };
  32. #define SOCK_STREAM 2
  33. #define SOCK_DGRAM 1
  34. #define SOL_SOCKET 65535
  35. #define SO_DEBUG 1
  36. #define SO_REUSEADDR 0x0004
  37. #define SO_KEEPALIVE 0x0008
  38. #define SO_DONTROUTE 0x0010
  39. #define SO_BROADCAST 0x0020
  40. #define SO_LINGER 0x0080
  41. #define SO_OOBINLINE 0x0100
  42. #define SO_REUSEPORT 0x0200
  43. #define SO_SNDBUF 0x1001
  44. #define SO_RCVBUF 0x1002
  45. #define SO_SNDLOWAT 0x1003
  46. #define SO_RCVLOWAT 0x1004
  47. #define SO_RCVTIMEO 0x1006
  48. #define SO_SNDTIMEO 0x1005
  49. #define SO_ERROR 0x1007
  50. #define SO_TYPE 0x1008
  51. #define SO_ACCEPTCONN 0x1009
  52. #define SO_PROTOCOL 0x1028
  53. #define SO_DOMAIN 0x1029
  54. #define SO_NO_CHECK 11
  55. #define SO_PRIORITY 12
  56. #define SO_BSDCOMPAT 14
  57. #define SO_PASSCRED 17
  58. #define SO_PEERCRED 18
  59. #define SO_SNDBUFFORCE 31
  60. #define SO_RCVBUFFORCE 33
  61. #define SOCK_NONBLOCK 0200
  62. #define SOCK_CLOEXEC 02000000