summaryrefslogtreecommitdiff
path: root/include/uapi/linux/socket.h
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-08-12 08:33:23 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-08-12 08:33:23 +0300
commit77e38c19f373c077712e60cd190ca9cba13b7177 (patch)
treec7a743735cffdcaee26ca559888196d229c4ec1e /include/uapi/linux/socket.h
parentcec2caedd979e8778b61ca7dd15fa7ec8fcf7162 (diff)
parentd45331b00ddb179e291766617259261c112db872 (diff)
downloadlinux-77e38c19f373c077712e60cd190ca9cba13b7177.tar.xz
Merge 5.3-rc4 into char-misc-next
We need the char-misc fixes in here as well. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/uapi/linux/socket.h')
-rw-r--r--include/uapi/linux/socket.h19
1 files changed, 13 insertions, 6 deletions
diff --git a/include/uapi/linux/socket.h b/include/uapi/linux/socket.h
index 8eb96021709c..c3409c8ec0dd 100644
--- a/include/uapi/linux/socket.h
+++ b/include/uapi/linux/socket.h
@@ -6,17 +6,24 @@
* Desired design of maximum size and alignment (see RFC2553)
*/
#define _K_SS_MAXSIZE 128 /* Implementation specific max size */
-#define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *))
- /* Implementation specific desired alignment */
typedef unsigned short __kernel_sa_family_t;
+/*
+ * The definition uses anonymous union and struct in order to control the
+ * default alignment.
+ */
struct __kernel_sockaddr_storage {
- __kernel_sa_family_t ss_family; /* address family */
- /* Following field(s) are implementation specific */
- char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
+ union {
+ struct {
+ __kernel_sa_family_t ss_family; /* address family */
+ /* Following field(s) are implementation specific */
+ char __data[_K_SS_MAXSIZE - sizeof(unsigned short)];
/* space to achieve desired size, */
/* _SS_MAXSIZE value minus size of ss_family */
-} __attribute__ ((aligned(_K_SS_ALIGNSIZE))); /* force desired alignment */
+ };
+ void *__align; /* implementation specific desired alignment */
+ };
+};
#endif /* _UAPI_LINUX_SOCKET_H */