* [Qemu-devel] [PATCH 1/5] linux-user: move mips socket.h definitions to mips/sockbits.h
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
@ 2018-05-10 22:25 ` Laurent Vivier
2018-05-11 12:08 ` Peter Maydell
2018-05-10 22:25 ` [Qemu-devel] [PATCH 2/5] linux-user: move alpha socket.h definitions to alpha/sockbits.h Laurent Vivier
` (5 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-10 22:25 UTC (permalink / raw)
To: qemu-devel
Cc: Yongbok Kim, Mark Cave-Ayland, Riku Voipio, Richard Henderson,
Laurent Vivier
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
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
* Re: [Qemu-devel] [PATCH 1/5] linux-user: move mips socket.h definitions to mips/sockbits.h
2018-05-10 22:25 ` [Qemu-devel] [PATCH 1/5] linux-user: move mips socket.h definitions to mips/sockbits.h Laurent Vivier
@ 2018-05-11 12:08 ` Peter Maydell
0 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2018-05-11 12:08 UTC (permalink / raw)
To: Laurent Vivier
Cc: QEMU Developers, Mark Cave-Ayland, Riku Voipio, Yongbok Kim,
Richard Henderson
On 10 May 2018 at 23:25, Laurent Vivier <laurent@vivier.eu> wrote:
> No code change.
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> +#if 0
> +/* To add: Allow local address and port reuse. */
> +#define TARGET_SO_REUSEPORT 0x0200
> +#endif
As a follow-on cleanup, we might as well fix up the various
targets to actually define TARGET_SO_REUSEPORT rather than
defining it by #if'ing out the definition or commenting it out
or not defining it at all.
thanks
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH 2/5] linux-user: move alpha socket.h definitions to alpha/sockbits.h
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
2018-05-10 22:25 ` [Qemu-devel] [PATCH 1/5] linux-user: move mips socket.h definitions to mips/sockbits.h Laurent Vivier
@ 2018-05-10 22:25 ` Laurent Vivier
2018-05-11 12:09 ` Peter Maydell
2018-05-10 22:25 ` [Qemu-devel] [PATCH 3/5] linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h Laurent Vivier
` (4 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-10 22:25 UTC (permalink / raw)
To: qemu-devel
Cc: Yongbok Kim, Mark Cave-Ayland, Riku Voipio, Richard Henderson,
Laurent Vivier
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
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 3/5] linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
2018-05-10 22:25 ` [Qemu-devel] [PATCH 1/5] linux-user: move mips socket.h definitions to mips/sockbits.h Laurent Vivier
2018-05-10 22:25 ` [Qemu-devel] [PATCH 2/5] linux-user: move alpha socket.h definitions to alpha/sockbits.h Laurent Vivier
@ 2018-05-10 22:25 ` Laurent Vivier
2018-05-11 12:09 ` Peter Maydell
2018-05-10 22:26 ` [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h Laurent Vivier
` (3 subsequent siblings)
6 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-10 22:25 UTC (permalink / raw)
To: qemu-devel
Cc: Yongbok Kim, Mark Cave-Ayland, Riku Voipio, Richard Henderson,
Laurent Vivier
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
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 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (2 preceding siblings ...)
2018-05-10 22:25 ` [Qemu-devel] [PATCH 3/5] linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h Laurent Vivier
@ 2018-05-10 22:26 ` Laurent Vivier
2018-05-11 12:09 ` Peter Maydell
2018-05-11 12:12 ` Peter Maydell
2018-05-10 22:26 ` [Qemu-devel] [PATCH 5/5] linux-user: copy sparc/sockbits.h definitions from linux Laurent Vivier
` (2 subsequent siblings)
6 siblings, 2 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-10 22:26 UTC (permalink / raw)
To: qemu-devel
Cc: Yongbok Kim, Mark Cave-Ayland, Riku Voipio, Richard Henderson,
Laurent Vivier
No code change.
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/ppc/sockbits.h | 58 +++++++++++++++++++++++++++++++++++++++++++++++
linux-user/socket.h | 11 +--------
2 files changed, 59 insertions(+), 10 deletions(-)
create mode 100644 linux-user/ppc/sockbits.h
diff --git a/linux-user/ppc/sockbits.h b/linux-user/ppc/sockbits.h
new file mode 100644
index 0000000000..7561529395
--- /dev/null
+++ b/linux-user/ppc/sockbits.h
@@ -0,0 +1,58 @@
+/*
+ * 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
+
+#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 */
+#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
+
+/* 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/socket.h b/linux-user/socket.h
index 8eb62ea3f2..3eceb6534e 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,6 +1,6 @@
#if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA) || \
- defined(TARGET_SPARC)
+ defined(TARGET_SPARC) || defined(TARGET_PPC)
#include "sockbits.h"
#else
#define TARGET_SO_PASSSEC 34
@@ -25,21 +25,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
--
2.14.3
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h
2018-05-10 22:26 ` [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h Laurent Vivier
@ 2018-05-11 12:09 ` Peter Maydell
2018-05-11 12:12 ` Peter Maydell
1 sibling, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2018-05-11 12:09 UTC (permalink / raw)
To: Laurent Vivier
Cc: QEMU Developers, Mark Cave-Ayland, Riku Voipio, Yongbok Kim,
Richard Henderson
On 10 May 2018 at 23:26, Laurent Vivier <laurent@vivier.eu> wrote:
> No code change.
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h
2018-05-10 22:26 ` [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h Laurent Vivier
2018-05-11 12:09 ` Peter Maydell
@ 2018-05-11 12:12 ` Peter Maydell
2018-05-11 16:53 ` Laurent Vivier
1 sibling, 1 reply; 15+ messages in thread
From: Peter Maydell @ 2018-05-11 12:12 UTC (permalink / raw)
To: Laurent Vivier
Cc: QEMU Developers, Mark Cave-Ayland, Riku Voipio, Yongbok Kim,
Richard Henderson
On 10 May 2018 at 23:26, Laurent Vivier <laurent@vivier.eu> wrote:
> No code change.
>
> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
> ---
> --- a/linux-user/socket.h
> +++ b/linux-user/socket.h
> @@ -1,6 +1,6 @@
>
> #if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA) || \
> - defined(TARGET_SPARC)
> + defined(TARGET_SPARC) || defined(TARGET_PPC)
> #include "sockbits.h"
> #else
Follow-on cleanup: rather than having this long list of target ifdefs,
we should just have every target supply a sockbits.h (perhaps deferring
to a generic set of values the way that lots of archs use the asm-generic
versions).
thanks
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h
2018-05-11 12:12 ` Peter Maydell
@ 2018-05-11 16:53 ` Laurent Vivier
0 siblings, 0 replies; 15+ messages in thread
From: Laurent Vivier @ 2018-05-11 16:53 UTC (permalink / raw)
To: Peter Maydell
Cc: QEMU Developers, Mark Cave-Ayland, Riku Voipio, Yongbok Kim,
Richard Henderson
Le 11/05/2018 à 14:12, Peter Maydell a écrit :
> On 10 May 2018 at 23:26, Laurent Vivier <laurent@vivier.eu> wrote:
>> No code change.
>>
>> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
>> ---
>> --- a/linux-user/socket.h
>> +++ b/linux-user/socket.h
>> @@ -1,6 +1,6 @@
>>
>> #if defined(TARGET_MIPS) || defined(TARGET_HPPA) || defined(TARGET_ALPHA) || \
>> - defined(TARGET_SPARC)
>> + defined(TARGET_SPARC) || defined(TARGET_PPC)
>> #include "sockbits.h"
>> #else
>
> Follow-on cleanup: rather than having this long list of target ifdefs,
> we should just have every target supply a sockbits.h (perhaps deferring
> to a generic set of values the way that lots of archs use the asm-generic
> versions).
I agree.
Laurent
^ permalink raw reply [flat|nested] 15+ messages in thread
* [Qemu-devel] [PATCH 5/5] linux-user: copy sparc/sockbits.h definitions from linux
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (3 preceding siblings ...)
2018-05-10 22:26 ` [Qemu-devel] [PATCH 4/5] linux-user: move ppc socket.h definitions to ppc/sockbits.h Laurent Vivier
@ 2018-05-10 22:26 ` Laurent Vivier
2018-05-11 12:07 ` Peter Maydell
2018-05-10 22:34 ` [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories no-reply
2018-05-13 1:41 ` Philippe Mathieu-Daudé
6 siblings, 1 reply; 15+ messages in thread
From: Laurent Vivier @ 2018-05-10 22:26 UTC (permalink / raw)
To: qemu-devel
Cc: Yongbok Kim, Mark Cave-Ayland, Riku Voipio, Richard Henderson,
Laurent Vivier
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>
---
linux-user/sparc/sockbits.h | 161 ++++++++++++++++++++++++--------------------
1 file changed, 89 insertions(+), 72 deletions(-)
diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h
index 385061c8b0..0a822e3e1f 100644
--- a/linux-user/sparc/sockbits.h
+++ b/linux-user/sparc/sockbits.h
@@ -8,87 +8,104 @@
#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.
- */
+/* For setsockopt(2) */
+#define TARGET_SOL_SOCKET 0xffff
-#define ARCH_HAS_SOCKET_TYPES 1
+#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
-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_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
-#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-#define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */
+/* Linux specific, keep the same. */
+#define TARGET_SO_NO_CHECK 0x000b
+#define TARGET_SO_PRIORITY 0x000c
-#define TARGET_SO_PASSSEC 31
+#define TARGET_SO_BINDTODEVICE 0x000d
-/* 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_SO_ATTACH_FILTER 0x001a
+#define TARGET_SO_DETACH_FILTER 0x001b
+#define TARGET_SO_GET_FILTER TARGET_SO_ATTACH_FILTER
-/* 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_PEERNAME 0x001c
+#define TARGET_SO_TIMESTAMP 0x001d
+#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
-#define TARGET_SO_BINDTODEVICE 25
+#define TARGET_SO_PEERSEC 0x001e
+#define TARGET_SO_PASSSEC 0x001f
+#define TARGET_SO_TIMESTAMPNS 0x0021
+#define TARGET_SCM_TIMESTAMPNS TARGET_SO_TIMESTAMPNS
-/* Socket filtering */
-#define TARGET_SO_ATTACH_FILTER 26
-#define TARGET_SO_DETACH_FILTER 27
+#define TARGET_SO_MARK 0x0022
-#define TARGET_SO_PEERNAME 28
-#define TARGET_SO_TIMESTAMP 29
-#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
+#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_ACCEPTCONN 30
+#define TARGET_SO_BPF_EXTENSIONS 0x0032
-#define TARGET_SO_PEERSEC 31
+#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
* Re: [Qemu-devel] [PATCH 5/5] linux-user: copy sparc/sockbits.h definitions from linux
2018-05-10 22:26 ` [Qemu-devel] [PATCH 5/5] linux-user: copy sparc/sockbits.h definitions from linux Laurent Vivier
@ 2018-05-11 12:07 ` Peter Maydell
0 siblings, 0 replies; 15+ messages in thread
From: Peter Maydell @ 2018-05-11 12:07 UTC (permalink / raw)
To: Laurent Vivier
Cc: QEMU Developers, Mark Cave-Ayland, Riku Voipio, Yongbok Kim,
Richard Henderson
On 10 May 2018 at 23:26, Laurent Vivier <laurent@vivier.eu> wrote:
> 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>
> ---
> linux-user/sparc/sockbits.h | 161 ++++++++++++++++++++++++--------------------
> 1 file changed, 89 insertions(+), 72 deletions(-)
>
> diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h
> index 385061c8b0..0a822e3e1f 100644
> --- a/linux-user/sparc/sockbits.h
> +++ b/linux-user/sparc/sockbits.h
> @@ -8,87 +8,104 @@
> #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.
> - */
> +/* For setsockopt(2) */
> +#define TARGET_SOL_SOCKET 0xffff
>
> -#define ARCH_HAS_SOCKET_TYPES 1
This is what the kernel does, but for QEMU it will result
in the wrong value for TARGET_SOCK_CLOEXEC (though it does
fix the value for TARGET_SOCK_NONBLOCK).
This is because in QEMU the default values are hardcoded:
TARGET_SOCK_CLOEXEC = 02000000,
TARGET_SOCK_NONBLOCK = 04000,
whereas in linux's include/linux/net.h they are defined in terms
of other arch-specific constants:
#define SOCK_CLOEXEC O_CLOEXEC
#ifndef SOCK_NONBLOCK
#define SOCK_NONBLOCK O_NONBLOCK
#endif
Cleaning up QEMU so its ARCH_HAS_SOCKET_TYPES has the same
semantics as the kernel is probably the right way to go.
thanks
-- PMM
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (4 preceding siblings ...)
2018-05-10 22:26 ` [Qemu-devel] [PATCH 5/5] linux-user: copy sparc/sockbits.h definitions from linux Laurent Vivier
@ 2018-05-10 22:34 ` no-reply
2018-05-13 1:41 ` Philippe Mathieu-Daudé
6 siblings, 0 replies; 15+ messages in thread
From: no-reply @ 2018-05-10 22:34 UTC (permalink / raw)
To: laurent; +Cc: famz, qemu-devel, mark.cave-ayland, riku.voipio, yongbok.kim, rth
Hi,
This series seems to have some coding style problems. See output below for
more information:
Type: series
Message-id: 20180510222601.19944-1-laurent@vivier.eu
Subject: [Qemu-devel] [PATCH 0/5] 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/20180510222601.19944-1-laurent@vivier.eu -> patchew/20180510222601.19944-1-laurent@vivier.eu
Switched to a new branch 'test'
123e79ac3a linux-user: copy sparc/sockbits.h definitions from linux
8283def855 linux-user: move ppc socket.h definitions to ppc/sockbits.h
f3b56ab825 linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h
ce066c2209 linux-user: move alpha socket.h definitions to alpha/sockbits.h
97f6fbbacb linux-user: move mips socket.h definitions to mips/sockbits.h
=== OUTPUT BEGIN ===
Checking PATCH 1/5: linux-user: move mips socket.h definitions to mips/sockbits.h...
ERROR: if this code is redundant consider removing it
#47: FILE: linux-user/mips/sockbits.h:31:
+#if 0
total: 1 errors, 0 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/5: linux-user: move alpha socket.h definitions to alpha/sockbits.h...
Checking PATCH 3/5: linux-user: move sparc/sparc64 socket.h definitions to sparc/sockbits.h...
Checking PATCH 4/5: linux-user: move ppc socket.h definitions to ppc/sockbits.h...
Checking PATCH 5/5: linux-user: copy sparc/sockbits.h definitions from linux...
=== 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
* Re: [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories
2018-05-10 22:25 [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories Laurent Vivier
` (5 preceding siblings ...)
2018-05-10 22:34 ` [Qemu-devel] [PATCH 0/5] linux-user: move socket.h definitions to CPU directories no-reply
@ 2018-05-13 1:41 ` Philippe Mathieu-Daudé
6 siblings, 0 replies; 15+ messages in thread
From: Philippe Mathieu-Daudé @ 2018-05-13 1:41 UTC (permalink / raw)
To: Laurent Vivier, qemu-devel
Cc: Mark Cave-Ayland, Riku Voipio, Yongbok Kim, Richard Henderson
On 05/10/2018 07:25 PM, Laurent Vivier wrote:
> Splitting out socket.h definitions helps to read the code
> and to fix the bugs...
>
> No code change, except for the last one that ports
> definitions from linux for sparc as the values are not the
> correct ones.
>
> Laurent Vivier (5):
> linux-user: move mips socket.h definitions to mips/sockbits.h
> linux-user: move alpha socket.h definitions to alpha/sockbits.h
> linux-user: move sparc/sparc64 socket.h definitions to
> sparc/sockbits.h
> linux-user: move ppc socket.h definitions to ppc/sockbits.h
^ patches 1-4:
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> linux-user: copy sparc/sockbits.h definitions from linux
>
> linux-user/alpha/sockbits.h | 113 ++++++++++++++++++
> linux-user/mips/sockbits.h | 110 ++++++++++++++++++
> linux-user/mips64/sockbits.h | 1 +
> linux-user/ppc/sockbits.h | 58 ++++++++++
> linux-user/socket.h | 261 +-----------------------------------------
> linux-user/sparc/sockbits.h | 111 ++++++++++++++++++
> linux-user/sparc64/sockbits.h | 1 +
> 7 files changed, 397 insertions(+), 258 deletions(-)
> create mode 100644 linux-user/alpha/sockbits.h
> create mode 100644 linux-user/mips/sockbits.h
> create mode 100644 linux-user/mips64/sockbits.h
> create mode 100644 linux-user/ppc/sockbits.h
> create mode 100644 linux-user/sparc/sockbits.h
> create mode 100644 linux-user/sparc64/sockbits.h
>
^ permalink raw reply [flat|nested] 15+ messages in thread