socket.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include <endian.h>
  2. struct msghdr
  3. {
  4. void *msg_name;
  5. socklen_t msg_namelen;
  6. struct iovec *msg_iov;
  7. #if __BYTE_ORDER == __BIG_ENDIAN
  8. int __pad1, msg_iovlen;
  9. #else
  10. int msg_iovlen, __pad1;
  11. #endif
  12. void *msg_control;
  13. #if __BYTE_ORDER == __BIG_ENDIAN
  14. int __pad2;
  15. socklen_t msg_controllen;
  16. #else
  17. socklen_t msg_controllen;
  18. int __pad2;
  19. #endif
  20. int msg_flags;
  21. };
  22. struct cmsghdr
  23. {
  24. #if __BYTE_ORDER == __BIG_ENDIAN
  25. int __pad1;
  26. socklen_t cmsg_len;
  27. #else
  28. socklen_t cmsg_len;
  29. int __pad1;
  30. #endif
  31. int cmsg_level;
  32. int cmsg_type;
  33. };
  34. #define SO_DEBUG 1
  35. #define SO_REUSEADDR 2
  36. #define SO_TYPE 3
  37. #define SO_ERROR 4
  38. #define SO_DONTROUTE 5
  39. #define SO_BROADCAST 6
  40. #define SO_SNDBUF 7
  41. #define SO_RCVBUF 8
  42. #define SO_KEEPALIVE 9
  43. #define SO_OOBINLINE 10
  44. #define SO_NO_CHECK 11
  45. #define SO_PRIORITY 12
  46. #define SO_LINGER 13
  47. #define SO_BSDCOMPAT 14
  48. #define SO_REUSEPORT 15
  49. #define SO_RCVLOWAT 16
  50. #define SO_SNDLOWAT 17
  51. #define SO_RCVTIMEO 18
  52. #define SO_SNDTIMEO 19
  53. #define SO_PASSCRED 20
  54. #define SO_PEERCRED 21
  55. #define SO_ACCEPTCONN 30
  56. #define SO_SNDBUFFORCE 32
  57. #define SO_RCVBUFFORCE 33
  58. #define SO_PROTOCOL 38
  59. #define SO_DOMAIN 39