{"id":817525,"url":"http://patchwork.ozlabs.org/api/patches/817525/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170922140237.10869-3-carenas@gmail.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170922140237.10869-3-carenas@gmail.com>","list_archive_url":null,"date":"2017-09-22T14:02:33","name":"[RFC,2/6] linux-user: refactor socket.h for alpha","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"e83c5429579d44b1aadae8f1ff95f5e0a017e078","submitter":{"id":72390,"url":"http://patchwork.ozlabs.org/api/people/72390/?format=json","name":"Carlo Arenas","email":"carenas@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170922140237.10869-3-carenas@gmail.com/mbox/","series":[{"id":4635,"url":"http://patchwork.ozlabs.org/api/series/4635/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=4635","date":"2017-09-22T14:02:31","name":"linux-user: refactor socket.h into architecture specific sockbits","version":1,"mbox":"http://patchwork.ozlabs.org/series/4635/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/817525/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/817525/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"fvBm34BF\"; dkim-atps=neutral"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xzFZh0yHMz9t16\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 23 Sep 2017 00:03:54 +1000 (AEST)","from localhost ([::1]:59076 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1dvOYa-0006un-4D\n\tfor incoming@patchwork.ozlabs.org; Fri, 22 Sep 2017 10:03:52 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:53740)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <carenas@gmail.com>) id 1dvOXq-0006uF-Sy\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 10:03:13 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <carenas@gmail.com>) id 1dvOXo-0001Lz-Gr\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 10:03:06 -0400","from mail-pf0-x241.google.com ([2607:f8b0:400e:c00::241]:38472)\n\tby eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)\n\t(Exim 4.71) (envelope-from <carenas@gmail.com>) id 1dvOXo-0001LX-9m\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 10:03:04 -0400","by mail-pf0-x241.google.com with SMTP id a7so497467pfj.5\n\tfor <qemu-devel@nongnu.org>; Fri, 22 Sep 2017 07:03:04 -0700 (PDT)","from localhost.localdomain (c-73-189-82-67.hsd1.ca.comcast.net.\n\t[73.189.82.67]) by smtp.gmail.com with ESMTPSA id\n\td124sm6428901pfc.42.2017.09.22.07.03.01\n\t(version=TLS1 cipher=AES128-SHA bits=128/128);\n\tFri, 22 Sep 2017 07:03:02 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references\n\t:mime-version:content-transfer-encoding;\n\tbh=lMCNEZAGXmisQl5GGgjAX2AK+RwgWvNAGRFaiHyPHJM=;\n\tb=fvBm34BFpnmzaJMWPbmKNzwQFZ8BJKLq23eqaMb8+BJ2lzFjULmfaQmkh8/ADN2D3z\n\t+CCweD3dKKSwbkFYE2yoq4l9CK53pri2nSX8MNrt/p6ABDc74uENpw4/gYOrT8Tq1FBw\n\t49HXQnkZcBlSM1HX1hDYcLcfaeC7j8JFaDK4N1VByx5N+fU+RBVABu/2YuP1qVUuCFI1\n\tJSyzLhtrqGdOjiMo3804TiuODHJ0TdjzoDb2moJUYxlu5S5j47zRxOdJ2c8NkyxTuQaq\n\tybzGHRecX8XvwyiOieKjnOnO/NvkfJ4dIhfvUzyujB/rPcywixnYhxrWouTU6Fx584fh\n\to3aQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-transfer-encoding;\n\tbh=lMCNEZAGXmisQl5GGgjAX2AK+RwgWvNAGRFaiHyPHJM=;\n\tb=rOLtRdrnwvp7/4ildVJglWjrTahediqVVoYCfXUUdt1zeMhoLofMltBN+AeQrjPS2E\n\tJi2U9MW8MZTXNebWpdYjTZdcNUNZbv3PxSX6xzzGUEvuG3HXECPYneBoEB6HN++WwaPL\n\t7Qat8eM6BHb4ujgfA/7MRUexpLFytKf9m4EI3GGq5Z9oDJjU3v+nO/eQrdf84FgSXHzp\n\t1ADSXCc+SUF3WLixV7tCjdWAjM2dO8F4aLTnTpfDVyvntqnAmdfE1w+630PipdX4FvlC\n\tegnYd/1hEa82AowLh8ztw6sWv3k/LJ3exgqHmuxaBeJkXJF95eCah5zf2FJYkJ9GIn7t\n\tJZcw==","X-Gm-Message-State":"AHPjjUgDWKX0TvgeH9/cmRcMdZXMlaojLg3n95SMraBG1Px5j8cEGlh6\n\tJ63wSQti8KJ0qbSbj4pHWLo0OvFz","X-Google-Smtp-Source":"AOwi7QALFAUDWnVbhRyHQTVxzbfJa9gjdyYcvcdb+bttquuz/x557iRv6vEChBrx1m09BBUPPutfGQ==","X-Received":"by 10.98.166.72 with SMTP id t69mr5145874pfe.263.1506088983075; \n\tFri, 22 Sep 2017 07:03:03 -0700 (PDT)","From":"=?utf-8?q?Carlo_Marcelo_Arenas_Bel=C3=B3n?= <carenas@gmail.com>","To":"qemu-devel@nongnu.org","Date":"Fri, 22 Sep 2017 07:02:33 -0700","Message-Id":"<20170922140237.10869-3-carenas@gmail.com>","X-Mailer":"git-send-email 2.14.1","In-Reply-To":"<20170922140237.10869-1-carenas@gmail.com>","References":"<20170922140237.10869-1-carenas@gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-detected-operating-system":"by eggs.gnu.org: Genre and OS details not\n\trecognized.","X-Received-From":"2607:f8b0:400e:c00::241","Subject":"[Qemu-devel] [RFC 2/6] linux-user: refactor socket.h for alpha","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"=?utf-8?q?Carlo_Marcelo_Arenas_Bel=C3=B3n?= <carenas@gmail.com>,\n\triku.voipio@iki.fi, laurent@vivier.eu, rth@twiddle.net","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"based on fresh bits from linux 4.14 and therefore enabling SO_REUSEPORT\nas a side effect\n\nSigned-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>\n---\n linux-user/alpha/sockbits.h | 104 ++++++++++++++++++++++++++++++++++++++++++++\n linux-user/socket.h         | 104 +-------------------------------------------\n 2 files changed, 105 insertions(+), 103 deletions(-)\n create mode 100644 linux-user/alpha/sockbits.h","diff":"diff --git a/linux-user/alpha/sockbits.h b/linux-user/alpha/sockbits.h\nnew file mode 100644\nindex 0000000000..768579a1f7\n--- /dev/null\n+++ b/linux-user/alpha/sockbits.h\n@@ -0,0 +1,104 @@\n+#define TARGET_SOL_SOCKET                       0xffff\n+\n+#define TARGET_SO_DEBUG                         0x0001\n+#define TARGET_SO_REUSEADDR                     0x0004\n+#define TARGET_SO_KEEPALIVE                     0x0008\n+#define TARGET_SO_DONTROUTE                     0x0010\n+#define TARGET_SO_BROADCAST                     0x0020\n+#define TARGET_SO_LINGER                        0x0080\n+#define TARGET_SO_OOBINLINE                     0x0100\n+#define TARGET_SO_REUSEPORT                     0x0200\n+#define TARGET_SO_TYPE                          0x1008\n+#define TARGET_SO_ERROR                         0x1007\n+#define TARGET_SO_SNDBUF                        0x1001\n+#define TARGET_SO_RCVBUF                        0x1002\n+#define TARGET_SO_SNDBUFFORCE                   0x100a\n+#define TARGET_SO_RCVBUFFORCE                   0x100b\n+#define TARGET_SO_RCVLOWAT                      0x1010\n+#define TARGET_SO_SNDLOWAT                      0x1011\n+#define TARGET_SO_RCVTIMEO                      0x1012\n+#define TARGET_SO_SNDTIMEO                      0x1013\n+#define TARGET_SO_ACCEPTCONN                    0x1014\n+#define TARGET_SO_PROTOCOL                      0x1028\n+#define TARGET_SO_DOMAIN                        0x1029\n+#define TARGET_SO_NO_CHECK                      11\n+#define TARGET_SO_PRIORITY                      12\n+#define TARGET_SO_BSDCOMPAT                     14\n+#define TARGET_SO_PASSCRED                      17\n+#define TARGET_SO_PEERCRED                      18\n+#define TARGET_SO_BINDTODEVICE                  25\n+#define TARGET_SO_ATTACH_FILTER                 26\n+#define TARGET_SO_DETACH_FILTER                 27\n+#define TARGET_SO_GET_FILTER                    TARGET_SO_ATTACH_FILTER\n+#define TARGET_SO_PEERNAME                      28\n+#define TARGET_SO_TIMESTAMP                     29\n+#define TARGET_SCM_TIMESTAMP                    TARGET_SO_TIMESTAMP\n+#define TARGET_SO_PEERSEC                       30\n+#define TARGET_SO_PASSSEC                       34\n+#define TARGET_SO_TIMESTAMPNS                   35\n+#define TARGET_SCM_TIMESTAMPNS                  TARGET_SO_TIMESTAMPNS\n+#define TARGET_SO_SECURITY_AUTHENTICATION       19\n+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 20\n+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK   21\n+#define TARGET_SO_MARK                          36\n+#define TARGET_SO_TIMESTAMPING                  37\n+#define TARGET_SCM_TIMESTAMPING                 TARGET_SO_TIMESTAMPING\n+#define TARGET_SO_RXQ_OVFL                      40\n+#define TARGET_SO_WIFI_STATUS                   41\n+#define TARGET_SCM_WIFI_STATUS                  TARGET_SO_WIFI_STATUS\n+#define TARGET_SO_PEEK_OFF                      42\n+#define TARGET_SO_NOFCS                         43\n+#define TARGET_SO_LOCK_FILTER                   44\n+#define TARGET_SO_SELECT_ERR_QUEUE              45\n+#define TARGET_SO_BUSY_POLL                     46\n+#define TARGET_SO_MAX_PACING_RATE               47\n+#define TARGET_SO_BPF_EXTENSIONS                48\n+#define TARGET_SO_INCOMING_CPU                  49\n+#define TARGET_SO_ATTACH_BPF                    50\n+#define TARGET_SO_DETACH_BPF                    TARGET_SO_DETACH_FILTER\n+#define TARGET_SO_ATTACH_REUSEPORT_CBPF         51\n+#define TARGET_SO_ATTACH_REUSEPORT_EBPF         52\n+#define TARGET_SO_CNX_ADVICE                    53\n+#define TARGET_SCM_TIMESTAMPING_OPT_STATS       54\n+#define TARGET_SO_MEMINFO                       55\n+#define TARGET_SO_INCOMING_NAPI_ID              56\n+#define TARGET_SO_COOKIE                        57\n+#define TARGET_SCM_TIMESTAMPING_PKTINFO         58\n+#define TARGET_SO_PEERGROUPS                    59\n+#define TARGET_SO_ZEROCOPY                      60\n+\n+/** sock_type - Socket types\n+ *\n+ * Please notice that for binary compat reasons ALPHA has to\n+ * override the enum sock_type in include/linux/net.h, so\n+ * we define ARCH_HAS_SOCKET_TYPES here.\n+ *\n+ * @SOCK_STREAM - stream (connection) socket\n+ * @SOCK_DGRAM - datagram (conn.less) socket\n+ * @SOCK_RAW - raw socket\n+ * @SOCK_RDM - reliably-delivered message\n+ * @SOCK_SEQPACKET - sequential packet socket\n+ * @SOCK_DCCP - Datagram Congestion Control Protocol socket\n+ * @SOCK_PACKET - linux specific way of getting packets at the dev level.\n+ *                For writing rarp and other similar things on the user\n+ *                level.\n+ * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.\n+ * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.\n+ */\n+\n+enum sock_type {\n+    TARGET_SOCK_STREAM      = 1,\n+    TARGET_SOCK_DGRAM       = 2,\n+    TARGET_SOCK_RAW         = 3,\n+    TARGET_SOCK_RDM         = 4,\n+    TARGET_SOCK_SEQPACKET   = 5,\n+    TARGET_SOCK_DCCP        = 6,\n+    TARGET_SOCK_PACKET      = 10,\n+    TARGET_SOCK_CLOEXEC     = 010000000,\n+    TARGET_SOCK_NONBLOCK    = 0x40000000,\n+};\n+\n+#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)\n+#define TARGET_SOCK_TYPE_MASK 0xf  /* Covers up to TARGET_SOCK_MAX - 1. */\n+\n+#define ARCH_HAS_SOCKET_TYPES 1\ndiff --git a/linux-user/socket.h b/linux-user/socket.h\nindex c7e6cb8ea1..115bdf2ddb 100644\n--- a/linux-user/socket.h\n+++ b/linux-user/socket.h\n@@ -102,109 +102,7 @@\n     #define TARGET_SOCK_TYPE_MASK    0xf  /* Covers up to TARGET_SOCK_MAX-1. */\n \n #elif defined(TARGET_ALPHA)\n-\n-    /* For setsockopt(2) */\n-    #define TARGET_SOL_SOCKET   0xffff\n-\n-    #define TARGET_SO_DEBUG 0x0001\n-    #define TARGET_SO_REUSEADDR 0x0004\n-    #define TARGET_SO_KEEPALIVE 0x0008\n-    #define TARGET_SO_DONTROUTE 0x0010\n-    #define TARGET_SO_BROADCAST 0x0020\n-    #define TARGET_SO_LINGER    0x0080\n-    #define TARGET_SO_OOBINLINE 0x0100\n-    /* To add :#define TARGET_SO_REUSEPORT 0x0200 */\n-\n-    #define TARGET_SO_TYPE      0x1008\n-    #define TARGET_SO_ERROR 0x1007\n-    #define TARGET_SO_SNDBUF    0x1001\n-    #define TARGET_SO_RCVBUF    0x1002\n-    #define TARGET_SO_SNDBUFFORCE   0x100a\n-    #define TARGET_SO_RCVBUFFORCE   0x100b\n-    #define TARGET_SO_RCVLOWAT  0x1010\n-    #define TARGET_SO_SNDLOWAT  0x1011\n-    #define TARGET_SO_RCVTIMEO  0x1012\n-    #define TARGET_SO_SNDTIMEO  0x1013\n-    #define TARGET_SO_ACCEPTCONN    0x1014\n-    #define TARGET_SO_PROTOCOL  0x1028\n-    #define TARGET_SO_DOMAIN    0x1029\n-\n-    /* linux-specific, might as well be the same as on i386 */\n-    #define TARGET_SO_NO_CHECK  11\n-    #define TARGET_SO_PRIORITY  12\n-    #define TARGET_SO_BSDCOMPAT 14\n-\n-    #define TARGET_SO_PASSCRED  17\n-    #define TARGET_SO_PEERCRED  18\n-    #define TARGET_SO_BINDTODEVICE 25\n-\n-    /* Socket filtering */\n-    #define TARGET_SO_ATTACH_FILTER        26\n-    #define TARGET_SO_DETACH_FILTER        27\n-\n-    #define TARGET_SO_PEERNAME      28\n-    #define TARGET_SO_TIMESTAMP     29\n-    #define TARGET_SCM_TIMESTAMP        TARGET_SO_TIMESTAMP\n-\n-    #define TARGET_SO_PEERSEC       30\n-    #define TARGET_SO_PASSSEC       34\n-    #define TARGET_SO_TIMESTAMPNS       35\n-    #define TARGET_SCM_TIMESTAMPNS      TARGET_SO_TIMESTAMPNS\n-\n-    /* Security levels - as per NRL IPv6 - don't actually do anything */\n-    #define TARGET_SO_SECURITY_AUTHENTICATION       19\n-    #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 20\n-    #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK       21\n-\n-    #define TARGET_SO_MARK          36\n-\n-    #define TARGET_SO_TIMESTAMPING      37\n-    #define TARGET_SCM_TIMESTAMPING TARGET_SO_TIMESTAMPING\n-\n-    #define TARGET_SO_RXQ_OVFL             40\n-\n-    #define TARGET_SO_WIFI_STATUS       41\n-    #define TARGET_SCM_WIFI_STATUS      TARGET_SO_WIFI_STATUS\n-    #define TARGET_SO_PEEK_OFF      42\n-\n-    /* Instruct lower device to use last 4-bytes of skb data as FCS */\n-    #define TARGET_SO_NOFCS     43\n-\n-    /** sock_type - Socket types\n-     *\n-     * Please notice that for binary compat reasons ALPHA has to\n-     * override the enum sock_type in include/linux/net.h, so\n-     * we define ARCH_HAS_SOCKET_TYPES here.\n-     *\n-     * @SOCK_DGRAM - datagram (conn.less) socket\n-     * @SOCK_STREAM - stream (connection) socket\n-     * @SOCK_RAW - raw socket\n-     * @SOCK_RDM - reliably-delivered message\n-     * @SOCK_SEQPACKET - sequential packet socket\n-     * @SOCK_DCCP - Datagram Congestion Control Protocol socket\n-     * @SOCK_PACKET - linux specific way of getting packets at the dev level.\n-     *                For writing rarp and other similar things on the user\n-     *                level.\n-     * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag.\n-     * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag.\n-     */\n-\n-    #define ARCH_HAS_SOCKET_TYPES          1\n-\n-    enum sock_type {\n-           TARGET_SOCK_STREAM      = 1,\n-           TARGET_SOCK_DGRAM       = 2,\n-           TARGET_SOCK_RAW         = 3,\n-           TARGET_SOCK_RDM         = 4,\n-           TARGET_SOCK_SEQPACKET   = 5,\n-           TARGET_SOCK_DCCP        = 6,\n-           TARGET_SOCK_PACKET      = 10,\n-           TARGET_SOCK_CLOEXEC     = 010000000,\n-           TARGET_SOCK_NONBLOCK    = 010000000000,\n-    };\n-\n-    #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)\n-    #define TARGET_SOCK_TYPE_MASK    0xf  /* Covers up to TARGET_SOCK_MAX-1. */\n+#include \"alpha/sockbits.h\"\n #elif defined(TARGET_HPPA)\n #include \"hppa/sockbits.h\"\n #else\n","prefixes":["RFC","2/6"]}