Patchwork [torvalds/linux.git] Make linux/tcp.h C++ friendly (trivial)

login
register
mail settings
Submitter Paul Pluzhnikov
Date March 7, 2012, 12:14 a.m.
Message ID <CALoOobMSXp4x_+En2gyHmpXcxq=sECQvMZN1LX_j3Yve7Ha6Aw@mail.gmail.com>
Download mbox | patch
Permalink /patch/145117/
State Rejected
Delegated to: David Miller
Headers show

Comments

Paul Pluzhnikov - March 7, 2012, 12:14 a.m.
Ping?

I am attaching the patch again so it doesn't get mangled by quoting
and is easier to apply.

Thanks,

On Fri, Feb 3, 2012 at 1:33 PM, Jiri Kosina <jkosina@suse.cz> wrote:
> On Thu, 29 Dec 2011, Paul Pluzhnikov wrote:
>
>> Greetings,
>>
>> Using linux/tcp.h from C++ results in:
>>
>> cat t.cc
>>
>> #include <linux/tcp.h>
>> int main() { }
>>
>> g++ -c t.cc
>>
>> In file included from t.cc:1:
>> /usr/include/linux/tcp.h:72: error: '__u32 __fswab32(__u32)' cannot appear in a constant-expression
>> /usr/include/linux/tcp.h:72: error: a function call cannot appear in a constant-expression
>> ...
>
> Paul,
>
> thanks for the patch. I'd however prefer this to go through netdev, not
> feeling like this is fully appropriate for trivial tree.
>
> Adding netdev to CC and keeping the changelog and patch below for
> reference.
>
>>
>> Attached trivial patch fixes this problem.
>>
>> Tested:
>> - the t.cc above compiles with g++ and
>> - the following program generates the same output before/after
>>   the patch:
>>
>> #include <linux/tcp.h>
>> #include <stdio.h>
>>
>> int main ()
>> {
>> #define P(a) printf("%s: %08x\n", #a, (int)a)
>>   P(TCP_FLAG_CWR);
>>   P(TCP_FLAG_ECE);
>>   P(TCP_FLAG_URG);
>>   P(TCP_FLAG_ACK);
>>   P(TCP_FLAG_PSH);
>>   P(TCP_FLAG_RST);
>>   P(TCP_FLAG_SYN);
>>   P(TCP_FLAG_FIN);
>>   P(TCP_RESERVED_BITS);
>>   P(TCP_DATA_OFFSET);
>> #undef P
>>   return 0;
>> }
>>
>> Signed-off-by: Paul Pluzhnikov <ppluzhnikov@google.com>
>>
>>
>> Thanks,
>>
>> P.S. Google has blanket copyright assignment to FSF.
>> --
>> Paul Pluzhnikov
>>
>>
>> diff --git a/include/linux/tcp.h b/include/linux/tcp.h
>> index 7f59ee9..63334f7 100644
>> --- a/include/linux/tcp.h
>> +++ b/include/linux/tcp.h
>> @@ -69,16 +69,16 @@ union tcp_word_hdr {
>>  #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3])
>>
>>  enum {
>> -     TCP_FLAG_CWR = __cpu_to_be32(0x00800000),
>> -     TCP_FLAG_ECE = __cpu_to_be32(0x00400000),
>> -     TCP_FLAG_URG = __cpu_to_be32(0x00200000),
>> -     TCP_FLAG_ACK = __cpu_to_be32(0x00100000),
>> -     TCP_FLAG_PSH = __cpu_to_be32(0x00080000),
>> -     TCP_FLAG_RST = __cpu_to_be32(0x00040000),
>> -     TCP_FLAG_SYN = __cpu_to_be32(0x00020000),
>> -     TCP_FLAG_FIN = __cpu_to_be32(0x00010000),
>> -     TCP_RESERVED_BITS = __cpu_to_be32(0x0F000000),
>> -     TCP_DATA_OFFSET = __cpu_to_be32(0xF0000000)
>> +     TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
>> +     TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
>> +     TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
>> +     TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000),
>> +     TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000),
>> +     TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
>> +     TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
>> +     TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
>> +     TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
>> +     TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
>>  };
>>
>>  /*
>>
>
> --
> Jiri Kosina
> SUSE Labs

Patch

diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index 7f59ee9..63334f7 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -69,16 +69,16 @@  union tcp_word_hdr {
 #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) 
 
 enum { 
-	TCP_FLAG_CWR = __cpu_to_be32(0x00800000),
-	TCP_FLAG_ECE = __cpu_to_be32(0x00400000),
-	TCP_FLAG_URG = __cpu_to_be32(0x00200000),
-	TCP_FLAG_ACK = __cpu_to_be32(0x00100000),
-	TCP_FLAG_PSH = __cpu_to_be32(0x00080000),
-	TCP_FLAG_RST = __cpu_to_be32(0x00040000),
-	TCP_FLAG_SYN = __cpu_to_be32(0x00020000),
-	TCP_FLAG_FIN = __cpu_to_be32(0x00010000),
-	TCP_RESERVED_BITS = __cpu_to_be32(0x0F000000),
-	TCP_DATA_OFFSET = __cpu_to_be32(0xF0000000)
+	TCP_FLAG_CWR = __constant_cpu_to_be32(0x00800000),
+	TCP_FLAG_ECE = __constant_cpu_to_be32(0x00400000),
+	TCP_FLAG_URG = __constant_cpu_to_be32(0x00200000),
+	TCP_FLAG_ACK = __constant_cpu_to_be32(0x00100000),
+	TCP_FLAG_PSH = __constant_cpu_to_be32(0x00080000),
+	TCP_FLAG_RST = __constant_cpu_to_be32(0x00040000),
+	TCP_FLAG_SYN = __constant_cpu_to_be32(0x00020000),
+	TCP_FLAG_FIN = __constant_cpu_to_be32(0x00010000),
+	TCP_RESERVED_BITS = __constant_cpu_to_be32(0x0F000000),
+	TCP_DATA_OFFSET = __constant_cpu_to_be32(0xF0000000)
 }; 
 
 /*