From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756534AbcHVTYC (ORCPT ); Mon, 22 Aug 2016 15:24:02 -0400 Received: from mail.kapsi.fi ([217.30.184.167]:47597 "EHLO mail.kapsi.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755088AbcHVTYA (ORCPT ); Mon, 22 Aug 2016 15:24:00 -0400 From: Mikko Rapeli To: linux-kernel@vger.kernel.org Cc: Mikko Rapeli , Ralf Baechle , "David S. Miller" , Nicolas Dichtel , linux-hams@vger.kernel.org Subject: [PATCH v05 68/72] uapi ax25.h: glibc netax25/ax25.h header file compatibility fixes Date: Mon, 22 Aug 2016 20:33:25 +0200 Message-Id: <1471890809-4383-69-git-send-email-mikko.rapeli@iki.fi> X-Mailer: git-send-email 2.8.1 In-Reply-To: <1471890809-4383-1-git-send-email-mikko.rapeli@iki.fi> References: <1471890809-4383-1-git-send-email-mikko.rapeli@iki.fi> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 2a02:8070:d18f:5c00:bc6b:5a80:6b8d:855c X-SA-Exim-Mail-From: mikko.rapeli@iki.fi X-SA-Exim-Scanned: No (on mail.kapsi.fi); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Fixes these userspace compile error when glibc netax25/ax25.h is included before linux/ax25.h: linux/ax25.h:28:0: warning: "SIOCAX25GETUID" redefined linux/ax25.h:38:0: warning: "SIOCAX25GETINFO" redefined linux/ax25.h:47:3: error: conflicting types for ‘ax25_address’ linux/ax25.h:49:8: error: redefinition of ‘struct sockaddr_ax25’ linux/ax25.h:58:8: error: redefinition of ‘struct full_sockaddr_ax25’ linux/ax25.h:63:8: error: redefinition of ‘struct ax25_routes_struct’ linux/ax25.h:70:8: error: redefinition of ‘struct ax25_route_opt_struct’ linux/ax25.h:77:8: error: redefinition of ‘struct ax25_ctl_struct’ linux/ax25.h:98:8: error: redefinition of ‘struct ax25_info_struct’ linux/ax25.h:111:8: error: redefinition of ‘struct ax25_fwd_struct’ Signed-off-by: Mikko Rapeli --- include/uapi/linux/ax25.h | 22 +++++++++++++++++++++ include/uapi/linux/libc-compat.h | 41 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 63 insertions(+) diff --git a/include/uapi/linux/ax25.h b/include/uapi/linux/ax25.h index 74c89a4..e296c8a 100644 --- a/include/uapi/linux/ax25.h +++ b/include/uapi/linux/ax25.h @@ -6,6 +6,7 @@ #ifndef AX25_KERNEL_H #define AX25_KERNEL_H +#include #include #define AX25_MTU 256 @@ -25,6 +26,7 @@ #define AX25_KILL 99 +#if __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD #define SIOCAX25GETUID (SIOCPROTOPRIVATE+0) #define SIOCAX25ADDUID (SIOCPROTOPRIVATE+1) #define SIOCAX25DELUID (SIOCPROTOPRIVATE+2) @@ -34,46 +36,61 @@ #define SIOCAX25GETINFOOLD (SIOCPROTOPRIVATE+9) #define SIOCAX25ADDFWD (SIOCPROTOPRIVATE+10) #define SIOCAX25DELFWD (SIOCPROTOPRIVATE+11) +#endif /* __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD */ #define SIOCAX25DEVCTL (SIOCPROTOPRIVATE+12) +/* glibc uses SIOCPROTOPRIVATE+9 for SIOCAX25GETINFO */ +#if __UAPI_DEF_SIOCAX25GETINFO #define SIOCAX25GETINFO (SIOCPROTOPRIVATE+13) +#endif /* __UAPI_DEF_SIOCAX25GETINFO */ #define AX25_SET_RT_IPMODE 2 #define AX25_NOUID_DEFAULT 0 #define AX25_NOUID_BLOCK 1 +#if __UAPI_DEF_AX25_ADDRESS typedef struct { char ax25_call[7]; /* 6 call + SSID (shifted ascii!) */ } ax25_address; +#endif /* __UAPI_DEF_AX25_ADDRESS */ +#if __UAPI_DEF_SOCKADDR_AX25 struct sockaddr_ax25 { __kernel_sa_family_t sax25_family; ax25_address sax25_call; int sax25_ndigis; /* Digipeater ax25_address sets follow */ }; +#endif /* __UAPI_DEF_SOCKADDR_AX25 */ #define sax25_uid sax25_ndigis +#if __UAPI_DEF_FULL_SOCKADDR_AX25 struct full_sockaddr_ax25 { struct sockaddr_ax25 fsa_ax25; ax25_address fsa_digipeater[AX25_MAX_DIGIS]; }; +#endif /* __UAPI_DEF_FULL_SOCKADDR_AX25 */ +#if __UAPI_DEF_AX25_ROUTES_STRUCT struct ax25_routes_struct { ax25_address port_addr; ax25_address dest_addr; unsigned char digi_count; ax25_address digi_addr[AX25_MAX_DIGIS]; }; +#endif /* __UAPI_DEF_AX25_ROUTES_STRUCT */ +#if __UAPI_DEF_AX25_ROUTES_OPT_STRUCT struct ax25_route_opt_struct { ax25_address port_addr; ax25_address dest_addr; int cmd; int arg; }; +#endif /* __UAPI_DEF_AX25_ROUTES_OPT_STRUCT */ +#if __UAPI_DEF_AX25_CTL_STRUCT struct ax25_ctl_struct { ax25_address port_addr; ax25_address source_addr; @@ -83,6 +100,7 @@ struct ax25_ctl_struct { unsigned char digi_count; ax25_address digi_addr[AX25_MAX_DIGIS]; }; +#endif /* __UAPI_DEF_AX25_CTL_STRUCT */ /* this will go away. Please do not export to user land */ struct ax25_info_struct_deprecated { @@ -95,6 +113,7 @@ struct ax25_info_struct_deprecated { unsigned int rcv_q, snd_q; }; +#if __UAPI_DEF_AX25_INFO_STRUCT struct ax25_info_struct { unsigned int n2, n2count; unsigned int t1, t1timer; @@ -107,10 +126,13 @@ struct ax25_info_struct { unsigned int paclen; unsigned int window; }; +#endif /* __UAPI_DEF_AX25_INFO_STRUCT */ +#if __UAPI_DEF_AX25_FWD_STRUCT struct ax25_fwd_struct { ax25_address port_from; ax25_address port_to; }; +#endif /* __UAPI_DEF_AX25_FWD_STRUCT */ #endif diff --git a/include/uapi/linux/libc-compat.h b/include/uapi/linux/libc-compat.h index f793b09..01bb521 100644 --- a/include/uapi/linux/libc-compat.h +++ b/include/uapi/linux/libc-compat.h @@ -100,6 +100,35 @@ #endif /* _NET_IF_H */ +/* Coordinate with glibc netax25/ax25.h header. */ +#if defined(_NETAX25_AX25_H) + +#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 0 +#define __UAPI_DEF_SIOCAX25GETINFO 0 +#define __UAPI_DEF_AX25_ADDRESS 0 +#define __UAPI_DEF_SOCKADDR_AX25 0 +#define __UAPI_DEF_FULL_SOCKADDR_AX25 0 +#define __UAPI_DEF_AX25_ROUTES_STRUCT 0 +#define __UAPI_DEF_AX25_ROUTES_OPT_STRUCT 0 +#define __UAPI_DEF_AX25_CTL_STRUCT 0 +#define __UAPI_DEF_AX25_INFO_STRUCT 0 +#define __UAPI_DEF_AX25_FWD_STRUCT 0 + +#else /* defined(_NETAX25_AX25_H) */ + +#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 1 +#define __UAPI_DEF_SIOCAX25GETINFO 1 +#define __UAPI_DEF_AX25_ADDRESS 1 +#define __UAPI_DEF_SOCKADDR_AX25 1 +#define __UAPI_DEF_FULL_SOCKADDR_AX25 1 +#define __UAPI_DEF_AX25_ROUTES_STRUCT 1 +#define __UAPI_DEF_AX25_ROUTES_OPT_STRUCT 1 +#define __UAPI_DEF_AX25_CTL_STRUCT 1 +#define __UAPI_DEF_AX25_INFO_STRUCT 1 +#define __UAPI_DEF_AX25_FWD_STRUCT 1 + +#endif /* defined(_NETAX25_AX25_H) */ + /* Coordinate with glibc netinet/in.h header. */ #if defined(_NETINET_IN_H) @@ -204,6 +233,18 @@ #define __UAPI_DEF_F_DUPFD_CLOEXEC 1 #define __UAPI_DEF_O_ACCMODE_RDONLY_WRONLY_RDWR 1 +/* Definitions for ax25.h */ +#define __UAPI_DEF_SIOCAX25GETUID_TO_SIOCAX25DELFWD 1 +#define __UAPI_DEF_SIOCAX25GETINFO 1 +#define __UAPI_DEF_AX25_ADDRESS 1 +#define __UAPI_DEF_SOCKADDR_AX25 1 +#define __UAPI_DEF_FULL_SOCKADDR_AX25 1 +#define __UAPI_DEF_AX25_ROUTES_STRUCT 1 +#define __UAPI_DEF_AX25_ROUTES_OPT_STRUCT 1 +#define __UAPI_DEF_AX25_CTL_STRUCT 1 +#define __UAPI_DEF_AX25_INFO_STRUCT 1 +#define __UAPI_DEF_AX25_FWD_STRUCT 1 + /* Definitions for if.h */ #define __UAPI_DEF_IF_IFCONF 1 #define __UAPI_DEF_IF_IFMAP 1 -- 2.8.1