Home | History | Annotate | Download | only in linux
      1 #ifndef _LINUX_SOCKET_H
      2 #define _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 /* _LINUX_SOCKET_H */
     22