diff mbox

[RFC,6/6] linux-user: update default socket.h

Message ID 20170922140237.10869-7-carenas@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Carlo Marcelo Arenas Belón Sept. 22, 2017, 2:02 p.m. UTC
* enable SO_REUSEPORT as a sideeffect and add SO_GET_FILTER alias
* make sure 64bit version for ppc is also supported

Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
 linux-user/socket.h | 61 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 file changed, 49 insertions(+), 12 deletions(-)

Comments

Laurent Vivier Sept. 22, 2017, 5:04 p.m. UTC | #1
Le 22/09/2017 à 16:02, Carlo Marcelo Arenas Belón a écrit :
> * enable SO_REUSEPORT as a sideeffect and add SO_GET_FILTER alias
> * make sure 64bit version for ppc is also supported

As previously TARGET_PPC64 is not needed.

And you should move powerpc bits to linux-user/ppc/sockbits.h

Thanks,
Laurent

> Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
> ---
>  linux-user/socket.h | 61 ++++++++++++++++++++++++++++++++++++++++++-----------
>  1 file changed, 49 insertions(+), 12 deletions(-)
> 
> diff --git a/linux-user/socket.h b/linux-user/socket.h
> index 6fd486c6b1..c37c10822a 100644
> --- a/linux-user/socket.h
> +++ b/linux-user/socket.h
> @@ -27,8 +27,8 @@
>      #define TARGET_SO_PRIORITY     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_REUSEPORT    15
> +#if defined(TARGET_PPC) || defined(TARGET_PPC64)
>      #define TARGET_SO_RCVLOWAT     16
>      #define TARGET_SO_SNDLOWAT     17
>      #define TARGET_SO_RCVTIMEO     18
> @@ -49,21 +49,58 @@
>      #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT        23
>      #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK          24
>  
> -    #define TARGET_SO_BINDTODEVICE 25
> +    #define TARGET_SO_BINDTODEVICE            25
>  
>      /* Socket filtering */
> -    #define TARGET_SO_ATTACH_FILTER        26
> -    #define TARGET_SO_DETACH_FILTER        27
> +    #define TARGET_SO_ATTACH_FILTER           26
> +    #define TARGET_SO_DETACH_FILTER           27
> +    #define TARGET_SO_GET_FILTER              TARGET_SO_ATTACH_FILTER
>  
> -    #define TARGET_SO_PEERNAME             28
> -    #define TARGET_SO_TIMESTAMP            29
> -    #define TARGET_SCM_TIMESTAMP           TARGET_SO_TIMESTAMP
> +    #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_ACCEPTCONN              30
>  
> -    #define TARGET_SO_PEERSEC              31
> +    #define TARGET_SO_PEERSEC                 31
> +    #define TARGET_SO_PASSSEC                 34
> +    #define TARGET_SO_TIMESTAMPNS             35
> +    #define TARGET_SCM_TIMESTAMPNS            TARGET_SO_TIMESTAMPNS
> +
> +    #define TARGET_SO_MARK                    36
> +
> +    #define TARGET_SO_TIMESTAMPING            37
> +    #define TARGET_SCM_TIMESTAMPING           TARGET_SO_TIMESTAMPING
> +
> +    #define TARGET_SO_PROTOCOL                38
> +    #define TARGET_SO_DOMAIN                  39
> +
> +    #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
> +
> +    #define TARGET_SO_NOFCS                   43
> +    #define TARGET_SO_LOCK_FILTER             44
> +    #define TARGET_SO_SELECT_ERR_QUEUE        45
> +    #define TARGET_SO_BUSY_POLL               46
> +    #define TARGET_SO_MAX_PACING_RATE         47
> +    #define TARGET_SO_BPF_EXTENSIONS          48
> +    #define TARGET_SO_INCOMING_CPU            49
> +    #define TARGET_SO_ATTACH_BPF              50
> +    #define TARGET_SO_DETACH_BPF              TARGET_SO_DETACH_FILTER
> +    #define TARGET_SO_ATTACH_REUSEPORT_CBPF   51
> +    #define TARGET_SO_ATTACH_REUSEPORT_EBPF   52
> +    #define TARGET_SO_CNX_ADVICE              53
> +    #define TARGET_SCM_TIMESTAMPING_OPT_STATS 54
> +    #define TARGET_SO_MEMINFO                 55
> +    #define TARGET_SO_INCOMING_NAPI_ID        56
> +    #define TARGET_SO_COOKIE                  57
> +    #define TARGET_SCM_TIMESTAMPING_PKTINFO   58
> +    #define TARGET_SO_PEERGROUPS              59
> +    #define TARGET_SO_ZEROCOPY                60
>  
> -    #define TARGET_SO_PASSSEC              34
>  #endif
>  
>  #ifndef ARCH_HAS_SOCKET_TYPES
> @@ -94,6 +131,6 @@
>      };
>  
>      #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
> -    #define TARGET_SOCK_TYPE_MASK    0xf  /* Covers up to TARGET_SOCK_MAX-1. */
> +    #define TARGET_SOCK_TYPE_MASK  0xf  /* Covers up to TARGET_SOCK_MAX - 1. */
>  
>  #endif
>
Carlo Marcelo Arenas Belón Sept. 25, 2017, 11:55 a.m. UTC | #2
On Fri, Sep 22, 2017 at 10:04 AM, Laurent Vivier <laurent@vivier.eu> wrote:

