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