| David Howells | 607ca46 | 2012-10-13 10:46:48 +0100 | [diff] [blame] | 1 | #ifndef _UAPI_LINUX_SOCKET_H | 
|  | 2 | #define _UAPI_LINUX_SOCKET_H | 
|  | 3 |  | 
|  | 4 | /* | 
|  | 5 | * Desired design of maximum size and alignment (see RFC2553) | 
|  | 6 | */ | 
|  | 7 | #define _K_SS_MAXSIZE	128	/* Implementation specific max size */ | 
|  | 8 | #define _K_SS_ALIGNSIZE	(__alignof__ (struct sockaddr *)) | 
|  | 9 | /* Implementation specific desired alignment */ | 
|  | 10 |  | 
|  | 11 | typedef unsigned short __kernel_sa_family_t; | 
|  | 12 |  | 
|  | 13 | struct __kernel_sockaddr_storage { | 
|  | 14 | __kernel_sa_family_t	ss_family;		/* address family */ | 
|  | 15 | /* Following field(s) are implementation specific */ | 
|  | 16 | char		__data[_K_SS_MAXSIZE - sizeof(unsigned short)]; | 
|  | 17 | /* space to achieve desired size, */ | 
|  | 18 | /* _SS_MAXSIZE value minus size of ss_family */ | 
|  | 19 | } __attribute__ ((aligned(_K_SS_ALIGNSIZE)));	/* force desired alignment */ | 
|  | 20 |  | 
|  | 21 | #endif /* _UAPI_LINUX_SOCKET_H */ |