From: "Carlo Marcelo Arenas Belón" <carenas@gmail.com>
To: qemu-devel@nongnu.org
Cc: laurent@vivier.eu, riku.voipio@iki.fi,
"Carlo Marcelo Arenas Belón" <carenas@gmail.com>
Subject: [Qemu-devel] [PATCH v2 4/6] linux-user: refactor socket.h for sparc
Date: Mon, 25 Sep 2017 16:19:22 -0700 [thread overview]
Message-ID: <20170925231924.31303-5-carenas@gmail.com> (raw)
In-Reply-To: <20170925231924.31303-4-carenas@gmail.com>
fixes SOL_SOCKET and SO_LINGER and all other values that didn't match the
default (SO_PASSSEC being the exception as it only changed base)
TARGET_SOCK_{NONBLOCK,CLOEXEC} updated to match the values for the header:
arch/sparc/include/uapi/asm/fcntl.h
Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/socket.h | 46 ++------------------
linux-user/sparc/sockbits.h | 104 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+), 43 deletions(-)
create mode 100644 linux-user/sparc/sockbits.h
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 036270a6e4..dfa692286b 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -4,50 +4,10 @@
#include "alpha/sockbits.h"
#elif defined(TARGET_HPPA)
#include "hppa/sockbits.h"
+#elif defined(TARGET_SPARC)
+#include "sparc/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
@@ -103,11 +63,11 @@
#define TARGET_SO_PEERSEC 31
+ #define TARGET_SO_PASSSEC 34
#endif
#ifndef ARCH_HAS_SOCKET_TYPES
/** sock_type - Socket types - default values
- *
*
* @SOCK_STREAM - stream (connection) socket
* @SOCK_DGRAM - datagram (conn.less) socket
diff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h
new file mode 100644
index 0000000000..d51ae5f84f
--- /dev/null
+++ b/linux-user/sparc/sockbits.h
@@ -0,0 +1,104 @@
+#define TARGET_SOL_SOCKET 0xffff
+
+#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
+#define TARGET_SO_NO_CHECK 0x000b
+#define TARGET_SO_PRIORITY 0x000c
+#define TARGET_SO_BINDTODEVICE 0x000d
+#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 0x001c
+#define TARGET_SO_TIMESTAMP 0x001d
+#define TARGET_SCM_TIMESTAMP TARGET_SO_TIMESTAMP
+#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
+#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_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
+#define TARGET_SO_SECURITY_AUTHENTICATION 0x5001
+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 0x5004
+
+/** 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_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 = 0x400000,
+ TARGET_SOCK_NONBLOCK = 0x4000,
+};
+
+#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
--
2.14.1
next prev parent reply other threads:[~2017-09-25 23:19 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-25 23:19 [Qemu-devel] linux-user: refactor socket.h into architecture specific sockbits Carlo Marcelo Arenas Belón
2017-09-25 23:19 ` [Qemu-devel] [PATCH v2 1/6] linux-user: update hppa sockbits Carlo Marcelo Arenas Belón
2017-09-25 23:19 ` [Qemu-devel] [PATCH v2 2/6] linux-user: refactor socket.h for alpha Carlo Marcelo Arenas Belón
2017-09-25 23:19 ` [Qemu-devel] [PATCH v2 3/6] linux-user: refactor socket.h for mips Carlo Marcelo Arenas Belón
2017-09-25 23:19 ` Carlo Marcelo Arenas Belón [this message]
2017-09-25 23:19 ` [Qemu-devel] [PATCH v2 5/6] linux-user: update default socket.h Carlo Marcelo Arenas Belón
2017-09-25 23:19 ` [Qemu-devel] [PATCH v2 6/6] linux_user: consolidate sock_type Carlo Marcelo Arenas Belón
2017-10-11 13:23 ` Laurent Vivier
2017-10-17 17:36 ` Carlo Arenas
2017-10-11 12:58 ` [Qemu-devel] [PATCH v2 5/6] linux-user: update default socket.h Laurent Vivier
2017-10-11 8:00 ` [Qemu-devel] [PATCH v2 1/6] linux-user: update hppa sockbits Laurent Vivier
2017-10-11 7:10 ` [Qemu-devel] linux-user: refactor socket.h into architecture specific sockbits Carlo Arenas
2017-10-16 12:32 ` Riku Voipio
2017-10-17 14:35 ` Carlo Arenas
2017-10-20 7:25 ` Laurent Vivier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170925231924.31303-5-carenas@gmail.com \
--to=carenas@gmail.com \
--cc=laurent@vivier.eu \
--cc=qemu-devel@nongnu.org \
--cc=riku.voipio@iki.fi \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.