• P
    net: Make linux/tcp.h C++ friendly (trivial) · 8876d6b5
    Paul Pluzhnikov 提交于
    I originally sent this patch to <trivial@kernel.org>, but Jiri Kosina did
    not feel that this is fully appropriate for the trivial tree.
    
    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
    ...
    
    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: NPaul Pluzhnikov <ppluzhnikov@google.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    8876d6b5
tcp.h 15.4 KB