> And you should move powerpc bits to linux-user/ppc/sockbits.


PPC is IMHO a special case, since it is kept together with the generic
header in the linux kernel (except for a similar exception to those few
values that differ) as you can see in :


http://elixir.free-electrons.com/linux/latest/source/arch/powerpc/include/uapi/asm/socket.h

breaking it up into his own file will probably only make it more difficult
to maintain

Carlo
diff mbox

Patch

diff --git a/linux-user/socket.h b/linux-user/socket.h
index 6fd486c6b1..c37c10822a 100644
--- a/linux-user/socket.h
+++ b/linux-user/socket.h
@@ -27,8 +27,8 @@ 
     #define TARGET_SO_PRIORITY     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_REUSEPORT    15
+#if defined(TARGET_PPC) || defined(TARGET_PPC64)
     #define TARGET_SO_RCVLOWAT     16
     #define TARGET_SO_SNDLOWAT     17
     #define TARGET_SO_RCVTIMEO     18
@@ -49,21 +49,58 @@ 
     #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT        23
     #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK          24
 
-    #define TARGET_SO_BINDTODEVICE 25
+    #define TARGET_SO_BINDTODEVICE            25
 
     /* Socket filtering */
-    #define TARGET_SO_ATTACH_FILTER        26
-    #define TARGET_SO_DETACH_FILTER        27
+    #define TARGET_SO_ATTACH_FILTER           26
+    #define TARGET_SO_DETACH_FILTER           27
+    #define TARGET_SO_GET_FILTER              TARGET_SO_ATTACH_FILTER
 
-    #define TARGET_SO_PEERNAME             28
-    #define TARGET_SO_TIMESTAMP            29
-    #define TARGET_SCM_TIMESTAMP           TARGET_SO_TIMESTAMP
+    #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_ACCEPTCONN              30
 
-    #define TARGET_SO_PEERSEC              31
+    #define TARGET_SO_PEERSEC                 31
+    #define TARGET_SO_PASSSEC                 34
+    #define TARGET_SO_TIMESTAMPNS             35
+    #define TARGET_SCM_TIMESTAMPNS            TARGET_SO_TIMESTAMPNS
+
+    #define TARGET_SO_MARK                    36
+
+    #define TARGET_SO_TIMESTAMPING            37
+    #define TARGET_SCM_TIMESTAMPING           TARGET_SO_TIMESTAMPING
+
+    #define TARGET_SO_PROTOCOL                38
+    #define TARGET_SO_DOMAIN                  39
+
+    #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
+
+    #define TARGET_SO_NOFCS                   43
+    #define TARGET_SO_LOCK_FILTER             44
+    #define TARGET_SO_SELECT_ERR_QUEUE        45
+    #define TARGET_SO_BUSY_POLL               46
+    #define TARGET_SO_MAX_PACING_RATE         47
+    #define TARGET_SO_BPF_EXTENSIONS          48
+    #define TARGET_SO_INCOMING_CPU            49
+    #define TARGET_SO_ATTACH_BPF              50
+    #define TARGET_SO_DETACH_BPF              TARGET_SO_DETACH_FILTER
+    #define TARGET_SO_ATTACH_REUSEPORT_CBPF   51
+    #define TARGET_SO_ATTACH_REUSEPORT_EBPF   52
+    #define TARGET_SO_CNX_ADVICE              53
+    #define TARGET_SCM_TIMESTAMPING_OPT_STATS 54
+    #define TARGET_SO_MEMINFO                 55
+    #define TARGET_SO_INCOMING_NAPI_ID        56
+    #define TARGET_SO_COOKIE                  57
+    #define TARGET_SCM_TIMESTAMPING_PKTINFO   58
+    #define TARGET_SO_PEERGROUPS              59
+    #define TARGET_SO_ZEROCOPY                60
 
-    #define TARGET_SO_PASSSEC              34
 #endif
 
 #ifndef ARCH_HAS_SOCKET_TYPES
@@ -94,6 +131,6 @@ 
     };
 
     #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1)
-    #define TARGET_SOCK_TYPE_MASK    0xf  /* Covers up to TARGET_SOCK_MAX-1. */
+    #define TARGET_SOCK_TYPE_MASK  0xf  /* Covers up to TARGET_SOCK_MAX - 1. */
 
 #endif