xref: /aosp_15_r20/external/iproute2/include/uapi/linux/socket.h (revision de1e4e894b0c224df933550f0afdecc354b238c4)
1*de1e4e89SAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*de1e4e89SAndroid Build Coastguard Worker #ifndef _LINUX_SOCKET_H
3*de1e4e89SAndroid Build Coastguard Worker #define _LINUX_SOCKET_H
4*de1e4e89SAndroid Build Coastguard Worker 
5*de1e4e89SAndroid Build Coastguard Worker /*
6*de1e4e89SAndroid Build Coastguard Worker  * Desired design of maximum size and alignment (see RFC2553)
7*de1e4e89SAndroid Build Coastguard Worker  */
8*de1e4e89SAndroid Build Coastguard Worker #define _K_SS_MAXSIZE	128	/* Implementation specific max size */
9*de1e4e89SAndroid Build Coastguard Worker #define _K_SS_ALIGNSIZE	(__alignof__ (struct sockaddr *))
10*de1e4e89SAndroid Build Coastguard Worker 				/* Implementation specific desired alignment */
11*de1e4e89SAndroid Build Coastguard Worker 
12*de1e4e89SAndroid Build Coastguard Worker typedef unsigned short __kernel_sa_family_t;
13*de1e4e89SAndroid Build Coastguard Worker 
14*de1e4e89SAndroid Build Coastguard Worker struct __kernel_sockaddr_storage {
15*de1e4e89SAndroid Build Coastguard Worker 	__kernel_sa_family_t	ss_family;		/* address family */
16*de1e4e89SAndroid Build Coastguard Worker 	/* Following field(s) are implementation specific */
17*de1e4e89SAndroid Build Coastguard Worker 	char		__data[_K_SS_MAXSIZE - sizeof(unsigned short)];
18*de1e4e89SAndroid Build Coastguard Worker 				/* space to achieve desired size, */
19*de1e4e89SAndroid Build Coastguard Worker 				/* _SS_MAXSIZE value minus size of ss_family */
20*de1e4e89SAndroid Build Coastguard Worker } __attribute__ ((aligned(_K_SS_ALIGNSIZE)));	/* force desired alignment */
21*de1e4e89SAndroid Build Coastguard Worker 
22*de1e4e89SAndroid Build Coastguard Worker #endif /* _LINUX_SOCKET_H */
23