{"id":817536,"url":"http://patchwork.ozlabs.org/api/patches/817536/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170922140237.10869-5-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-5-carenas@gmail.com>","list_archive_url":null,"date":"2017-09-22T14:02:35","name":"[RFC,4/6] linux-user: refactor socket.h for sparc","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"21b8f2f3abfc5ea2d0924d6b565d9b703d6a4c78","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-5-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/817536/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/817536/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=\"CiJ2USMM\"; 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 3xzFkX6BcKz9t3h\n\tfor <incoming@patchwork.ozlabs.org>;\n\tSat, 23 Sep 2017 00:10:44 +1000 (AEST)","from localhost ([::1]:59114 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 1dvOfC-0003jY-T3\n\tfor incoming@patchwork.ozlabs.org; Fri, 22 Sep 2017 10:10:42 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:53803)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <carenas@gmail.com>) id 1dvOXy-0006v0-Ce\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 10:03:20 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <carenas@gmail.com>) id 1dvOXs-0001O9-7y\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 10:03:14 -0400","from mail-pg0-x242.google.com ([2607:f8b0:400e:c05::242]:33578)\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 1dvOXs-0001NZ-0t\n\tfor qemu-devel@nongnu.org; Fri, 22 Sep 2017 10:03:08 -0400","by mail-pg0-x242.google.com with SMTP id i130so703727pgc.0\n\tfor <qemu-devel@nongnu.org>; Fri, 22 Sep 2017 07:03:07 -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.05\n\t(version=TLS1 cipher=AES128-SHA bits=128/128);\n\tFri, 22 Sep 2017 07:03:05 -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=1v/TZzFeo4r7OuGEBFT2EB7IzYI2Uck0JhIK4bTTzGk=;\n\tb=CiJ2USMMw32FxeinqrYSe6sC7paJEno8MnMUK4cEBRSl1GWw6SxDPFX1EqiJBfS5PG\n\tv999WqgSid/NlymcosdWgHv728S0QFzMuw/MPwOfWcAUNq1ll3/wdU2+ipCDI/kE66IT\n\t5dJfuZGyT05pjbcQL4v2TVkDNdcwEGjagwJPdBosX0XWILur2g5WGF8RcIaRkfCbr09S\n\tNfJVZBHT0DTr6l0s/qV68WjQUH1FhvJ3tFZ2FoCQyEEz4VZoshSlt36Xt6f1qpcGfuDp\n\tfkN1CbUHozjZ+9wLcanRlgSCsDNm5fDVH7XerM5j3dhksla4phc/np48KkZAIhqv6hU9\n\tXVQQ==","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=1v/TZzFeo4r7OuGEBFT2EB7IzYI2Uck0JhIK4bTTzGk=;\n\tb=X+Jj2ftM7jABkCvJWoj/kfnyY0DruX6FyXhw7wVCx787T7r3YqC03n+kqMvID4/C0A\n\tRM+YfPxFCoA0XPBHHKzBQoJ+lMOT6dBiViWJHJdwMGhZlKmjMwrgTFeAzIDCQN1CFrc8\n\t80Y++abLBOj+BGYdSEuRhhl8TgEdoqMjUtaOk4bHApSe8foEsdtt4OLAb/O6+bxq75ww\n\tqYCH3ZLK4Ap/qPS6d3XypmvCgAMX0Ch/V628fyyxeLpBlbs60on3JOvGcUxpK7vGvmPa\n\tZ8m0ZITD+wry06ufk1bek1+8CVEvZREO4YtmOfELR3VMmNpqdhRVkJAS9buKnOupKJQ3\n\t8qiQ==","X-Gm-Message-State":"AHPjjUiwo97kPIyjrXWKEEBivS6jDQMmrPJg4fEQw+pRkDTyuc6RP63T\n\tz56ZIFPhHOAbcouidJkdGqURqbyO","X-Google-Smtp-Source":"AOwi7QBQgGQkBtFAzPdpQ7LDeaYctWy30IrPlqaiRZULBHvRY4EMhLOPgKIZqX2FB/smZESLWww65g==","X-Received":"by 10.98.79.23 with SMTP id d23mr9494421pfb.105.1506088986712;\n\tFri, 22 Sep 2017 07:03:06 -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:35 -0700","Message-Id":"<20170922140237.10869-5-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:c05::242","Subject":"[Qemu-devel] [RFC 4/6] linux-user: refactor socket.h for sparc","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":"fixes SOL_SOCKET and SO_LINGER at least\n\nSigned-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>\n---\n linux-user/socket.h         |  46 ++------------------\n linux-user/sparc/sockbits.h | 104 ++++++++++++++++++++++++++++++++++++++++++++\n 2 files changed, 107 insertions(+), 43 deletions(-)\n create mode 100644 linux-user/sparc/sockbits.h","diff":"diff --git a/linux-user/socket.h b/linux-user/socket.h\nindex 036270a6e4..dfa692286b 100644\n--- a/linux-user/socket.h\n+++ b/linux-user/socket.h\n@@ -4,50 +4,10 @@\n #include \"alpha/sockbits.h\"\n #elif defined(TARGET_HPPA)\n #include \"hppa/sockbits.h\"\n+#elif defined(TARGET_SPARC)\n+#include \"sparc/sockbits.h\"\n #else\n \n-#if defined(TARGET_SPARC)\n-    /** sock_type - Socket types\n-     *\n-     * Please notice that for binary compat reasons SPARC 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     = 020000000,\n-           TARGET_SOCK_NONBLOCK    = 040000,\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 TARGET_SO_PASSSEC        31\n-#else\n-    #define TARGET_SO_PASSSEC        34\n-#endif\n-\n     /* For setsockopt(2) */\n     #define TARGET_SOL_SOCKET      1\n \n@@ -103,11 +63,11 @@\n \n     #define TARGET_SO_PEERSEC              31\n \n+    #define TARGET_SO_PASSSEC              34\n #endif\n \n #ifndef ARCH_HAS_SOCKET_TYPES\n     /** sock_type - Socket types - default values\n-     *\n      *\n      * @SOCK_STREAM - stream (connection) socket\n      * @SOCK_DGRAM - datagram (conn.less) socket\ndiff --git a/linux-user/sparc/sockbits.h b/linux-user/sparc/sockbits.h\nnew file mode 100644\nindex 0000000000..d51ae5f84f\n--- /dev/null\n+++ b/linux-user/sparc/sockbits.h\n@@ -0,0 +1,104 @@\n+#define TARGET_SOL_SOCKET                        0xffff\n+\n+#define TARGET_SO_DEBUG                          0x0001\n+#define TARGET_SO_PASSCRED                       0x0002\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_PEERCRED                       0x0040\n+#define TARGET_SO_LINGER                         0x0080\n+#define TARGET_SO_OOBINLINE                      0x0100\n+#define TARGET_SO_REUSEPORT                      0x0200\n+#define TARGET_SO_BSDCOMPAT                      0x0400\n+#define TARGET_SO_RCVLOWAT                       0x0800\n+#define TARGET_SO_SNDLOWAT                       0x1000\n+#define TARGET_SO_RCVTIMEO                       0x2000\n+#define TARGET_SO_SNDTIMEO                       0x4000\n+#define TARGET_SO_ACCEPTCONN                     0x8000\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_ERROR                          0x1007\n+#define TARGET_SO_TYPE                           0x1008\n+#define TARGET_SO_PROTOCOL                       0x1028\n+#define TARGET_SO_DOMAIN                         0x1029\n+#define TARGET_SO_NO_CHECK                       0x000b\n+#define TARGET_SO_PRIORITY                       0x000c\n+#define TARGET_SO_BINDTODEVICE                   0x000d\n+#define TARGET_SO_ATTACH_FILTER                  0x001a\n+#define TARGET_SO_DETACH_FILTER                  0x001b\n+#define TARGET_SO_GET_FILTER                     TARGET_SO_ATTACH_FILTER\n+#define TARGET_SO_PEERNAME                       0x001c\n+#define TARGET_SO_TIMESTAMP                      0x001d\n+#define TARGET_SCM_TIMESTAMP                     TARGET_SO_TIMESTAMP\n+#define TARGET_SO_PEERSEC                        0x001e\n+#define TARGET_SO_PASSSEC                        0x001f\n+#define TARGET_SO_TIMESTAMPNS                    0x0021\n+#define TARGET_SCM_TIMESTAMPNS                   TARGET_SO_TIMESTAMPNS\n+#define TARGET_SO_MARK                           0x0022\n+#define TARGET_SO_TIMESTAMPING                   0x0023\n+#define TARGET_SCM_TIMESTAMPING                  TARGET_SO_TIMESTAMPING\n+#define TARGET_SO_RXQ_OVFL                       0x0024\n+#define TARGET_SO_WIFI_STATUS                    0x0025\n+#define TARGET_SCM_WIFI_STATUS                   TARGET_SO_WIFI_STATUS\n+#define TARGET_SO_PEEK_OFF                       0x0026\n+#define TARGET_SO_NOFCS                          0x0027\n+#define TARGET_SO_LOCK_FILTER                    0x0028\n+#define TARGET_SO_SELECT_ERR_QUEUE               0x0029\n+#define TARGET_SO_BUSY_POLL                      0x0030\n+#define TARGET_SO_MAX_PACING_RATE                0x0031\n+#define TARGET_SO_BPF_EXTENSIONS                 0x0032\n+#define TARGET_SO_INCOMING_CPU                   0x0033\n+#define TARGET_SO_ATTACH_BPF                     0x0034\n+#define TARGET_SO_DETACH_BPF                     TARGET_SO_DETACH_FILTER\n+#define TARGET_SO_ATTACH_REUSEPORT_CBPF          0x0035\n+#define TARGET_SO_ATTACH_REUSEPORT_EBPF          0x0036\n+#define TARGET_SO_CNX_ADVICE                     0x0037\n+#define TARGET_SCM_TIMESTAMPING_OPT_STATS        0x0038\n+#define TARGET_SO_MEMINFO                        0x0039\n+#define TARGET_SO_INCOMING_NAPI_ID               0x003a\n+#define TARGET_SO_COOKIE                         0x003b\n+#define TARGET_SCM_TIMESTAMPING_PKTINFO          0x003c\n+#define TARGET_SO_PEERGROUPS                     0x003d\n+#define TARGET_SO_ZEROCOPY                       0x003e\n+#define TARGET_SO_SECURITY_AUTHENTICATION        0x5001\n+#define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT  0x5002\n+#define TARGET_SO_SECURITY_ENCRYPTION_NETWORK    0x5004\n+\n+/** sock_type - Socket types\n+ *\n+ * Please notice that for binary compat reasons SPARC 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     = 0x400000,\n+    TARGET_SOCK_NONBLOCK    = 0x4000,\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\n","prefixes":["RFC","4/6"]}