summaryrefslogtreecommitdiffstats
path: root/include/uapi/linux/socket.h
diff options
context:
space:
mode:
authorDmitry Torokhov <dmitry.torokhov@gmail.com>2019-09-16 09:56:27 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2019-09-16 09:56:27 -0700
commit0898782247ae533d1f4e47a06bc5d4870931b284 (patch)
tree21f75cc590542a870f42350b9410fc0588f02b79 /include/uapi/linux/socket.h
parent0c043d70d04711fe6c380df9065fdc44192c49bf (diff)
parent410f25de467ee94c1a577c6ee7370c37b376c17c (diff)
downloadcachepc-linux-0898782247ae533d1f4e47a06bc5d4870931b284.tar.gz
cachepc-linux-0898782247ae533d1f4e47a06bc5d4870931b284.zip
Merge branch 'next' into for-linus
Prepare input updates for 5.4 merge window.
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 */