socket.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
  2. #ifndef _UAPI_LINUX_SOCKET_H
  3. #define _UAPI_LINUX_SOCKET_H
  4. /*
  5. * Desired design of maximum size and alignment (see RFC2553)
  6. */
  7. #define _K_SS_MAXSIZE 128 /* Implementation specific max size */
  8. typedef unsigned short __kernel_sa_family_t;
  9. /*
  10. * The definition uses anonymous union and struct in order to control the
  11. * default alignment.
  12. */
  13. struct __kernel_sockaddr_storage {
  14. union {
  15. struct {
  16. __kernel_sa_family_t ss_family; /* address family */
  17. /* Following field(s) are implementation specific */
  18. char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
  19. /* space to achieve desired size, */
  20. /* _SS_MAXSIZE value minus size of ss_family */
  21. };
  22. void *__align; /* implementation specific desired alignment */
  23. };
  24. };
  25. #define SOCK_SNDBUF_LOCK 1
  26. #define SOCK_RCVBUF_LOCK 2
  27. #define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
  28. #define SOCK_TXREHASH_DEFAULT 255
  29. #define SOCK_TXREHASH_DISABLED 0
  30. #define SOCK_TXREHASH_ENABLED 1
  31. #endif /* _UAPI_LINUX_SOCKET_H */