qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


From: Laurent Vivier
Subject: Re: [Qemu-devel] [PATCH v3 6/8] linux-user: update ARCH_HAS_SOCKET_TYPES use
Date: Thu, 24 May 2018 17:29:35 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0

Le 21/05/2018 à 11:19, Peter Maydell a écrit :
> On 19 May 2018 at 10:29, Laurent Vivier <address@hidden> wrote:
>> to be like in the kernel and rename it TARGET_ARCH_HAS_SOCKET_TYPES
> 
> You could note in the commit message that this fixes our
> incorrect definition of TARGET_SOCK_CLOEXEC for SPARC.

I agree

>> Signed-off-by: Laurent Vivier <address@hidden>
>> ---
>>  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   0x40000000
> 
> This new value is different from the old value in the enum:
> 
>> -#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     = 010000000,
>> -       TARGET_SOCK_NONBLOCK    = 010000000000,
> 
> ...does it matter?

It's what we could think at first glance (I did), but

0x40000000   (hex) is
010000000000 (octal)

Does this answer to your comment?

Thanks,
Laurent




reply via email to

[Prev in Thread] Current Thread [Next in Thread]