* [Qemu-devel] [PATCH v3 1/8] linux-user: move mips socket.h definitions to mips/sockbits.h
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 2/8] linux-user: move alpha socket.h definitions to alpha/sockbits.h Laurent Vivier
` (7 subsequent siblings)
8 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
linux-user/mips/sockbits.h | 110 +++++++++++++++++++++++++++++++++++++++++++
linux-user/mips64/sockbits.h | 1 +
linux-user/socket.h | 106 +----------------------------------------
3 files changed, 113 insertions(+), 104 deletions(-)
create mode 100644 linux-user/mips/sockbits.h
create mode 100644 linux-user/mips64/sockbits.h
diff --git a/linux-user/mips/sockbits.h b/linux-user/mips/sockbits.h
new file mode 100644
index 0000000000..3fe5ac88e7
--- /dev/null
+++ b/linux-user/mips/sockbits.h
@@ -0,0 +1,110 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation, or (at your option) any
+ * later version. See the COPYING file in the top-level directory.
+ */
+
+#ifndef MIPS_SOCKBITS_H
+#define MIPS_SOCKBITS_H
+/* MIPS special values for constants */
+
+/*
+ * For setsockopt(2)
+ *
+ * This defines are ABI conformant as far as Linux supports these ...
+ */
+#define TARGET_SOL_SOCKET 0xffff
+
+#define TARGET_SO_DEBUG 0x0001 /* Record debugging information. */
+#define TARGET_SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */
+#define TARGET_SO_KEEPALIVE 0x0008 /* Keep connections alive and send
+ SIGPIPE when they die. */
+#define TARGET_SO_DONTROUTE 0x0010 /* Don't do local routing. */
+#define TARGET_SO_BROADCAST 0x0020 /* Allow transmission of
+ broadcast messages. */
+#define TARGET_SO_LINGER 0x0080 /* Block on close of a reliable
+ * socket to transmit pending data.
+ */
+#define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band.
+ */
+#if 0
+/* To add: Allow local address and port reuse. */
+#define TARGET_SO_REUSEPORT 0x0200
+#endif
+
+#define TARGET_SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
+#define TARGET_SO_STYLE SO_TYPE /* Synonym */
+#define TARGET_SO_ERROR 0x1007 /* get error status and clear */
+#define TARGET_SO_SNDBUF 0x1001 /* Send buffer size. */
+#define TARGET_SO_RCVBUF 0x1002 /* Receive buffer. */
+#define TARGET_SO_SNDLOWAT 0x1003 /* send low-water mark */
+#define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */
+#define TARGET_SO_SNDTIMEO 0x1005 /* send timeout */
+#define TARGET_SO_RCVTIMEO 0x1006 /* receive timeout */
+#define TARGET_SO_ACCEPTCONN 0x1009
+
+/* linux-specific, might as well be the same as on i386 */
+#define TARGET_SO_NO_CHECK 11
+#define TARGET_SO_PRIORITY 12
+#define TARGET_SO_BSDCOMPAT 14
+
+#define TARGET_SO_PASSCRED 17
+#define TARGET_SO_PEERCRED 18
+
+/* Security levels - as per NRL IPv6 - don't actually do anything */
+#define TARGET_SO_SECURITY_AUTHENTICATION 22
+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
+
+#define TARGET_SO_BINDTODEVICE 25
+
+/* Socket filtering */
+#define TARGET_SO_ATTACH_FILTER 26
+#define TARGET_SO_DETACH_FILTER 27
+
+#define TARGET_SO_PEERNAME 28
+#define TARGET_SO_TIMESTAMP 29
+#define SCM_TIMESTAMP SO_TIMESTAMP
+
+#define TARGET_SO_PEERSEC 30
+#define TARGET_SO_SNDBUFFORCE 31
+#define TARGET_SO_RCVBUFFORCE 33
+#define TARGET_SO_PASSSEC 34
+
+/** sock_type - Socket types
+ *
+ * Please notice that for binary compat reasons MIPS has to
+ * override the enum sock_type in include/linux/net.h, so
+ * we define ARCH_HAS_SOCKET_TYPES here.
+ *
+ * @SOCK_DGRAM - datagram (conn.less) socket
+ * @SOCK_STREAM - stream (connection) socket
+ * @SOCK_RAW - raw socket
+ * @SOCK_RDM - reliably-delivered message
+ * @SOCK_SEQPACKET - sequential packet socket
+ * @SOCK_DCCP - Datagram Congestion Control Protocol socket
+ * @SOCK_PACKET - linux specific way of getting packets at the dev level.
+ * For writing rarp and other similar things on the user
+ * level.
+ * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
+ * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
+ */
+
+#define ARCH_HAS_SOCKET_TYPES 1
+
+enum sock_type {
+ TARGET_SOCK_DGRAM = 1,
+ TARGET_SOCK_STREAM = 2,
+ TARGET_SOCK_RAW = 3,
+ TARGET_SOCK_RDM = 4,
+ TARGET_SOCK_SEQPACKET = 5,
+ TARGET_SOCK_DCCP = 6,
+ TARGET_SOCK_PACKET = 10,
+ TARGET_SOCK_CLOEXEC = 02000000,
+ TARGET_SOCK_NONBLOCK = 0200,
+};
+
+#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
+#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+#endif
diff --git a/linux-user/mips64/sockbits.h b/linux-user/mips64/sockbits.h
new file mode 100644
index 0000000000..e6b6d31ac9
--- /dev/null
+++ b/linux-user/mips64/sockbits.h
@@ -0,0 +1 @@
+#include "../mips/sockbits.h"
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 7051cd2cf4..9c57da7a61 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,106 +1,6 @@
-#if defined(TARGET_MIPS)
- /* MIPS special values for constants */
-
- /*
- * For setsockopt(2)
- *
- * This defines are ABI conformant as far as Linux supports these ...
- */
- #define TARGET_SOL_SOCKET 0xffff
-
- #define TARGET_SO_DEBUG 0x0001 /* Record debugging information. */
- #define TARGET_SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */
- #define TARGET_SO_KEEPALIVE 0x0008 /* Keep connections alive and send
- SIGPIPE when they die. */
- #define TARGET_SO_DONTROUTE 0x0010 /* Don't do local routing. */
- #define TARGET_SO_BROADCAST 0x0020 /* Allow transmission of
- broadcast messages. */
- #define TARGET_SO_LINGER 0x0080 /* Block on close of a reliable
- * socket to transmit pending data.
- */
- #define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band.
- */
- #if 0
- /* To add: Allow local address and port reuse. */
- #define TARGET_SO_REUSEPORT 0x0200
- #endif
-
- #define TARGET_SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
- #define TARGET_SO_STYLE SO_TYPE /* Synonym */
- #define TARGET_SO_ERROR 0x1007 /* get error status and clear */
- #define TARGET_SO_SNDBUF 0x1001 /* Send buffer size. */
- #define TARGET_SO_RCVBUF 0x1002 /* Receive buffer. */
- #define TARGET_SO_SNDLOWAT 0x1003 /* send low-water mark */
- #define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */
- #define TARGET_SO_SNDTIMEO 0x1005 /* send timeout */
- #define TARGET_SO_RCVTIMEO 0x1006 /* receive timeout */
- #define TARGET_SO_ACCEPTCONN 0x1009
-
- /* linux-specific, might as well be the same as on i386 */
- #define TARGET_SO_NO_CHECK 11
- #define TARGET_SO_PRIORITY 12
- #define TARGET_SO_BSDCOMPAT 14
-
- #define TARGET_SO_PASSCRED 17
- #define TARGET_SO_PEERCRED 18
-
- /* Security levels - as per NRL IPv6 - don't actually do anything */
- #define TARGET_SO_SECURITY_AUTHENTICATION 22
- #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
- #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
-
- #define TARGET_SO_BINDTODEVICE 25
-
- /* Socket filtering */
- #define TARGET_SO_ATTACH_FILTER 26
- #define TARGET_SO_DETACH_FILTER 27
-
- #define TARGET_SO_PEERNAME 28
- #define TARGET_SO_TIMESTAMP 29
- #define SCM_TIMESTAMP SO_TIMESTAMP
-
- #define TARGET_SO_PEERSEC 30
- #define TARGET_SO_SNDBUFFORCE 31
- #define TARGET_SO_RCVBUFFORCE 33
- #define TARGET_SO_PASSSEC 34
-
- /** sock_type - Socket types
- *
- * Please notice that for binary compat reasons MIPS has to
- * override the enum sock_type in include/linux/net.h, so
- * we define ARCH_HAS_SOCKET_TYPES here.
- *
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
- */
-
- #define ARCH_HAS_SOCKET_TYPES 1
-
- enum sock_type {
- TARGET_SOCK_DGRAM = 1,
- TARGET_SOCK_STREAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 02000000,
- TARGET_SOCK_NONBLOCK = 0200,
- };
-
- #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
- #define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
-
+#if defined(TARGET_MIPS) || defined(TARGET_HPPA)
+#include "sockbits.h"
#elif defined(TARGET_ALPHA)
/* For setsockopt(2) */
@@ -205,8 +105,6 @@
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
-#elif defined(TARGET_HPPA)
-#include <hppa/sockbits.h>
#else
#if defined(TARGET_SPARC)
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 2/8] linux-user: move alpha socket.h definitions to alpha/sockbits.h
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 1/8] linux-user: move mips socket.h definitions to mips/sockbits.h Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 3/8] linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h Laurent Vivier
` (6 subsequent siblings)
8 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
linux-user/alpha/sockbits.h | 113 ++++++++++++++++++++++++++++++++++++++++++++
linux-user/socket.h | 106 +----------------------------------------
2 files changed, 114 insertions(+), 105 deletions(-)
create mode 100644 linux-user/alpha/sockbits.h
diff --git a/linux-user/alpha/sockbits.h b/linux-user/alpha/sockbits.h
new file mode 100644
index 0000000000..4db3e52b67
--- /dev/null
+++ b/linux-user/alpha/sockbits.h
@@ -0,0 +1,113 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation, or (at your option) any
+ * later version. See the COPYING file in the top-level directory.
+ */
+
+#ifndef ALPHA_SOCKBITS_H
+#define ALPHA_SOCKBITS_H
+
+/* For setsockopt(2) */
+#define TARGET_SOL_SOCKET 0xffff
+
+#define TARGET_SO_DEBUG 0x0001
+#define TARGET_SO_REUSEADDR 0x0004
+#define TARGET_SO_KEEPALIVE 0x0008
+#define TARGET_SO_DONTROUTE 0x0010
+#define TARGET_SO_BROADCAST 0x0020
+#define TARGET_SO_LINGER 0x0080
+#define TARGET_SO_OOBINLINE 0x0100
+/* To add :#define TARGET_SO_REUSEPORT 0x0200 */
+
+#define TARGET_SO_TYPE 0x1008
+#define TARGET_SO_ERROR 0x1007
+#define TARGET_SO_SNDBUF 0x1001
+#define TARGET_SO_RCVBUF 0x1002
+#define TARGET_SO_SNDBUFFORCE 0x100a
+#define TARGET_SO_RCVBUFFORCE 0x100b
+#define TARGET_SO_RCVLOWAT 0x1010
+#define TARGET_SO_SNDLOWAT 0x1011
+#define TARGET_SO_RCVTIMEO 0x1012
+#define TARGET_SO_SNDTIMEO 0x1013
+#define TARGET_SO_ACCEPTCONN 0x1014
+#define TARGET_SO_PROTOCOL 0x1028
+#define TARGET_SO_DOMAIN 0x1029
+
+/* linux-specific, might as well be the same as on i386 */
+#define TARGET_SO_NO_CHECK 11
+#define TARGET_SO_PRIORITY 12
+#define TARGET_SO_BSDCOMPAT 14
+
+#define TARGET_SO_PASSCRED 17
+#define TARGET_SO_PEERCRED 18
+#define TARGET_SO_BINDTODEVICE 25
+
+/* Socket filtering */
+#define TARGET_SO_ATTACH_FILTER 26
+#define TARGET_SO_DETACH_FILTER 27
+
+#define TARGET_SO_PEERNAME 28
+#define TARGET_SO_TIMESTAMP 29
+#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
+
+#define TARGET_SO_PEERSEC 30
+#define TARGET_SO_PASSSEC 34
+#define TARGET_SO_TIMESTAMPNS 35
+#define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
+
+/* Security levels - as per NRL IPv6 - don't actually do anything */
+#define TARGET_SO_SECURITY_AUTHENTICATION 19
+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 20
+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 21
+
+#define TARGET_SO_MARK 36
+
+#define TARGET_SO_TIMESTAMPING 37
+#define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING
+
+#define TARGET_SO_RXQ_OVFL 40
+
+#define TARGET_SO_WIFI_STATUS 41
+#define TARGET_SCM_WIFI_STATUS TARGET_SO_WIFI_STATUS
+#define TARGET_SO_PEEK_OFF 42
+
+/* Instruct lower device to use last 4-bytes of skb data as FCS */
+#define TARGET_SO_NOFCS 43
+
+/** sock_type - Socket types
+ *
+ * Please notice that for binary compat reasons ALPHA has to
+ * override the enum sock_type in include/linux/net.h, so
+ * we define ARCH_HAS_SOCKET_TYPES here.
+ *
+ * @SOCK_DGRAM - datagram (conn.less) socket
+ * @SOCK_STREAM - stream (connection) socket
+ * @SOCK_RAW - raw socket
+ * @SOCK_RDM - reliably-delivered message
+ * @SOCK_SEQPACKET - sequential packet socket
+ * @SOCK_DCCP - Datagram Congestion Control Protocol socket
+ * @SOCK_PACKET - linux specific way of getting packets at the dev level.
+ * For writing rarp and other similar things on the user
+ * level.
+ * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
+ * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
+ */
+
+#define ARCH_HAS_SOCKET_TYPES 1
+
+enum sock_type {
+ TARGET_SOCK_STREAM = 1,
+ TARGET_SOCK_DGRAM = 2,
+ TARGET_SOCK_RAW = 3,
+ TARGET_SOCK_RDM = 4,
+ TARGET_SOCK_SEQPACKET = 5,
+ TARGET_SOCK_DCCP = 6,
+ TARGET_SOCK_PACKET = 10,
+ TARGET_SOCK_CLOEXEC = 010000000,
+ TARGET_SOCK_NONBLOCK = 010000000000,
+};
+
+#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
+#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+#endif
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 9c57da7a61..1328906205 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,110 +1,6 @@
-#if defined(TARGET_MIPS) || defined(TARGET_HPPA)
+#if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA)
#include "sockbits.h"
-#elif defined(TARGET_ALPHA)
-
- /* For setsockopt(2) */
- #define TARGET_SOL_SOCKET 0xffff
-
- #define TARGET_SO_DEBUG 0x0001
- #define TARGET_SO_REUSEADDR 0x0004
- #define TARGET_SO_KEEPALIVE 0x0008
- #define TARGET_SO_DONTROUTE 0x0010
- #define TARGET_SO_BROADCAST 0x0020
- #define TARGET_SO_LINGER 0x0080
- #define TARGET_SO_OOBINLINE 0x0100
- /* To add :#define TARGET_SO_REUSEPORT 0x0200 */
-
- #define TARGET_SO_TYPE 0x1008
- #define TARGET_SO_ERROR 0x1007
- #define TARGET_SO_SNDBUF 0x1001
- #define TARGET_SO_RCVBUF 0x1002
- #define TARGET_SO_SNDBUFFORCE 0x100a
- #define TARGET_SO_RCVBUFFORCE 0x100b
- #define TARGET_SO_RCVLOWAT 0x1010
- #define TARGET_SO_SNDLOWAT 0x1011
- #define TARGET_SO_RCVTIMEO 0x1012
- #define TARGET_SO_SNDTIMEO 0x1013
- #define TARGET_SO_ACCEPTCONN 0x1014
- #define TARGET_SO_PROTOCOL 0x1028
- #define TARGET_SO_DOMAIN 0x1029
-
- /* linux-specific, might as well be the same as on i386 */
- #define TARGET_SO_NO_CHECK 11
- #define TARGET_SO_PRIORITY 12
- #define TARGET_SO_BSDCOMPAT 14
-
- #define TARGET_SO_PASSCRED 17
- #define TARGET_SO_PEERCRED 18
- #define TARGET_SO_BINDTODEVICE 25
-
- /* Socket filtering */
- #define TARGET_SO_ATTACH_FILTER 26
- #define TARGET_SO_DETACH_FILTER 27
-
- #define TARGET_SO_PEERNAME 28
- #define TARGET_SO_TIMESTAMP 29
- #define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
-
- #define TARGET_SO_PEERSEC 30
- #define TARGET_SO_PASSSEC 34
- #define TARGET_SO_TIMESTAMPNS 35
- #define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
-
- /* Security levels - as per NRL IPv6 - don't actually do anything */
- #define TARGET_SO_SECURITY_AUTHENTICATION 19
- #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 20
- #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 21
-
- #define TARGET_SO_MARK 36
-
- #define TARGET_SO_TIMESTAMPING 37
- #define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING
-
- #define TARGET_SO_RXQ_OVFL 40
-
- #define TARGET_SO_WIFI_STATUS 41
- #define TARGET_SCM_WIFI_STATUS TARGET_SO_WIFI_STATUS
- #define TARGET_SO_PEEK_OFF 42
-
- /* Instruct lower device to use last 4-bytes of skb data as FCS */
- #define TARGET_SO_NOFCS 43
-
- /** sock_type - Socket types
- *
- * Please notice that for binary compat reasons ALPHA has to
- * override the enum sock_type in include/linux/net.h, so
- * we define ARCH_HAS_SOCKET_TYPES here.
- *
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
- */
-
- #define ARCH_HAS_SOCKET_TYPES 1
-
- enum sock_type {
- TARGET_SOCK_STREAM = 1,
- TARGET_SOCK_DGRAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 010000000,
- TARGET_SOCK_NONBLOCK = 010000000000,
- };
-
- #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
- #define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
#else
#if defined(TARGET_SPARC)
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 3/8] linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 1/8] linux-user: move mips socket.h definitions to mips/sockbits.h Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 2/8] linux-user: move alpha socket.h definitions to alpha/sockbits.h Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 4/8] linux-user: move socket.h generic definitions to generic/sockbits.h Laurent Vivier
` (5 subsequent siblings)
8 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
linux-user/socket.h | 44 +-------------------
linux-user/sparc/sockbits.h | 94 +++++++++++++++++++++++++++++++++++++++++++
linux-user/sparc64/sockbits.h | 1 +
3 files changed, 97 insertions(+), 42 deletions(-)
create mode 100644 linux-user/sparc/sockbits.h
create mode 100644 linux-user/sparc64/sockbits.h
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 1328906205..8eb62ea3f2 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,49 +1,9 @@
-#if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA)
+#if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA) || \
+ defined(TARGET_SPARC)
#include "sockbits.h"
-#else
-
-#if defined(TARGET_SPARC)
- /** sock_type - Socket types
- *
- * Please notice that for binary compat reasons SPARC has to
- * override the enum sock_type in include/linux/net.h, so
- * we define ARCH_HAS_SOCKET_TYPES here.
- *
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
- */
-
- #define ARCH_HAS_SOCKET_TYPES 1
-
- enum sock_type {
- TARGET_SOCK_STREAM = 1,
- TARGET_SOCK_DGRAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 020000000,
- TARGET_SOCK_NONBLOCK = 040000,
- };
-
- #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
- #define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
-
- #define TARGET_SO_PASSSEC 31
#else
#define TARGET_SO_PASSSEC 34
-#endif
/* For setsockopt(2) */
#define TARGET_SOL_SOCKET 1
diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h
new file mode 100644
index 0000000000..385061c8b0
--- /dev/null
+++ b/linux-user/sparc/sockbits.h
@@ -0,0 +1,94 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation, or (at your option) any
+ * later version. See the COPYING file in the top-level directory.
+ */
+
+#ifndef SPARC_SOCKBITS_H
+#define SPARC_SOCKBITS_H
+
+/** sock_type - Socket types
+ *
+ * Please notice that for binary compat reasons SPARC has to
+ * override the enum sock_type in include/linux/net.h, so
+ * we define ARCH_HAS_SOCKET_TYPES here.
+ *
+ * @SOCK_DGRAM - datagram (conn.less) socket
+ * @SOCK_STREAM - stream (connection) socket
+ * @SOCK_RAW - raw socket
+ * @SOCK_RDM - reliably-delivered message
+ * @SOCK_SEQPACKET - sequential packet socket
+ * @SOCK_DCCP - Datagram Congestion Control Protocol socket
+ * @SOCK_PACKET - linux specific way of getting packets at the dev level.
+ * For writing rarp and other similar things on the user
+ * level.
+ * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
+ * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
+ */
+
+#define ARCH_HAS_SOCKET_TYPES 1
+
+enum sock_type {
+ TARGET_SOCK_STREAM = 1,
+ TARGET_SOCK_DGRAM = 2,
+ TARGET_SOCK_RAW = 3,
+ TARGET_SOCK_RDM = 4,
+ TARGET_SOCK_SEQPACKET = 5,
+ TARGET_SOCK_DCCP = 6,
+ TARGET_SOCK_PACKET = 10,
+ TARGET_SOCK_CLOEXEC = 020000000,
+ TARGET_SOCK_NONBLOCK = 040000,
+};
+
+#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
+#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+
+#define TARGET_SO_PASSSEC 31
+
+/* For setsockopt(2) */
+#define TARGET_SOL_SOCKET 1
+
+#define TARGET_SO_DEBUG 1
+#define TARGET_SO_REUSEADDR 2
+#define TARGET_SO_TYPE 3
+#define TARGET_SO_ERROR 4
+#define TARGET_SO_DONTROUTE 5
+#define TARGET_SO_BROADCAST 6
+#define TARGET_SO_SNDBUF 7
+#define TARGET_SO_RCVBUF 8
+#define TARGET_SO_SNDBUFFORCE 32
+#define TARGET_SO_RCVBUFFORCE 33
+#define TARGET_SO_KEEPALIVE 9
+#define TARGET_SO_OOBINLINE 10
+#define TARGET_SO_NO_CHECK 11
+#define TARGET_SO_PRIORITY 12
+#define TARGET_SO_LINGER 13
+#define TARGET_SO_BSDCOMPAT 14
+/* To add :#define TARGET_SO_REUSEPORT 15 */
+#define TARGET_SO_PASSCRED 16
+#define TARGET_SO_PEERCRED 17
+#define TARGET_SO_RCVLOWAT 18
+#define TARGET_SO_SNDLOWAT 19
+#define TARGET_SO_RCVTIMEO 20
+#define TARGET_SO_SNDTIMEO 21
+
+/* Security levels - as per NRL IPv6 - don't actually do anything */
+#define TARGET_SO_SECURITY_AUTHENTICATION 22
+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
+
+#define TARGET_SO_BINDTODEVICE 25
+
+/* Socket filtering */
+#define TARGET_SO_ATTACH_FILTER 26
+#define TARGET_SO_DETACH_FILTER 27
+
+#define TARGET_SO_PEERNAME 28
+#define TARGET_SO_TIMESTAMP 29
+#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
+
+#define TARGET_SO_ACCEPTCONN 30
+
+#define TARGET_SO_PEERSEC 31
+#endif
diff --git a/linux-user/sparc64/sockbits.h b/linux-user/sparc64/sockbits.h
new file mode 100644
index 0000000000..658899e4d3
--- /dev/null
+++ b/linux-user/sparc64/sockbits.h
@@ -0,0 +1 @@
+#include "../sparc/sockbits.h"
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 4/8] linux-user: move socket.h generic definitions to generic/sockbits.h
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (2 preceding siblings ...)
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 3/8] linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 5/8] linux-user: move ppc socket.h definitions to ppc/sockbits.h Laurent Vivier
` (4 subsequent siblings)
8 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
and include the file from architectures without specific definitions
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
linux-user/aarch64/sockbits.h | 1 +
linux-user/arm/sockbits.h | 1 +
linux-user/cris/sockbits.h | 1 +
linux-user/generic/sockbits.h | 67 ++++++++++++++++++++++++++++++++++++++++
linux-user/i386/sockbits.h | 1 +
linux-user/m68k/sockbits.h | 1 +
linux-user/microblaze/sockbits.h | 1 +
linux-user/nios2/sockbits.h | 1 +
linux-user/openrisc/sockbits.h | 1 +
linux-user/ppc/sockbits.h | 1 +
linux-user/riscv/sockbits.h | 1 +
linux-user/s390x/sockbits.h | 1 +
linux-user/sh4/sockbits.h | 1 +
linux-user/socket.h | 61 ------------------------------------
linux-user/tilegx/sockbits.h | 1 +
linux-user/x86_64/sockbits.h | 1 +
linux-user/xtensa/sockbits.h | 1 +
17 files changed, 82 insertions(+), 61 deletions(-)
create mode 100644 linux-user/aarch64/sockbits.h
create mode 100644 linux-user/arm/sockbits.h
create mode 100644 linux-user/cris/sockbits.h
create mode 100644 linux-user/generic/sockbits.h
create mode 100644 linux-user/i386/sockbits.h
create mode 100644 linux-user/m68k/sockbits.h
create mode 100644 linux-user/microblaze/sockbits.h
create mode 100644 linux-user/nios2/sockbits.h
create mode 100644 linux-user/openrisc/sockbits.h
create mode 100644 linux-user/ppc/sockbits.h
create mode 100644 linux-user/riscv/sockbits.h
create mode 100644 linux-user/s390x/sockbits.h
create mode 100644 linux-user/sh4/sockbits.h
create mode 100644 linux-user/tilegx/sockbits.h
create mode 100644 linux-user/x86_64/sockbits.h
create mode 100644 linux-user/xtensa/sockbits.h
diff --git a/linux-user/aarch64/sockbits.h b/linux-user/aarch64/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/aarch64/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/arm/sockbits.h b/linux-user/arm/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/arm/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/cris/sockbits.h b/linux-user/cris/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/cris/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/generic/sockbits.h b/linux-user/generic/sockbits.h
new file mode 100644
index 0000000000..093faf0a48
--- /dev/null
+++ b/linux-user/generic/sockbits.h
@@ -0,0 +1,67 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation, or (at your option) any
+ * later version. See the COPYING file in the top-level directory.
+ */
+
+#ifndef GENERIC_SOCKBITS_H
+#define GENERIC_SOCKBITS_H
+
+#define TARGET_SO_PASSSEC 34
+
+/* For setsockopt(2) */
+#define TARGET_SOL_SOCKET 1
+
+#define TARGET_SO_DEBUG 1
+#define TARGET_SO_REUSEADDR 2
+#define TARGET_SO_TYPE 3
+#define TARGET_SO_ERROR 4
+#define TARGET_SO_DONTROUTE 5
+#define TARGET_SO_BROADCAST 6
+#define TARGET_SO_SNDBUF 7
+#define TARGET_SO_RCVBUF 8
+#define TARGET_SO_SNDBUFFORCE 32
+#define TARGET_SO_RCVBUFFORCE 33
+#define TARGET_SO_KEEPALIVE 9
+#define TARGET_SO_OOBINLINE 10
+#define TARGET_SO_NO_CHECK 11
+#define TARGET_SO_PRIORITY 12
+#define TARGET_SO_LINGER 13
+#define TARGET_SO_BSDCOMPAT 14
+/* To add :#define TARGET_SO_REUSEPORT 15 */
+#if defined(TARGET_PPC)
+#define TARGET_SO_RCVLOWAT 16
+#define TARGET_SO_SNDLOWAT 17
+#define TARGET_SO_RCVTIMEO 18
+#define TARGET_SO_SNDTIMEO 19
+#define TARGET_SO_PASSCRED 20
+#define TARGET_SO_PEERCRED 21
+#else
+#define TARGET_SO_PASSCRED 16
+#define TARGET_SO_PEERCRED 17
+#define TARGET_SO_RCVLOWAT 18
+#define TARGET_SO_SNDLOWAT 19
+#define TARGET_SO_RCVTIMEO 20
+#define TARGET_SO_SNDTIMEO 21
+#endif
+
+/* Security levels - as per NRL IPv6 - don't actually do anything */
+#define TARGET_SO_SECURITY_AUTHENTICATION 22
+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
+
+#define TARGET_SO_BINDTODEVICE 25
+
+/* Socket filtering */
+#define TARGET_SO_ATTACH_FILTER 26
+#define TARGET_SO_DETACH_FILTER 27
+
+#define TARGET_SO_PEERNAME 28
+#define TARGET_SO_TIMESTAMP 29
+#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
+
+#define TARGET_SO_ACCEPTCONN 30
+
+#define TARGET_SO_PEERSEC 31
+#endif
diff --git a/linux-user/i386/sockbits.h b/linux-user/i386/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/i386/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/m68k/sockbits.h b/linux-user/m68k/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/m68k/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/microblaze/sockbits.h b/linux-user/microblaze/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/microblaze/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/nios2/sockbits.h b/linux-user/nios2/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/nios2/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/openrisc/sockbits.h b/linux-user/openrisc/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/openrisc/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/ppc/sockbits.h b/linux-user/ppc/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/ppc/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/riscv/sockbits.h b/linux-user/riscv/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/riscv/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/s390x/sockbits.h b/linux-user/s390x/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/s390x/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/sh4/sockbits.h b/linux-user/sh4/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/sh4/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 8eb62ea3f2..135f438bdf 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,66 +1,5 @@
-#if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA) || \
- defined(TARGET_SPARC)
#include "sockbits.h"
-#else
- #define TARGET_SO_PASSSEC 34
-
- /* For setsockopt(2) */
- #define TARGET_SOL_SOCKET 1
-
- #define TARGET_SO_DEBUG 1
- #define TARGET_SO_REUSEADDR 2
- #define TARGET_SO_TYPE 3
- #define TARGET_SO_ERROR 4
- #define TARGET_SO_DONTROUTE 5
- #define TARGET_SO_BROADCAST 6
- #define TARGET_SO_SNDBUF 7
- #define TARGET_SO_RCVBUF 8
- #define TARGET_SO_SNDBUFFORCE 32
- #define TARGET_SO_RCVBUFFORCE 33
- #define TARGET_SO_KEEPALIVE 9
- #define TARGET_SO_OOBINLINE 10
- #define TARGET_SO_NO_CHECK 11
- #define TARGET_SO_PRIORITY 12
- #define TARGET_SO_LINGER 13
- #define TARGET_SO_BSDCOMPAT 14
- /* To add :#define TARGET_SO_REUSEPORT 15 */
-#if defined(TARGET_PPC)
- #define TARGET_SO_RCVLOWAT 16
- #define TARGET_SO_SNDLOWAT 17
- #define TARGET_SO_RCVTIMEO 18
- #define TARGET_SO_SNDTIMEO 19
- #define TARGET_SO_PASSCRED 20
- #define TARGET_SO_PEERCRED 21
-#else
- #define TARGET_SO_PASSCRED 16
- #define TARGET_SO_PEERCRED 17
- #define TARGET_SO_RCVLOWAT 18
- #define TARGET_SO_SNDLOWAT 19
- #define TARGET_SO_RCVTIMEO 20
- #define TARGET_SO_SNDTIMEO 21
-#endif
-
- /* Security levels - as per NRL IPv6 - don't actually do anything */
- #define TARGET_SO_SECURITY_AUTHENTICATION 22
- #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
- #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
-
- #define TARGET_SO_BINDTODEVICE 25
-
- /* Socket filtering */
- #define TARGET_SO_ATTACH_FILTER 26
- #define TARGET_SO_DETACH_FILTER 27
-
- #define TARGET_SO_PEERNAME 28
- #define TARGET_SO_TIMESTAMP 29
- #define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
-
- #define TARGET_SO_ACCEPTCONN 30
-
- #define TARGET_SO_PEERSEC 31
-
-#endif
#ifndef ARCH_HAS_SOCKET_TYPES
/** sock_type - Socket types - default values
diff --git a/linux-user/tilegx/sockbits.h b/linux-user/tilegx/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/tilegx/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/x86_64/sockbits.h b/linux-user/x86_64/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/x86_64/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
diff --git a/linux-user/xtensa/sockbits.h b/linux-user/xtensa/sockbits.h
new file mode 100644
index 0000000000..0e4c8f012d
--- /dev/null
+++ b/linux-user/xtensa/sockbits.h
@@ -0,0 +1 @@
+#include "../generic/sockbits.h"
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 5/8] linux-user: move ppc socket.h definitions to ppc/sockbits.h
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (3 preceding siblings ...)
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 4/8] linux-user: move socket.h generic definitions to generic/sockbits.h Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-21 9:05 ` Peter Maydell
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use Laurent Vivier
` (3 subsequent siblings)
8 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
Change conditional #ifdef part by #undef of the symbols
redefined for PPC relative to generic/socket.h
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/generic/sockbits.h | 9 ---------
linux-user/ppc/sockbits.h | 25 +++++++++++++++++++++++++
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/linux-user/generic/sockbits.h b/linux-user/generic/sockbits.h
index 093faf0a48..99505f1f85 100644
--- a/linux-user/generic/sockbits.h
+++ b/linux-user/generic/sockbits.h
@@ -30,21 +30,12 @@
#define TARGET_SO_LINGER 13
#define TARGET_SO_BSDCOMPAT 14
/* To add :#define TARGET_SO_REUSEPORT 15 */
-#if defined(TARGET_PPC)
-#define TARGET_SO_RCVLOWAT 16
-#define TARGET_SO_SNDLOWAT 17
-#define TARGET_SO_RCVTIMEO 18
-#define TARGET_SO_SNDTIMEO 19
-#define TARGET_SO_PASSCRED 20
-#define TARGET_SO_PEERCRED 21
-#else
#define TARGET_SO_PASSCRED 16
#define TARGET_SO_PEERCRED 17
#define TARGET_SO_RCVLOWAT 18
#define TARGET_SO_SNDLOWAT 19
#define TARGET_SO_RCVTIMEO 20
#define TARGET_SO_SNDTIMEO 21
-#endif
/* Security levels - as per NRL IPv6 - don't actually do anything */
#define TARGET_SO_SECURITY_AUTHENTICATION 22
diff --git a/linux-user/ppc/sockbits.h b/linux-user/ppc/sockbits.h
index 0e4c8f012d..ee453347a3 100644
--- a/linux-user/ppc/sockbits.h
+++ b/linux-user/ppc/sockbits.h
@@ -1 +1,26 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation, or (at your option) any
+ * later version. See the COPYING file in the top-level directory.
+ */
+
+#ifndef PPC_SOCKBITS_H
+#define PPC_SOCKBITS_H
+
#include "../generic/sockbits.h"
+
+#undef TARGET_SO_RCVLOWAT
+#define TARGET_SO_RCVLOWAT 16
+#undef TARGET_SO_SNDLOWAT
+#define TARGET_SO_SNDLOWAT 17
+#undef TARGET_SO_RCVTIMEO
+#define TARGET_SO_RCVTIMEO 18
+#undef TARGET_SO_SNDTIMEO
+#define TARGET_SO_SNDTIMEO 19
+#undef TARGET_SO_PASSCRED
+#define TARGET_SO_PASSCRED 20
+#undef TARGET_SO_PEERCRED
+#define TARGET_SO_PEERCRED 21
+
+#endif
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (4 preceding siblings ...)
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 5/8] linux-user: move ppc socket.h definitions to ppc/sockbits.h Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-21 9:19 ` Peter Maydell
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 7/8] linux-user: copy sparc/sockbits.h definitions from linux Laurent Vivier
` (2 subsequent siblings)
8 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/alpha/sockbits.h | 36 +++-----------------------
linux-user/hppa/sockbits.h | 33 +++---------------------
linux-user/mips/sockbits.h | 9 ++++---
linux-user/socket.h | 62 +++++++++++++++++++++++----------------------
linux-user/sparc/sockbits.h | 36 --------------------------
5 files changed, 44 insertions(+), 132 deletions(-)
diff --git a/linux-user/alpha/sockbits.h b/linux-user/alpha/sockbits.h
index 4db3e52b67..f5397dd875 100644
--- a/linux-user/alpha/sockbits.h
+++ b/linux-user/alpha/sockbits.h
@@ -75,39 +75,9 @@
/* Instruct lower device to use last 4-bytes of skb data as FCS */
#define TARGET_SO_NOFCS 43
-/** sock_type - Socket types
- *
- * Please notice that for binary compat reasons ALPHA has to
- * override the enum sock_type in include/linux/net.h, so
- * we define ARCH_HAS_SOCKET_TYPES here.
- *
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
+/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
+ * have to define SOCK_NONBLOCK to a different value here.
*/
+#define TARGET_SOCK_NONBLOCK 0x40000000
-#define ARCH_HAS_SOCKET_TYPES 1
-
-enum sock_type {
- TARGET_SOCK_STREAM = 1,
- TARGET_SOCK_DGRAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 010000000,
- TARGET_SOCK_NONBLOCK = 010000000000,
-};
-
-#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
#endif
diff --git a/linux-user/hppa/sockbits.h b/linux-user/hppa/sockbits.h
index 5044619e16..2641aea859 100644
--- a/linux-user/hppa/sockbits.h
+++ b/linux-user/hppa/sockbits.h
@@ -64,34 +64,7 @@
#define TARGET_SO_CNX_ADVICE 0x402E
-/** sock_type - Socket types - default values
- *
- *
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
+/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
+ * have to define SOCK_NONBLOCK to a different value here.
*/
-enum sock_type {
- TARGET_SOCK_STREAM = 1,
- TARGET_SOCK_DGRAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 010000000,
- TARGET_SOCK_NONBLOCK = 0x40000000,
-};
-
-#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
-
-#define ARCH_HAS_SOCKET_TYPES 1
+#define TARGET_SOCK_NONBLOCK 0x40000000
diff --git a/linux-user/mips/sockbits.h b/linux-user/mips/sockbits.h
index 3fe5ac88e7..370d13ed86 100644
--- a/linux-user/mips/sockbits.h
+++ b/linux-user/mips/sockbits.h
@@ -91,7 +91,7 @@
* @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
*/
-#define ARCH_HAS_SOCKET_TYPES 1
+#define TARGET_ARCH_HAS_SOCKET_TYPES 1
enum sock_type {
TARGET_SOCK_DGRAM = 1,
@@ -101,10 +101,13 @@ enum sock_type {
TARGET_SOCK_SEQPACKET = 5,
TARGET_SOCK_DCCP = 6,
TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 02000000,
- TARGET_SOCK_NONBLOCK = 0200,
};
#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+
+/* Flags for socket, socketpair, paccept */
+#define TARGET_SOCK_CLOEXEC TARGET_O_CLOEXEC
+#define TARGET_SOCK_NONBLOCK TARGET_O_NONBLOCK
+
#endif
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 135f438bdf..4c0b5c2dfa 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,35 +1,37 @@
-
#include "sockbits.h"
-#ifndef ARCH_HAS_SOCKET_TYPES
- /** sock_type - Socket types - default values
- *
- *
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
- */
- enum sock_type {
- TARGET_SOCK_STREAM = 1,
- TARGET_SOCK_DGRAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 02000000,
- TARGET_SOCK_NONBLOCK = 04000,
- };
+#ifndef TARGET_ARCH_HAS_SOCKET_TYPES
+/** sock_type - Socket types - default values
+ *
+ *
+ * @SOCK_STREAM - stream (connection) socket
+ * @SOCK_DGRAM - datagram (conn.less) socket
+ * @SOCK_RAW - raw socket
+ * @SOCK_RDM - reliably-delivered message
+ * @SOCK_SEQPACKET - sequential packet socket
+ * @SOCK_DCCP - Datagram Congestion Control Protocol socket
+ * @SOCK_PACKET - linux specific way of getting packets at the dev level.
+ * For writing rarp and other similar things on the user
+ * level.
+ * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
+ * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
+ */
+enum sock_type {
+ TARGET_SOCK_STREAM = 1,
+ TARGET_SOCK_DGRAM = 2,
+ TARGET_SOCK_RAW = 3,
+ TARGET_SOCK_RDM = 4,
+ TARGET_SOCK_SEQPACKET = 5,
+ TARGET_SOCK_DCCP = 6,
+ TARGET_SOCK_PACKET = 10,
+};
- #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
- #define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
+#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+/* Flags for socket, socketpair, accept4 */
+#define TARGET_SOCK_CLOEXEC TARGET_O_CLOEXEC
+#ifndef TARGET_SOCK_NONBLOCK
+#define TARGET_SOCK_NONBLOCK TARGET_O_NONBLOCK
#endif
+#endif /* TARGET_ARCH_HAS_SOCKET_TYPES */
diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h
index 385061c8b0..6434b07033 100644
--- a/linux-user/sparc/sockbits.h
+++ b/linux-user/sparc/sockbits.h
@@ -8,42 +8,6 @@
#ifndef SPARC_SOCKBITS_H
#define SPARC_SOCKBITS_H
-/** sock_type - Socket types
- *
- * Please notice that for binary compat reasons SPARC has to
- * override the enum sock_type in include/linux/net.h, so
- * we define ARCH_HAS_SOCKET_TYPES here.
- *
- * @SOCK_DGRAM - datagram (conn.less) socket
- * @SOCK_STREAM - stream (connection) socket
- * @SOCK_RAW - raw socket
- * @SOCK_RDM - reliably-delivered message
- * @SOCK_SEQPACKET - sequential packet socket
- * @SOCK_DCCP - Datagram Congestion Control Protocol socket
- * @SOCK_PACKET - linux specific way of getting packets at the dev level.
- * For writing rarp and other similar things on the user
- * level.
- * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
- * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
- */
-
-#define ARCH_HAS_SOCKET_TYPES 1
-
-enum sock_type {
- TARGET_SOCK_STREAM = 1,
- TARGET_SOCK_DGRAM = 2,
- TARGET_SOCK_RAW = 3,
- TARGET_SOCK_RDM = 4,
- TARGET_SOCK_SEQPACKET = 5,
- TARGET_SOCK_DCCP = 6,
- TARGET_SOCK_PACKET = 10,
- TARGET_SOCK_CLOEXEC = 020000000,
- TARGET_SOCK_NONBLOCK = 040000,
-};
-
-#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
-
#define TARGET_SO_PASSSEC 31
/* For setsockopt(2) */
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use Laurent Vivier
@ 2018-05-21 9:19 ` Peter Maydell
2018-05-24 15:29 ` Laurent Vivier
0 siblings, 1 reply; 15+ messages in thread
From: Peter Maydell @ 2018-05-21 9:19 UTC (permalink / raw)
To: Laurent Vivier
Cc: QEMU Developers, Mark Cave-Ayland, Yongbok Kim, Riku Voipio,
Richard Henderson, Philippe Mathieu-Daudé
On 19 May 2018 at 10:29, Laurent Vivier <laurent@vivier.eu> wrote:
> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
You could note in the commit message that this fixes our
incorrect definition of TARGET_SOCK_CLOEXEC for SPARC.
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> linux-user/alpha/sockbits.h | 36 +++-----------------------
> linux-user/hppa/sockbits.h | 33 +++---------------------
> linux-user/mips/sockbits.h | 9 ++++---
> linux-user/socket.h | 62 +++++++++++++++++++++++----------------------
> linux-user/sparc/sockbits.h | 36 --------------------------
> 5 files changed, 44 insertions(+), 132 deletions(-)
>
> diff --git a/linux-user/alpha/sockbits.h b/linux-user/alpha/sockbits.h
> index 4db3e52b67..f5397dd875 100644
> --- a/linux-user/alpha/sockbits.h
> +++ b/linux-user/alpha/sockbits.h
> @@ -75,39 +75,9 @@
> /* Instruct lower device to use last 4-bytes of skb data as FCS */
> #define TARGET_SO_NOFCS 43
>
> -/** sock_type - Socket types
> - *
> - * Please notice that for binary compat reasons ALPHA has to
> - * override the enum sock_type in include/linux/net.h, so
> - * we define ARCH_HAS_SOCKET_TYPES here.
> - *
> - * @SOCK_DGRAM - datagram (conn.less) socket
> - * @SOCK_STREAM - stream (connection) socket
> - * @SOCK_RAW - raw socket
> - * @SOCK_RDM - reliably-delivered message
> - * @SOCK_SEQPACKET - sequential packet socket
> - * @SOCK_DCCP - Datagram Congestion Control Protocol socket
> - * @SOCK_PACKET - linux specific way of getting packets at the dev level.
> - * For writing rarp and other similar things on the user
> - * level.
> - * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
> - * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
> +/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
> + * have to define SOCK_NONBLOCK to a different value here.
> */
> +#define TARGET_SOCK_NONBLOCK 0x40000000
This new value is different from the old value in the enum:
> -#define ARCH_HAS_SOCKET_TYPES 1
> -
> -enum sock_type {
> - TARGET_SOCK_STREAM = 1,
> - TARGET_SOCK_DGRAM = 2,
> - TARGET_SOCK_RAW = 3,
> - TARGET_SOCK_RDM = 4,
> - TARGET_SOCK_SEQPACKET = 5,
> - TARGET_SOCK_DCCP = 6,
> - TARGET_SOCK_PACKET = 10,
> - TARGET_SOCK_CLOEXEC = 010000000,
> - TARGET_SOCK_NONBLOCK = 010000000000,
...does it matter?
Neither are the same as Alpha's actual SOCK_NONBLOCK value,
which as far as I can tell is 4. The comment suggests that we're
deliberately avoiding a clash with the socket-type values, but
do you know how this works? I don't see how we can do the right
thing if we're not using the actual bit values the guest wants...
Otherwise
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use
2018-05-21 9:19 ` Peter Maydell
@ 2018-05-24 15:29 ` Laurent Vivier
2018-05-24 15:50 ` Laurent Vivier
0 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-24 15:29 UTC (permalink / raw)
To: Peter Maydell
Cc: Riku Voipio, Mark Cave-Ayland, Philippe Mathieu-Daudé,
QEMU Developers, Yongbok Kim, Richard Henderson
Le 21/05/2018 à 11:19, Peter Maydell a écrit :
> On 19 May 2018 at 10:29, Laurent Vivier <laurent@vivier.eu> wrote:
>> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
>
> You could note in the commit message that this fixes our
> incorrect definition of TARGET_SOCK_CLOEXEC for SPARC.
I agree
>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
>> ---
>> linux-user/alpha/sockbits.h | 36 +++-----------------------
>> linux-user/hppa/sockbits.h | 33 +++---------------------
>> linux-user/mips/sockbits.h | 9 ++++---
>> linux-user/socket.h | 62 +++++++++++++++++++++++----------------------
>> linux-user/sparc/sockbits.h | 36 --------------------------
>> 5 files changed, 44 insertions(+), 132 deletions(-)
>>
>> diff --git a/linux-user/alpha/sockbits.h b/linux-user/alpha/sockbits.h
>> index 4db3e52b67..f5397dd875 100644
>> --- a/linux-user/alpha/sockbits.h
>> +++ b/linux-user/alpha/sockbits.h
>> @@ -75,39 +75,9 @@
>> /* Instruct lower device to use last 4-bytes of skb data as FCS */
>> #define TARGET_SO_NOFCS 43
>>
>> -/** sock_type - Socket types
>> - *
>> - * Please notice that for binary compat reasons ALPHA has to
>> - * override the enum sock_type in include/linux/net.h, so
>> - * we define ARCH_HAS_SOCKET_TYPES here.
>> - *
>> - * @SOCK_DGRAM - datagram (conn.less) socket
>> - * @SOCK_STREAM - stream (connection) socket
>> - * @SOCK_RAW - raw socket
>> - * @SOCK_RDM - reliably-delivered message
>> - * @SOCK_SEQPACKET - sequential packet socket
>> - * @SOCK_DCCP - Datagram Congestion Control Protocol socket
>> - * @SOCK_PACKET - linux specific way of getting packets at the dev level.
>> - * For writing rarp and other similar things on the user
>> - * level.
>> - * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.
>> - * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.
>> +/* TARGET_O_NONBLOCK clashes with the bits used for socket types. Therefore we
>> + * have to define SOCK_NONBLOCK to a different value here.
>> */
>> +#define TARGET_SOCK_NONBLOCK 0x40000000
>
> This new value is different from the old value in the enum:
>
>> -#define ARCH_HAS_SOCKET_TYPES 1
>> -
>> -enum sock_type {
>> - TARGET_SOCK_STREAM = 1,
>> - TARGET_SOCK_DGRAM = 2,
>> - TARGET_SOCK_RAW = 3,
>> - TARGET_SOCK_RDM = 4,
>> - TARGET_SOCK_SEQPACKET = 5,
>> - TARGET_SOCK_DCCP = 6,
>> - TARGET_SOCK_PACKET = 10,
>> - TARGET_SOCK_CLOEXEC = 010000000,
>> - TARGET_SOCK_NONBLOCK = 010000000000,
>
> ...does it matter?
It's what we could think at first glance (I did), but
0x40000000 (hex) is
010000000000 (octal)
Does this answer to your comment?
Thanks,
Laurent
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use
2018-05-24 15:29 ` Laurent Vivier
@ 2018-05-24 15:50 ` Laurent Vivier
2018-05-24 16:46 ` Peter Maydell
0 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-24 15:50 UTC (permalink / raw)
To: Peter Maydell
Cc: Riku Voipio, Mark Cave-Ayland, Philippe Mathieu-Daudé,
QEMU Developers, Yongbok Kim, Richard Henderson
Le 24/05/2018 à 17:29, Laurent Vivier a écrit :
> Le 21/05/2018 à 11:19, Peter Maydell a écrit :
>> On 19 May 2018 at 10:29, Laurent Vivier <laurent@vivier.eu> wrote:
>>> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
>>
>> You could note in the commit message that this fixes our
>> incorrect definition of TARGET_SOCK_CLOEXEC for SPARC.
>
> I agree
In fact it doesn't change the value of TARGET_SOCK_CLOEXEC for SPARC,
because original value is 020000000 (0x400000) and the new value from
linux-user/socket.h is TARGET_O_CLOEXEC which is also 0x400000 for SPARC.
Thanks,
Laurent
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use
2018-05-24 15:50 ` Laurent Vivier
@ 2018-05-24 16:46 ` Peter Maydell
0 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2018-05-24 16:46 UTC (permalink / raw)
To: Laurent Vivier
Cc: Riku Voipio, Mark Cave-Ayland, Philippe Mathieu-Daudé,
QEMU Developers, Yongbok Kim, Richard Henderson
On 24 May 2018 at 16:50, Laurent Vivier <laurent@vivier.eu> wrote:
> Le 24/05/2018 à 17:29, Laurent Vivier a écrit :
>> Le 21/05/2018 à 11:19, Peter Maydell a écrit :
>>> On 19 May 2018 at 10:29, Laurent Vivier <laurent@vivier.eu> wrote:
>>>> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
>>>
>>> You could note in the commit message that this fixes our
>>> incorrect definition of TARGET_SOCK_CLOEXEC for SPARC.
>>
>> I agree
>
> In fact it doesn't change the value of TARGET_SOCK_CLOEXEC for SPARC,
> because original value is 020000000 (0x400000) and the new value from
> linux-user/socket.h is TARGET_O_CLOEXEC which is also 0x400000 for SPARC.
Argh, octal vs hex. Thanks for checking that.
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 7/8] linux-user: copy sparc/sockbits.h definitions from linux
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (5 preceding siblings ...)
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 8/8] linux-user: define TARGET_SO_REUSEPORT Laurent Vivier
2018-05-21 9:52 ` [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories no-reply
8 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
Values defined for sparc are not correct.
Copy the content of "arch/sparc/include/uapi/asm/socket.h"
to fix them.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
---
linux-user/sparc/sockbits.h | 131 +++++++++++++++++++++++++++++++-------------
1 file changed, 92 insertions(+), 39 deletions(-)
diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h
index 6434b07033..0a822e3e1f 100644
--- a/linux-user/sparc/sockbits.h
+++ b/linux-user/sparc/sockbits.h
@@ -8,51 +8,104 @@
#ifndef SPARC_SOCKBITS_H
#define SPARC_SOCKBITS_H
-#define TARGET_SO_PASSSEC 31
-
/* For setsockopt(2) */
-#define TARGET_SOL_SOCKET 1
-
-#define TARGET_SO_DEBUG 1
-#define TARGET_SO_REUSEADDR 2
-#define TARGET_SO_TYPE 3
-#define TARGET_SO_ERROR 4
-#define TARGET_SO_DONTROUTE 5
-#define TARGET_SO_BROADCAST 6
-#define TARGET_SO_SNDBUF 7
-#define TARGET_SO_RCVBUF 8
-#define TARGET_SO_SNDBUFFORCE 32
-#define TARGET_SO_RCVBUFFORCE 33
-#define TARGET_SO_KEEPALIVE 9
-#define TARGET_SO_OOBINLINE 10
-#define TARGET_SO_NO_CHECK 11
-#define TARGET_SO_PRIORITY 12
-#define TARGET_SO_LINGER 13
-#define TARGET_SO_BSDCOMPAT 14
-/* To add :#define TARGET_SO_REUSEPORT 15 */
-#define TARGET_SO_PASSCRED 16
-#define TARGET_SO_PEERCRED 17
-#define TARGET_SO_RCVLOWAT 18
-#define TARGET_SO_SNDLOWAT 19
-#define TARGET_SO_RCVTIMEO 20
-#define TARGET_SO_SNDTIMEO 21
+#define TARGET_SOL_SOCKET 0xffff
-/* Security levels - as per NRL IPv6 - don't actually do anything */
-#define TARGET_SO_SECURITY_AUTHENTICATION 22
-#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23
-#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24
+#define TARGET_SO_DEBUG 0x0001
+#define TARGET_SO_PASSCRED 0x0002
+#define TARGET_SO_REUSEADDR 0x0004
+#define TARGET_SO_KEEPALIVE 0x0008
+#define TARGET_SO_DONTROUTE 0x0010
+#define TARGET_SO_BROADCAST 0x0020
+#define TARGET_SO_PEERCRED 0x0040
+#define TARGET_SO_LINGER 0x0080
+#define TARGET_SO_OOBINLINE 0x0100
+#define TARGET_SO_REUSEPORT 0x0200
+#define TARGET_SO_BSDCOMPAT 0x0400
+#define TARGET_SO_RCVLOWAT 0x0800
+#define TARGET_SO_SNDLOWAT 0x1000
+#define TARGET_SO_RCVTIMEO 0x2000
+#define TARGET_SO_SNDTIMEO 0x4000
+#define TARGET_SO_ACCEPTCONN 0x8000
+
+#define TARGET_SO_SNDBUF 0x1001
+#define TARGET_SO_RCVBUF 0x1002
+#define TARGET_SO_SNDBUFFORCE 0x100a
+#define TARGET_SO_RCVBUFFORCE 0x100b
+#define TARGET_SO_ERROR 0x1007
+#define TARGET_SO_TYPE 0x1008
+#define TARGET_SO_PROTOCOL 0x1028
+#define TARGET_SO_DOMAIN 0x1029
+
+/* Linux specific, keep the same. */
+#define TARGET_SO_NO_CHECK 0x000b
+#define TARGET_SO_PRIORITY 0x000c
-#define TARGET_SO_BINDTODEVICE 25
+#define TARGET_SO_BINDTODEVICE 0x000d
-/* Socket filtering */
-#define TARGET_SO_ATTACH_FILTER 26
-#define TARGET_SO_DETACH_FILTER 27
+#define TARGET_SO_ATTACH_FILTER 0x001a
+#define TARGET_SO_DETACH_FILTER 0x001b
+#define TARGET_SO_GET_FILTER TARGET_SO_ATTACH_FILTER
-#define TARGET_SO_PEERNAME 28
-#define TARGET_SO_TIMESTAMP 29
+#define TARGET_SO_PEERNAME 0x001c
+#define TARGET_SO_TIMESTAMP 0x001d
#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
-#define TARGET_SO_ACCEPTCONN 30
+#define TARGET_SO_PEERSEC 0x001e
+#define TARGET_SO_PASSSEC 0x001f
+#define TARGET_SO_TIMESTAMPNS 0x0021
+#define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
+
+#define TARGET_SO_MARK 0x0022
+
+#define TARGET_SO_TIMESTAMPING 0x0023
+#define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING
+
+#define TARGET_SO_RXQ_OVFL 0x0024
+
+#define TARGET_SO_WIFI_STATUS 0x0025
+#define TARGET_SCM_WIFI_STATUS TARGET_SO_WIFI_STATUS
+#define TARGET_SO_PEEK_OFF 0x0026
+
+/* Instruct lower device to use last 4-bytes of skb data as FCS */
+#define TARGET_SO_NOFCS 0x0027
+
+#define TARGET_SO_LOCK_FILTER 0x0028
+
+#define TARGET_SO_SELECT_ERR_QUEUE 0x0029
+
+#define TARGET_SO_BUSY_POLL 0x0030
+
+#define TARGET_SO_MAX_PACING_RATE 0x0031
-#define TARGET_SO_PEERSEC 31
+#define TARGET_SO_BPF_EXTENSIONS 0x0032
+
+#define TARGET_SO_INCOMING_CPU 0x0033
+
+#define TARGET_SO_ATTACH_BPF 0x0034
+#define TARGET_SO_DETACH_BPF TARGET_SO_DETACH_FILTER
+
+#define TARGET_SO_ATTACH_REUSEPORT_CBPF 0x0035
+#define TARGET_SO_ATTACH_REUSEPORT_EBPF 0x0036
+
+#define TARGET_SO_CNX_ADVICE 0x0037
+
+#define TARGET_SCM_TIMESTAMPING_OPT_STATS 0x0038
+
+#define TARGET_SO_MEMINFO 0x0039
+
+#define TARGET_SO_INCOMING_NAPI_ID 0x003a
+
+#define TARGET_SO_COOKIE 0x003b
+
+#define TARGET_SCM_TIMESTAMPING_PKTINFO 0x003c
+
+#define TARGET_SO_PEERGROUPS 0x003d
+
+#define TARGET_SO_ZEROCOPY 0x003e
+
+/* Security levels - as per NRL IPv6 - don't actually do anything */
+#define TARGET_SO_SECURITY_AUTHENTICATION 0x5001
+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 0x5004
#endif
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH v3 8/8] linux-user: define TARGET_SO_REUSEPORT
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (6 preceding siblings ...)
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 7/8] linux-user: copy sparc/sockbits.h definitions from linux Laurent Vivier
@ 2018-05-19 9:29 ` Laurent Vivier
2018-05-21 9:52 ` [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories no-reply
8 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-19 9:29 UTC (permalink / raw)
To: qemu-devel
Cc: Laurent Vivier, Peter Maydell, Mark Cave-Ayland, Yongbok Kim,
Riku Voipio, Richard Henderson, Philippe Mathieu-Daudé
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
linux-user/alpha/sockbits.h | 2 +-
linux-user/generic/sockbits.h | 2 +-
linux-user/mips/sockbits.h | 3 ---
3 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/linux-user/alpha/sockbits.h b/linux-user/alpha/sockbits.h
index f5397dd875..d54dc98c09 100644
--- a/linux-user/alpha/sockbits.h
+++ b/linux-user/alpha/sockbits.h
@@ -18,7 +18,7 @@
#define TARGET_SO_BROADCAST 0x0020
#define TARGET_SO_LINGER 0x0080
#define TARGET_SO_OOBINLINE 0x0100
-/* To add :#define TARGET_SO_REUSEPORT 0x0200 */
+#define TARGET_SO_REUSEPORT 0x0200
#define TARGET_SO_TYPE 0x1008
#define TARGET_SO_ERROR 0x1007
diff --git a/linux-user/generic/sockbits.h b/linux-user/generic/sockbits.h
index 99505f1f85..e44733c601 100644
--- a/linux-user/generic/sockbits.h
+++ b/linux-user/generic/sockbits.h
@@ -29,7 +29,7 @@
#define TARGET_SO_PRIORITY 12
#define TARGET_SO_LINGER 13
#define TARGET_SO_BSDCOMPAT 14
-/* To add :#define TARGET_SO_REUSEPORT 15 */
+#define TARGET_SO_REUSEPORT 15
#define TARGET_SO_PASSCRED 16
#define TARGET_SO_PEERCRED 17
#define TARGET_SO_RCVLOWAT 18
diff --git a/linux-user/mips/sockbits.h b/linux-user/mips/sockbits.h
index 370d13ed86..0f022cd598 100644
--- a/linux-user/mips/sockbits.h
+++ b/linux-user/mips/sockbits.h
@@ -28,10 +28,7 @@
*/
#define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band.
*/
-#if 0
-/* To add: Allow local address and port reuse. */
#define TARGET_SO_REUSEPORT 0x0200
-#endif
#define TARGET_SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */
#define TARGET_SO_STYLE SO_TYPE /* Synonym */
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories
2018-05-19 9:29 [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (7 preceding siblings ...)
2018-05-19 9:29 ` [Qemu-devel] [PATCH v3 8/8] linux-user: define TARGET_SO_REUSEPORT Laurent Vivier
@ 2018-05-21 9:52 ` no-reply
8 siblings, 0 replies; 15+ messages in thread
From: no-reply @ 2018-05-21 9:52 UTC (permalink / raw)
To: laurent
Cc: famz, qemu-devel, peter.maydell, riku.voipio, mark.cave-ayland,
f4bug, yongbok.kim, rth
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180519092956.15134-1-laurent@vivier.eu
Subject: [Qemu-devel] [PATCH v3 0/8] linux-user: move socket.h definitions to CPU directories
=== TEST SCRIPT BEGIN ===
#!/bin/bash
BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
failed=1
echo
fi
n=$((n+1))
done
exit $failed
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
From https://github.com/patchew-project/qemu
* [new tag] patchew/20180519092956.15134-1-laurent@vivier.eu -> patchew/20180519092956.15134-1-laurent@vivier.eu
Switched to a new branch 'test'
4302e15b3c linux-user: define TARGET_SO_REUSEPORT
79f9d462e0 linux-user: copy sparc/sockbits.h definitions from linux
4d4d80f6dd linux-user: update ARCH_HAS_SOCKET_TYPES use
f90eb19225 linux-user: move ppc socket.h definitions to ppc/sockbits.h
a159233782 linux-user: move socket.h generic definitions to generic/sockbits.h
7bda50c2b9 linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h
1e5e7d107e linux-user: move alpha socket.h definitions to alpha/sockbits.h
9675bdc0c5 linux-user: move mips socket.h definitions to mips/sockbits.h
=== OUTPUT BEGIN ===
Checking PATCH 1/8: linux-user: move mips socket.h definitions to mips/sockbits.h...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#17:
new file mode 100644
ERROR: if this code is redundant consider removing it
#52: FILE: linux-user/mips/sockbits.h:31:
+#if 0
total: 1 errors, 1 warnings, 227 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 2/8: linux-user: move alpha socket.h definitions to alpha/sockbits.h...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#18:
new file mode 100644
total: 0 errors, 1 warnings, 224 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 3/8: linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#74:
new file mode 100644
total: 0 errors, 1 warnings, 146 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 4/8: linux-user: move socket.h generic definitions to generic/sockbits.h...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#14:
new file mode 100644
total: 0 errors, 1 warnings, 148 lines checked
Your patch has style problems, please review. If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
Checking PATCH 5/8: linux-user: move ppc socket.h definitions to ppc/sockbits.h...
Checking PATCH 6/8: linux-user: update ARCH_HAS_SOCKET_TYPES use...
Checking PATCH 7/8: linux-user: copy sparc/sockbits.h definitions from linux...
Checking PATCH 8/8: linux-user: define TARGET_SO_REUSEPORT...
=== OUTPUT END ===
Test command exited with code: 1
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
^ permalink raw reply [flat|nested] 15+ messages in thread