socket.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 SO_DEBUG 1
  33. #define SO_REUSEADDR 2
  34. #define SO_TYPE 3
  35. #define SO_ERROR 4
  36. #define SO_DONTROUTE 5
  37. #define SO_BROADCAST 6
  38. #define SO_SNDBUF 7
  39. #define SO_RCVBUF 8
  40. #define SO_KEEPALIVE 9
  41. #define SO_OOBINLINE 10
  42. #define SO_NO_CHECK 11
  43. #define SO_PRIORITY 12
  44. #define SO_LINGER 13
  45. #define SO_BSDCOMPAT 14
  46. #define SO_REUSEPORT 15
  47. #define SO_RCVLOWAT 16
  48. #define SO_SNDLOWAT 17
  49. #define SO_RCVTIMEO 18
  50. #define SO_SNDTIMEO 19
  51. #define SO_PASSCRED 20
  52. #define SO_PEERCRED 21
  53. #define SO_ACCEPTCONN 30
  54. #define SO_PEERSEC 31
  55. #define SO_SNDBUFFORCE 32
  56. #define SO_RCVBUFFORCE 33
  57. #define SO_PROTOCOL 38
  58. #define SO_DOMAIN 39