Re: [Qemu-devel] [PATCH v2 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use

2018-05-17 Thread Laurent Vivier
Le 17/05/2018 à 17:45, Peter Maydell a écrit :
> On 16 May 2018 at 21:55, Laurent Vivier  wrote:
>> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
>>
>> Signed-off-by: Laurent Vivier 
> 
>> +/* Flags for socket, socketpair, accept4 */
>> +#define TARGET_SOCK_CLOEXECTARGET_O_CLOEXEC
>> +#ifndef TARGET_SOCK_NONBLOCK
>> +#define TARGET_SOCK_NONBLOCK   O_NONBLOCK
> 
> Shouldn't this be TARGET_O_NONBLOCK ?

Yes, thank you

Laurent



Re: [Qemu-devel] [PATCH v2 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use

2018-05-17 Thread Peter Maydell
On 16 May 2018 at 21:55, Laurent Vivier  wrote:
> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
>
> Signed-off-by: Laurent Vivier 

> +/* Flags for socket, socketpair, accept4 */
> +#define TARGET_SOCK_CLOEXECTARGET_O_CLOEXEC
> +#ifndef TARGET_SOCK_NONBLOCK
> +#define TARGET_SOCK_NONBLOCK   O_NONBLOCK

Shouldn't this be TARGET_O_NONBLOCK ?

>  #endif
> +#endif /* TARGET_ARCH_HAS_SOCKET_TYPES */

thanks
-- PMM



[Qemu-devel] [PATCH v2 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use

2018-05-16 Thread Laurent Vivier
to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES

Signed-off-by: Laurent Vivier 
---
 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   0x4000
 
-#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 = 01000,
-   TARGET_SOCK_NONBLOCK= 0100,
-};
-
-#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-#define TARGET_SOCK_TYPE_MASK0xf  /* 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 = 01000,
-   TARGET_SOCK_NONBLOCK= 0x4000,
-};
-
-#define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-#define TARGET_SOCK_TYPE_MASK0xf  /* Covers up to TARGET_SOCK_MAX-1. */
-
-#define ARCH_HAS_SOCKET_TYPES 1
+#define TARGET_SOCK_NONBLOCK   0x4000
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 = 0200,
-   TARGET_SOCK_NONBLOCK= 0200,
 };
 
 #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
 #define TARGET_SOCK_TYPE_MASK0xf  /* Covers up to TARGET_SOCK_MAX-1. */
+
+/* Flags for socket, socketpair, paccept */
+#define TARGET_SOCK_CLOEXECTARGET_O_CLOEXEC
+#define TARGET_SOCK_NONBLOCK   TARGET_O_NONBLOCK
+
 #endif
diff --git a/linux-user/socket.h b/linux-user/socket.h
index 135f438bdf..8de8681015 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -1,35 +1,37 @@
-
 #include "sockbits.h"
 
-#ifndef ARCH_HAS_SOCKET_TYPES
-/**