* [PATCH 01/12] headers, pppox: Add missing #include to <linux/if_pppox.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
@ 2011-08-08 13:16 ` Ben Hutchings
2011-08-08 13:17 ` [PATCH 02/12] headers, ax25: Add missing #include to <linux/netrom.h>, <linux/rose.h> Ben Hutchings
` (10 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:16 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Michal Ostrowski
<linux/if_ppox.h> uses ETH_ALEN, defined in <linux/if_ether.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/if_pppox.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
index 397921b..60e5558 100644
--- a/include/linux/if_pppox.h
+++ b/include/linux/if_pppox.h
@@ -20,8 +20,8 @@
#include <linux/types.h>
#include <asm/byteorder.h>
-#ifdef __KERNEL__
#include <linux/if_ether.h>
+#ifdef __KERNEL__
#include <linux/if.h>
#include <linux/netdevice.h>
#include <linux/ppp_channel.h>
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 02/12] headers, ax25: Add missing #include to <linux/netrom.h>, <linux/rose.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
2011-08-08 13:16 ` [PATCH 01/12] headers, pppox: Add missing #include to <linux/if_pppox.h> Ben Hutchings
@ 2011-08-08 13:17 ` Ben Hutchings
2011-08-08 14:07 ` Ralf Baechle
2011-08-08 13:17 ` [PATCH 03/12] headers, pppol2tp: Use __kernel_pid_t in <linux/pppol2tp.h> Ben Hutchings
` (9 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:17 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Ralf Baechle, linux-hams
These headers use the ax25_address type defined in <linux/ax25.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/netrom.h | 2 ++
include/linux/rose.h | 2 ++
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/include/linux/netrom.h b/include/linux/netrom.h
index 6939b32..af7313c 100644
--- a/include/linux/netrom.h
+++ b/include/linux/netrom.h
@@ -7,6 +7,8 @@
#ifndef NETROM_KERNEL_H
#define NETROM_KERNEL_H
+#include <linux/ax25.h>
+
#define NETROM_MTU 236
#define NETROM_T1 1
diff --git a/include/linux/rose.h b/include/linux/rose.h
index c7b4b18..e8289cd 100644
--- a/include/linux/rose.h
+++ b/include/linux/rose.h
@@ -7,6 +7,8 @@
#ifndef ROSE_KERNEL_H
#define ROSE_KERNEL_H
+#include <linux/ax25.h>
+
#define ROSE_MTU 251
#define ROSE_MAX_DIGIS 6
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* Re: [PATCH 02/12] headers, ax25: Add missing #include to <linux/netrom.h>, <linux/rose.h>
2011-08-08 13:17 ` [PATCH 02/12] headers, ax25: Add missing #include to <linux/netrom.h>, <linux/rose.h> Ben Hutchings
@ 2011-08-08 14:07 ` Ralf Baechle
0 siblings, 0 replies; 24+ messages in thread
From: Ralf Baechle @ 2011-08-08 14:07 UTC (permalink / raw)
To: Ben Hutchings; +Cc: David Miller, netdev, linux-hams
On Mon, Aug 08, 2011 at 02:17:20PM +0100, Ben Hutchings wrote:
> These headers use the ax25_address type defined in <linux/ax25.h>.
>
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Makes sense.
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Ralf
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 03/12] headers, pppol2tp: Use __kernel_pid_t in <linux/pppol2tp.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
2011-08-08 13:16 ` [PATCH 01/12] headers, pppox: Add missing #include to <linux/if_pppox.h> Ben Hutchings
2011-08-08 13:17 ` [PATCH 02/12] headers, ax25: Add missing #include to <linux/netrom.h>, <linux/rose.h> Ben Hutchings
@ 2011-08-08 13:17 ` Ben Hutchings
2011-08-08 13:18 ` [PATCH 04/12] headers, net: Use __kernel_sa_family_t in more definitions shared with userland Ben Hutchings
` (8 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:17 UTC (permalink / raw)
To: David Miller; +Cc: netdev
<linux/types.h> defines __kernel_pid_t for userland; pid_t is
defined elsewhere (and potentially differently).
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/if_pppol2tp.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/if_pppol2tp.h b/include/linux/if_pppol2tp.h
index 184bc55..23cefa1 100644
--- a/include/linux/if_pppol2tp.h
+++ b/include/linux/if_pppol2tp.h
@@ -39,7 +39,7 @@ struct pppol2tp_addr {
* bits. So we need a different sockaddr structure.
*/
struct pppol2tpv3_addr {
- pid_t pid; /* pid that owns the fd.
+ __kernel_pid_t pid; /* pid that owns the fd.
* 0 => current */
int fd; /* FD of UDP or IP socket to use */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 04/12] headers, net: Use __kernel_sa_family_t in more definitions shared with userland
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (2 preceding siblings ...)
2011-08-08 13:17 ` [PATCH 03/12] headers, pppol2tp: Use __kernel_pid_t in <linux/pppol2tp.h> Ben Hutchings
@ 2011-08-08 13:18 ` Ben Hutchings
2011-08-08 13:18 ` [PATCH 05/12] headers, net: Define struct __kernel_sockaddr, replacing struct sockaddr Ben Hutchings
` (7 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:18 UTC (permalink / raw)
To: David Miller; +Cc: netdev
Complete the conversion started with commit
6602a4baf4d1a73cc4685a39ef859e1c5ddf654c ('net: Make userland include
of netlink.h more sane').
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/atalk.h | 3 ++-
include/linux/ax25.h | 2 +-
include/linux/caif/caif_socket.h | 7 +------
include/linux/can.h | 2 +-
include/linux/if_pppox.h | 7 ++++---
include/linux/in.h | 2 +-
include/linux/ipx.h | 2 +-
include/linux/irda.h | 9 +++------
include/linux/l2tp.h | 7 ++++---
include/linux/llc.h | 10 +++++++---
include/linux/netlink.h | 2 +-
include/linux/phonet.h | 5 +++--
include/linux/rose.h | 5 +++--
include/linux/un.h | 4 +++-
include/linux/x25.h | 3 ++-
15 files changed, 37 insertions(+), 33 deletions(-)
diff --git a/include/linux/atalk.h b/include/linux/atalk.h
index d34c187..f57c368 100644
--- a/include/linux/atalk.h
+++ b/include/linux/atalk.h
@@ -3,6 +3,7 @@
#include <linux/types.h>
#include <asm/byteorder.h>
+#include <linux/socket.h>
/*
* AppleTalk networking structures
@@ -28,7 +29,7 @@ struct atalk_addr {
};
struct sockaddr_at {
- sa_family_t sat_family;
+ __kernel_sa_family_t sat_family;
__u8 sat_port;
struct atalk_addr sat_addr;
char sat_zero[8];
diff --git a/include/linux/ax25.h b/include/linux/ax25.h
index 56c11f0..74c89a4 100644
--- a/include/linux/ax25.h
+++ b/include/linux/ax25.h
@@ -47,7 +47,7 @@ typedef struct {
} ax25_address;
struct sockaddr_ax25 {
- sa_family_t sax25_family;
+ __kernel_sa_family_t sax25_family;
ax25_address sax25_call;
int sax25_ndigis;
/* Digipeater ax25_address sets follow */
diff --git a/include/linux/caif/caif_socket.h b/include/linux/caif/caif_socket.h
index d9cb19b..3f3bac6 100644
--- a/include/linux/caif/caif_socket.h
+++ b/include/linux/caif/caif_socket.h
@@ -9,12 +9,7 @@
#define _LINUX_CAIF_SOCKET_H
#include <linux/types.h>
-
-#ifdef __KERNEL__
#include <linux/socket.h>
-#else
-#include <sys/socket.h>
-#endif
/**
* enum caif_link_selector - Physical Link Selection.
@@ -144,7 +139,7 @@ enum caif_debug_service {
* CAIF Channel. It defines the service to connect to on the modem.
*/
struct sockaddr_caif {
- sa_family_t family;
+ __kernel_sa_family_t family;
union {
struct {
__u8 type; /* type: enum caif_at_type */
diff --git a/include/linux/can.h b/include/linux/can.h
index d183333..bb047dc 100644
--- a/include/linux/can.h
+++ b/include/linux/can.h
@@ -78,7 +78,7 @@ struct can_frame {
* @can_addr: protocol specific address information
*/
struct sockaddr_can {
- sa_family_t can_family;
+ __kernel_sa_family_t can_family;
int can_ifindex;
union {
/* transport protocol class address information (e.g. ISOTP) */
diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
index 60e5558..b5f927f 100644
--- a/include/linux/if_pppox.h
+++ b/include/linux/if_pppox.h
@@ -20,6 +20,7 @@
#include <linux/types.h>
#include <asm/byteorder.h>
+#include <linux/socket.h>
#include <linux/if_ether.h>
#ifdef __KERNEL__
#include <linux/if.h>
@@ -63,7 +64,7 @@ struct pptp_addr {
#define PX_MAX_PROTO 3
struct sockaddr_pppox {
- sa_family_t sa_family; /* address family, AF_PPPOX */
+ __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
unsigned int sa_protocol; /* protocol identifier */
union {
struct pppoe_addr pppoe;
@@ -77,7 +78,7 @@ struct sockaddr_pppox {
* type instead.
*/
struct sockaddr_pppol2tp {
- sa_family_t sa_family; /* address family, AF_PPPOX */
+ __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
unsigned int sa_protocol; /* protocol identifier */
struct pppol2tp_addr pppol2tp;
} __attribute__((packed));
@@ -86,7 +87,7 @@ struct sockaddr_pppol2tp {
* bits. So we need a different sockaddr structure.
*/
struct sockaddr_pppol2tpv3 {
- sa_family_t sa_family; /* address family, AF_PPPOX */
+ __kernel_sa_family_t sa_family; /* address family, AF_PPPOX */
unsigned int sa_protocol; /* protocol identifier */
struct pppol2tpv3_addr pppol2tp;
} __attribute__((packed));
diff --git a/include/linux/in.h b/include/linux/in.h
index beeb6de..01129c0 100644
--- a/include/linux/in.h
+++ b/include/linux/in.h
@@ -182,7 +182,7 @@ struct in_pktinfo {
/* Structure describing an Internet (IP) socket address. */
#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
struct sockaddr_in {
- sa_family_t sin_family; /* Address family */
+ __kernel_sa_family_t sin_family; /* Address family */
__be16 sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
diff --git a/include/linux/ipx.h b/include/linux/ipx.h
index aabb1d2..3d48014 100644
--- a/include/linux/ipx.h
+++ b/include/linux/ipx.h
@@ -7,7 +7,7 @@
#define IPX_MTU 576
struct sockaddr_ipx {
- sa_family_t sipx_family;
+ __kernel_sa_family_t sipx_family;
__be16 sipx_port;
__be32 sipx_network;
unsigned char sipx_node[IPX_NODE_LEN];
diff --git a/include/linux/irda.h b/include/linux/irda.h
index 00bdad0..a014c32 100644
--- a/include/linux/irda.h
+++ b/include/linux/irda.h
@@ -26,12 +26,9 @@
#define KERNEL_IRDA_H
#include <linux/types.h>
+#include <linux/socket.h>
-/* Please do *not* add any #include in this file, this file is
- * included as-is in user space.
- * Please fix the calling file to properly included needed files before
- * this one, or preferably to include <net/irda/irda.h> instead.
- * Jean II */
+/* Note that this file is shared with user space. */
/* Hint bit positions for first hint byte */
#define HINT_PNP 0x01
@@ -125,7 +122,7 @@ enum {
#define LSAP_ANY 0xff
struct sockaddr_irda {
- sa_family_t sir_family; /* AF_IRDA */
+ __kernel_sa_family_t sir_family; /* AF_IRDA */
__u8 sir_lsap_sel; /* LSAP selector */
__u32 sir_addr; /* Device address */
char sir_name[25]; /* Usually <service>:IrDA:TinyTP */
diff --git a/include/linux/l2tp.h b/include/linux/l2tp.h
index 4bdb31d..e77d7f9 100644
--- a/include/linux/l2tp.h
+++ b/include/linux/l2tp.h
@@ -8,8 +8,8 @@
#define _LINUX_L2TP_H_
#include <linux/types.h>
-#ifdef __KERNEL__
#include <linux/socket.h>
+#ifdef __KERNEL__
#include <linux/in.h>
#else
#include <netinet/in.h>
@@ -26,14 +26,15 @@
#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
struct sockaddr_l2tpip {
/* The first fields must match struct sockaddr_in */
- sa_family_t l2tp_family; /* AF_INET */
+ __kernel_sa_family_t l2tp_family; /* AF_INET */
__be16 l2tp_unused; /* INET port number (unused) */
struct in_addr l2tp_addr; /* Internet address */
__u32 l2tp_conn_id; /* Connection ID of tunnel */
/* Pad to size of `struct sockaddr'. */
- unsigned char __pad[sizeof(struct sockaddr) - sizeof(sa_family_t) -
+ unsigned char __pad[sizeof(struct sockaddr) -
+ sizeof(__kernel_sa_family_t) -
sizeof(__be16) - sizeof(struct in_addr) -
sizeof(__u32)];
};
diff --git a/include/linux/llc.h b/include/linux/llc.h
index ad7074b..a2418ae 100644
--- a/include/linux/llc.h
+++ b/include/linux/llc.h
@@ -12,16 +12,20 @@
*
* See the GNU General Public License for more details.
*/
+
+#include <linux/socket.h>
+
#define __LLC_SOCK_SIZE__ 16 /* sizeof(sockaddr_llc), word align. */
struct sockaddr_llc {
- sa_family_t sllc_family; /* AF_LLC */
- sa_family_t sllc_arphrd; /* ARPHRD_ETHER */
+ __kernel_sa_family_t sllc_family; /* AF_LLC */
+ __kernel_sa_family_t sllc_arphrd; /* ARPHRD_ETHER */
unsigned char sllc_test;
unsigned char sllc_xid;
unsigned char sllc_ua; /* UA data, only for SOCK_STREAM. */
unsigned char sllc_sap;
unsigned char sllc_mac[IFHWADDRLEN];
- unsigned char __pad[__LLC_SOCK_SIZE__ - sizeof(sa_family_t) * 2 -
+ unsigned char __pad[__LLC_SOCK_SIZE__ -
+ sizeof(__kernel_sa_family_t) * 2 -
sizeof(unsigned char) * 4 - IFHWADDRLEN];
};
diff --git a/include/linux/netlink.h b/include/linux/netlink.h
index 180540a..8180cd9 100644
--- a/include/linux/netlink.h
+++ b/include/linux/netlink.h
@@ -1,7 +1,7 @@
#ifndef __LINUX_NETLINK_H
#define __LINUX_NETLINK_H
-#include <linux/socket.h> /* for sa_family_t */
+#include <linux/socket.h> /* for __kernel_sa_family_t */
#include <linux/types.h>
#define NETLINK_ROUTE 0 /* Routing/device hook */
diff --git a/include/linux/phonet.h b/include/linux/phonet.h
index 6fb1384..f53a416 100644
--- a/include/linux/phonet.h
+++ b/include/linux/phonet.h
@@ -24,6 +24,7 @@
#define LINUX_PHONET_H
#include <linux/types.h>
+#include <linux/socket.h>
/* Automatic protocol selection */
#define PN_PROTO_TRANSPORT 0
@@ -96,11 +97,11 @@ struct phonetmsg {
/* Phonet socket address structure */
struct sockaddr_pn {
- sa_family_t spn_family;
+ __kernel_sa_family_t spn_family;
__u8 spn_obj;
__u8 spn_dev;
__u8 spn_resource;
- __u8 spn_zero[sizeof(struct sockaddr) - sizeof(sa_family_t) - 3];
+ __u8 spn_zero[sizeof(struct sockaddr) - sizeof(__kernel_sa_family_t) - 3];
} __attribute__((packed));
/* Well known address */
diff --git a/include/linux/rose.h b/include/linux/rose.h
index e8289cd..1fcfe95 100644
--- a/include/linux/rose.h
+++ b/include/linux/rose.h
@@ -7,6 +7,7 @@
#ifndef ROSE_KERNEL_H
#define ROSE_KERNEL_H
+#include <linux/socket.h>
#include <linux/ax25.h>
#define ROSE_MTU 251
@@ -46,7 +47,7 @@ typedef struct {
} rose_address;
struct sockaddr_rose {
- sa_family_t srose_family;
+ __kernel_sa_family_t srose_family;
rose_address srose_addr;
ax25_address srose_call;
int srose_ndigis;
@@ -54,7 +55,7 @@ struct sockaddr_rose {
};
struct full_sockaddr_rose {
- sa_family_t srose_family;
+ __kernel_sa_family_t srose_family;
rose_address srose_addr;
ax25_address srose_call;
unsigned int srose_ndigis;
diff --git a/include/linux/un.h b/include/linux/un.h
index 45561c5..3ed3e46 100644
--- a/include/linux/un.h
+++ b/include/linux/un.h
@@ -1,10 +1,12 @@
#ifndef _LINUX_UN_H
#define _LINUX_UN_H
+#include <linux/socket.h>
+
#define UNIX_PATH_MAX 108
struct sockaddr_un {
- sa_family_t sun_family; /* AF_UNIX */
+ __kernel_sa_family_t sun_family; /* AF_UNIX */
char sun_path[UNIX_PATH_MAX]; /* pathname */
};
diff --git a/include/linux/x25.h b/include/linux/x25.h
index 6450a7f..810cce6 100644
--- a/include/linux/x25.h
+++ b/include/linux/x25.h
@@ -12,6 +12,7 @@
#define X25_KERNEL_H
#include <linux/types.h>
+#include <linux/socket.h>
#define SIOCX25GSUBSCRIP (SIOCPROTOPRIVATE + 0)
#define SIOCX25SSUBSCRIP (SIOCPROTOPRIVATE + 1)
@@ -57,7 +58,7 @@ struct x25_address {
* Linux X.25 Address structure, used for bind, and connect mostly.
*/
struct sockaddr_x25 {
- sa_family_t sx25_family; /* Must be AF_X25 */
+ __kernel_sa_family_t sx25_family; /* Must be AF_X25 */
struct x25_address sx25_addr; /* X.121 Address */
};
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 05/12] headers, net: Define struct __kernel_sockaddr, replacing struct sockaddr
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (3 preceding siblings ...)
2011-08-08 13:18 ` [PATCH 04/12] headers, net: Use __kernel_sa_family_t in more definitions shared with userland Ben Hutchings
@ 2011-08-08 13:18 ` Ben Hutchings
2011-08-08 13:19 ` [PATCH 06/12] headers, netfilter: Use kernel type names __u8, __u16, __u32 Ben Hutchings
` (6 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:18 UTC (permalink / raw)
To: David Miller; +Cc: netdev
Commit 9c501935a3cdcf6b1d35aaee3aa11c7a7051a305 ('net: Support
inclusion of <linux/socket.h> before <sys/socket.h>') removed the
definition of struct sockaddr for userland.
But we still have several headers using struct sockaddr, and we
shouldn't make them include <sys/socket.h> as that risks recursive
inclusion in future. Define and use an identical struct
__kernel_sockaddr instead.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/if.h | 12 ++++++------
include/linux/phonet.h | 3 ++-
include/linux/socket.h | 17 +++++++++--------
3 files changed, 17 insertions(+), 15 deletions(-)
diff --git a/include/linux/if.h b/include/linux/if.h
index 03489ca..4ff0f95 100644
--- a/include/linux/if.h
+++ b/include/linux/if.h
@@ -20,7 +20,7 @@
#define _LINUX_IF_H
#include <linux/types.h> /* for "__kernel_caddr_t" et al */
-#include <linux/socket.h> /* for "struct sockaddr" et al */
+#include <linux/socket.h> /* for "struct __kernel_sockaddr" et al */
#include <linux/compiler.h> /* for "__user" et al */
#define IFNAMSIZ 16
@@ -175,11 +175,11 @@ struct ifreq {
} ifr_ifrn;
union {
- struct sockaddr ifru_addr;
- struct sockaddr ifru_dstaddr;
- struct sockaddr ifru_broadaddr;
- struct sockaddr ifru_netmask;
- struct sockaddr ifru_hwaddr;
+ struct __kernel_sockaddr ifru_addr;
+ struct __kernel_sockaddr ifru_dstaddr;
+ struct __kernel_sockaddr ifru_broadaddr;
+ struct __kernel_sockaddr ifru_netmask;
+ struct __kernel_sockaddr ifru_hwaddr;
short ifru_flags;
int ifru_ivalue;
int ifru_mtu;
diff --git a/include/linux/phonet.h b/include/linux/phonet.h
index f53a416..9aba9ce 100644
--- a/include/linux/phonet.h
+++ b/include/linux/phonet.h
@@ -101,7 +101,8 @@ struct sockaddr_pn {
__u8 spn_obj;
__u8 spn_dev;
__u8 spn_resource;
- __u8 spn_zero[sizeof(struct sockaddr) - sizeof(__kernel_sa_family_t) - 3];
+ __u8 spn_zero[sizeof(struct __kernel_sockaddr) -
+ sizeof(__kernel_sa_family_t) - 3];
} __attribute__((packed));
/* Well known address */
diff --git a/include/linux/socket.h b/include/linux/socket.h
index d0e77f6..f13ad7b 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -10,6 +10,14 @@
typedef unsigned short __kernel_sa_family_t;
+/*
+ * 1003.1g requires sa_family_t and that sa_data is char.
+ */
+struct __kernel_sockaddr {
+ __kernel_sa_family_t sa_family; /* address family, AF_xxx */
+ char sa_data[14]; /* 14 bytes of protocol address */
+};
+
struct __kernel_sockaddr_storage {
__kernel_sa_family_t ss_family; /* address family */
/* Following field(s) are implementation specific */
@@ -39,15 +47,8 @@ extern void socket_seq_show(struct seq_file *seq);
typedef __kernel_sa_family_t sa_family_t;
-/*
- * 1003.1g requires sa_family_t and that sa_data is char.
- */
+#define sockaddr __kernel_sockaddr
-struct sockaddr {
- sa_family_t sa_family; /* address family, AF_xxx */
- char sa_data[14]; /* 14 bytes of protocol address */
-};
-
struct linger {
int l_onoff; /* Linger active */
int l_linger; /* How long to linger for */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 06/12] headers, netfilter: Use kernel type names __u8, __u16, __u32
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (4 preceding siblings ...)
2011-08-08 13:18 ` [PATCH 05/12] headers, net: Define struct __kernel_sockaddr, replacing struct sockaddr Ben Hutchings
@ 2011-08-08 13:19 ` Ben Hutchings
2011-08-08 13:19 ` [PATCH 07/12] headers, tipc: Add missing #include to <linux/tipc_config.h> for userland Ben Hutchings
` (5 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:19 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Patrick McHardy, netfilter-devel
These types are guaranteed to be defined by <linux/types.h> for
both userland and kernel, unlike u_intN_t.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/netfilter_arp/arp_tables.h | 14 +++++++-------
include/linux/netfilter_ipv4/ip_tables.h | 20 ++++++++++----------
include/linux/netfilter_ipv6/ip6_tables.h | 22 +++++++++++-----------
3 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/include/linux/netfilter_arp/arp_tables.h b/include/linux/netfilter_arp/arp_tables.h
index adbf4bf..e08565d 100644
--- a/include/linux/netfilter_arp/arp_tables.h
+++ b/include/linux/netfilter_arp/arp_tables.h
@@ -52,7 +52,7 @@ struct arpt_arp {
struct in_addr smsk, tmsk;
/* Device hw address length, src+target device addresses */
- u_int8_t arhln, arhln_mask;
+ __u8 arhln, arhln_mask;
struct arpt_devaddr_info src_devaddr;
struct arpt_devaddr_info tgt_devaddr;
@@ -71,9 +71,9 @@ struct arpt_arp {
unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ];
/* Flags word */
- u_int8_t flags;
+ __u8 flags;
/* Inverse flags */
- u_int16_t invflags;
+ __u16 invflags;
};
/* Values for "flag" field in struct arpt_ip (general arp structure).
@@ -102,9 +102,9 @@ struct arpt_entry
struct arpt_arp arp;
/* Size of arpt_entry + matches */
- u_int16_t target_offset;
+ __u16 target_offset;
/* Size of arpt_entry + matches + target */
- u_int16_t next_offset;
+ __u16 next_offset;
/* Back pointer */
unsigned int comefrom;
@@ -260,8 +260,8 @@ extern unsigned int arpt_do_table(struct sk_buff *skb,
struct compat_arpt_entry {
struct arpt_arp arp;
- u_int16_t target_offset;
- u_int16_t next_offset;
+ __u16 target_offset;
+ __u16 next_offset;
compat_uint_t comefrom;
struct compat_xt_counters counters;
unsigned char elems[0];
diff --git a/include/linux/netfilter_ipv4/ip_tables.h b/include/linux/netfilter_ipv4/ip_tables.h
index 64a5d95..db79231 100644
--- a/include/linux/netfilter_ipv4/ip_tables.h
+++ b/include/linux/netfilter_ipv4/ip_tables.h
@@ -81,12 +81,12 @@ struct ipt_ip {
unsigned char iniface_mask[IFNAMSIZ], outiface_mask[IFNAMSIZ];
/* Protocol, 0 = ANY */
- u_int16_t proto;
+ __u16 proto;
/* Flags word */
- u_int8_t flags;
+ __u8 flags;
/* Inverse flags */
- u_int8_t invflags;
+ __u8 invflags;
};
/* Values for "flag" field in struct ipt_ip (general ip structure). */
@@ -114,9 +114,9 @@ struct ipt_entry {
unsigned int nfcache;
/* Size of ipt_entry + matches */
- u_int16_t target_offset;
+ __u16 target_offset;
/* Size of ipt_entry + matches + target */
- u_int16_t next_offset;
+ __u16 next_offset;
/* Back pointer */
unsigned int comefrom;
@@ -149,9 +149,9 @@ struct ipt_entry {
/* ICMP matching stuff */
struct ipt_icmp {
- u_int8_t type; /* type to match */
- u_int8_t code[2]; /* range of code */
- u_int8_t invflags; /* Inverse flags */
+ __u8 type; /* type to match */
+ __u8 code[2]; /* range of code */
+ __u8 invflags; /* Inverse flags */
};
/* Values for "inv" field for struct ipt_icmp. */
@@ -288,8 +288,8 @@ extern unsigned int ipt_do_table(struct sk_buff *skb,
struct compat_ipt_entry {
struct ipt_ip ip;
compat_uint_t nfcache;
- u_int16_t target_offset;
- u_int16_t next_offset;
+ __u16 target_offset;
+ __u16 next_offset;
compat_uint_t comefrom;
struct compat_xt_counters counters;
unsigned char elems[0];
diff --git a/include/linux/netfilter_ipv6/ip6_tables.h b/include/linux/netfilter_ipv6/ip6_tables.h
index c9784f7..f549adc 100644
--- a/include/linux/netfilter_ipv6/ip6_tables.h
+++ b/include/linux/netfilter_ipv6/ip6_tables.h
@@ -81,14 +81,14 @@ struct ip6t_ip6 {
* MH do not match any packets.
* - You also need to set IP6T_FLAGS_PROTO to "flags" to check protocol.
*/
- u_int16_t proto;
+ __u16 proto;
/* TOS to match iff flags & IP6T_F_TOS */
- u_int8_t tos;
+ __u8 tos;
/* Flags word */
- u_int8_t flags;
+ __u8 flags;
/* Inverse flags */
- u_int8_t invflags;
+ __u8 invflags;
};
/* Values for "flag" field in struct ip6t_ip6 (general ip6 structure). */
@@ -118,9 +118,9 @@ struct ip6t_entry {
unsigned int nfcache;
/* Size of ipt_entry + matches */
- u_int16_t target_offset;
+ __u16 target_offset;
/* Size of ipt_entry + matches + target */
- u_int16_t next_offset;
+ __u16 next_offset;
/* Back pointer */
unsigned int comefrom;
@@ -186,9 +186,9 @@ struct ip6t_error {
/* ICMP matching stuff */
struct ip6t_icmp {
- u_int8_t type; /* type to match */
- u_int8_t code[2]; /* range of code */
- u_int8_t invflags; /* Inverse flags */
+ __u8 type; /* type to match */
+ __u8 code[2]; /* range of code */
+ __u8 invflags; /* Inverse flags */
};
/* Values for "inv" field for struct ipt_icmp. */
@@ -298,8 +298,8 @@ extern int ipv6_find_hdr(const struct sk_buff *skb, unsigned int *offset,
struct compat_ip6t_entry {
struct ip6t_ip6 ipv6;
compat_uint_t nfcache;
- u_int16_t target_offset;
- u_int16_t next_offset;
+ __u16 target_offset;
+ __u16 next_offset;
compat_uint_t comefrom;
struct compat_xt_counters counters;
unsigned char elems[0];
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 07/12] headers, tipc: Add missing #include to <linux/tipc_config.h> for userland
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (5 preceding siblings ...)
2011-08-08 13:19 ` [PATCH 06/12] headers, netfilter: Use kernel type names __u8, __u16, __u32 Ben Hutchings
@ 2011-08-08 13:19 ` Ben Hutchings
2011-08-08 13:20 ` [PATCH 08/12] headers, netfilter: Add missing #include <limits.h> " Ben Hutchings
` (4 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:19 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Jon Maloy, Allan Stephens, tipc-discussion
<linux/tipc_config.h> defines inline functions using ntohs() etc.
For userland these are defined in <arpa/inet.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/tipc_config.h | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/include/linux/tipc_config.h b/include/linux/tipc_config.h
index 0db2395..9730b0e 100644
--- a/include/linux/tipc_config.h
+++ b/include/linux/tipc_config.h
@@ -41,6 +41,10 @@
#include <linux/string.h>
#include <asm/byteorder.h>
+#ifndef __KERNEL__
+#include <arpa/inet.h> /* for ntohs etc. */
+#endif
+
/*
* Configuration
*
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 08/12] headers, netfilter: Add missing #include <limits.h> for userland
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (6 preceding siblings ...)
2011-08-08 13:19 ` [PATCH 07/12] headers, tipc: Add missing #include to <linux/tipc_config.h> for userland Ben Hutchings
@ 2011-08-08 13:20 ` Ben Hutchings
2011-08-08 13:20 ` [PATCH 09/12] headers, xtables: Add missing #include <linux/netfilter.h> Ben Hutchings
` (3 subsequent siblings)
11 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:20 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Patrick McHardy, netfilter-devel
Various headers use INT_MIN and INT_MAX, which are defined for
userland in <limits.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/netfilter_decnet.h | 3 +++
include/linux/netfilter_ipv4.h | 3 +++
include/linux/netfilter_ipv6.h | 3 +++
3 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/include/linux/netfilter_decnet.h b/include/linux/netfilter_decnet.h
index 6f42536..0b09732 100644
--- a/include/linux/netfilter_decnet.h
+++ b/include/linux/netfilter_decnet.h
@@ -11,6 +11,9 @@
/* only for userspace compatibility */
#ifndef __KERNEL__
+
+#include <limits.h> /* for INT_MIN, INT_MAX */
+
/* IP Cache bits. */
/* Src IP address. */
#define NFC_DN_SRC 0x0001
diff --git a/include/linux/netfilter_ipv4.h b/include/linux/netfilter_ipv4.h
index 29c7727..fa0946c 100644
--- a/include/linux/netfilter_ipv4.h
+++ b/include/linux/netfilter_ipv4.h
@@ -9,6 +9,9 @@
/* only for userspace compatibility */
#ifndef __KERNEL__
+
+#include <limits.h> /* for INT_MIN, INT_MAX */
+
/* IP Cache bits. */
/* Src IP address. */
#define NFC_IP_SRC 0x0001
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h
index 1f7e300..57c0251 100644
--- a/include/linux/netfilter_ipv6.h
+++ b/include/linux/netfilter_ipv6.h
@@ -12,6 +12,9 @@
/* only for userspace compatibility */
#ifndef __KERNEL__
+
+#include <limits.h> /* for INT_MIN, INT_MAX */
+
/* IP Cache bits. */
/* Src IP address. */
#define NFC_IP6_SRC 0x0001
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 09/12] headers, xtables: Add missing #include <linux/netfilter.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (7 preceding siblings ...)
2011-08-08 13:20 ` [PATCH 08/12] headers, netfilter: Add missing #include <limits.h> " Ben Hutchings
@ 2011-08-08 13:20 ` Ben Hutchings
2011-08-09 15:29 ` Patrick McHardy
2011-08-08 13:20 ` [PATCH 10/12] headers, can: Add missing #include to <linux/can/bcm.h> Ben Hutchings
` (2 subsequent siblings)
11 siblings, 1 reply; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:20 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Patrick McHardy, netfilter-devel
Various headers use union nf_inet_addr, defined in <linux/netfilter.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/netfilter/xt_connlimit.h | 1 +
include/linux/netfilter/xt_conntrack.h | 1 +
include/linux/netfilter/xt_iprange.h | 1 +
3 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/include/linux/netfilter/xt_connlimit.h b/include/linux/netfilter/xt_connlimit.h
index 0ca66e9..d1366f0 100644
--- a/include/linux/netfilter/xt_connlimit.h
+++ b/include/linux/netfilter/xt_connlimit.h
@@ -2,6 +2,7 @@
#define _XT_CONNLIMIT_H
#include <linux/types.h>
+#include <linux/netfilter.h>
struct xt_connlimit_data;
diff --git a/include/linux/netfilter/xt_conntrack.h b/include/linux/netfilter/xt_conntrack.h
index 74b904d..e3c041d 100644
--- a/include/linux/netfilter/xt_conntrack.h
+++ b/include/linux/netfilter/xt_conntrack.h
@@ -6,6 +6,7 @@
#define _XT_CONNTRACK_H
#include <linux/types.h>
+#include <linux/netfilter.h>
#include <linux/netfilter/nf_conntrack_tuple_common.h>
#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo)%IP_CT_IS_REPLY+1))
diff --git a/include/linux/netfilter/xt_iprange.h b/include/linux/netfilter/xt_iprange.h
index c1f21a7..25fd7cf 100644
--- a/include/linux/netfilter/xt_iprange.h
+++ b/include/linux/netfilter/xt_iprange.h
@@ -2,6 +2,7 @@
#define _LINUX_NETFILTER_XT_IPRANGE_H 1
#include <linux/types.h>
+#include <linux/netfilter.h>
enum {
IPRANGE_SRC = 1 << 0, /* match source IP address */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 10/12] headers, can: Add missing #include to <linux/can/bcm.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (8 preceding siblings ...)
2011-08-08 13:20 ` [PATCH 09/12] headers, xtables: Add missing #include <linux/netfilter.h> Ben Hutchings
@ 2011-08-08 13:20 ` Ben Hutchings
2011-08-08 15:15 ` Oliver Hartkopp
2011-08-08 13:24 ` [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h> Ben Hutchings
2011-08-08 13:25 ` [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h> Ben Hutchings
11 siblings, 1 reply; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:20 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Oliver Hartkopp, Urs Thuermann
<linux/can/bcm.h> uses type canid_t, defined in <linux/can.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/can/bcm.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/include/linux/can/bcm.h b/include/linux/can/bcm.h
index 1432b27..e96154d 100644
--- a/include/linux/can/bcm.h
+++ b/include/linux/can/bcm.h
@@ -15,6 +15,7 @@
#define CAN_BCM_H
#include <linux/types.h>
+#include <linux/can.h>
/**
* struct bcm_msg_head - head of messages to/from the broadcast manager
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (9 preceding siblings ...)
2011-08-08 13:20 ` [PATCH 10/12] headers, can: Add missing #include to <linux/can/bcm.h> Ben Hutchings
@ 2011-08-08 13:24 ` Ben Hutchings
2011-08-08 18:20 ` Ben Hutchings
2011-08-08 13:25 ` [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h> Ben Hutchings
11 siblings, 1 reply; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:24 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Joerg Reuter, Klaus Kudielka, linux-hams
<linux/scc.h> uses SIOCDEVPRIVATE, defined in <linux/sockios.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
This file isn't listed in MAINTAINERS but appears to be associated with
one of the hamradio drivers; please could one of the hams claim it?
Ben.
include/linux/scc.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/include/linux/scc.h b/include/linux/scc.h
index 3495bd9..d5916e5 100644
--- a/include/linux/scc.h
+++ b/include/linux/scc.h
@@ -3,6 +3,7 @@
#ifndef _SCC_H
#define _SCC_H
+#include <linux/sockios.h>
/* selection of hardware types */
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* Re: [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h>
2011-08-08 13:24 ` [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h> Ben Hutchings
@ 2011-08-08 18:20 ` Ben Hutchings
2011-08-09 7:14 ` walter harms
0 siblings, 1 reply; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 18:20 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Joerg Reuter, Klaus Kudielka, linux-hams
On Mon, Aug 08, 2011 at 02:24:29PM +0100, Ben Hutchings wrote:
> <linux/scc.h> uses SIOCDEVPRIVATE, defined in <linux/sockios.h>.
Unfortunately SIOCDEVPRIVATE is also defined elsewhere by glibc,
so including <linux/sockios.h> can result in duplicate definitions.
So I don't think we can make this change.
Ben.
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
> ---
> This file isn't listed in MAINTAINERS but appears to be associated with
> one of the hamradio drivers; please could one of the hams claim it?
>
> Ben.
>
> include/linux/scc.h | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/include/linux/scc.h b/include/linux/scc.h
> index 3495bd9..d5916e5 100644
> --- a/include/linux/scc.h
> +++ b/include/linux/scc.h
> @@ -3,6 +3,7 @@
> #ifndef _SCC_H
> #define _SCC_H
>
> +#include <linux/sockios.h>
>
> /* selection of hardware types */
>
> --
> 1.7.5.4
>
>
>
--
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
- Albert Camus
^ permalink raw reply [flat|nested] 24+ messages in thread* Re: [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h>
2011-08-08 18:20 ` Ben Hutchings
@ 2011-08-09 7:14 ` walter harms
0 siblings, 0 replies; 24+ messages in thread
From: walter harms @ 2011-08-09 7:14 UTC (permalink / raw)
To: Ben Hutchings
Cc: David Miller, netdev, Joerg Reuter, Klaus Kudielka, linux-hams
Am 08.08.2011 20:20, schrieb Ben Hutchings:
> On Mon, Aug 08, 2011 at 02:24:29PM +0100, Ben Hutchings wrote:
>> <linux/scc.h> uses SIOCDEVPRIVATE, defined in <linux/sockios.h>.
>
> Unfortunately SIOCDEVPRIVATE is also defined elsewhere by glibc,
> so including <linux/sockios.h> can result in duplicate definitions.
> So I don't think we can make this change.
>
Maybe that is something the glibc and the kernel guys should know about.
Did someone tell them ? Is that problem documented somewhere ?
re,
wh
> Ben.
>
>> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
>> ---
>> This file isn't listed in MAINTAINERS but appears to be associated with
>> one of the hamradio drivers; please could one of the hams claim it?
>>
>> Ben.
>>
>> include/linux/scc.h | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/linux/scc.h b/include/linux/scc.h
>> index 3495bd9..d5916e5 100644
>> --- a/include/linux/scc.h
>> +++ b/include/linux/scc.h
>> @@ -3,6 +3,7 @@
>> #ifndef _SCC_H
>> #define _SCC_H
>>
>> +#include <linux/sockios.h>
>>
>> /* selection of hardware types */
>>
>> --
>> 1.7.5.4
>>
>>
>>
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h>
2011-08-08 13:15 ` [PATCH 00/12] Fix net header dependencies Ben Hutchings
` (10 preceding siblings ...)
2011-08-08 13:24 ` [PATCH 11/12] headers, scc: Add missing #include to <linux/scc.h> Ben Hutchings
@ 2011-08-08 13:25 ` Ben Hutchings
2011-08-09 7:27 ` David Miller
11 siblings, 1 reply; 24+ messages in thread
From: Ben Hutchings @ 2011-08-08 13:25 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Paul Mackerras, linux-ppp
<linux/if_ppp.h> uses various types defined in <linux/ppp_defs.h>.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
include/linux/if_ppp.h | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/include/linux/if_ppp.h b/include/linux/if_ppp.h
index c9ad383..4d70e16 100644
--- a/include/linux/if_ppp.h
+++ b/include/linux/if_ppp.h
@@ -35,6 +35,7 @@
#include <linux/types.h>
#include <linux/compiler.h>
+#include <linux/ppp_defs.h>
/*
* Packet sizes
--
1.7.5.4
^ permalink raw reply related [flat|nested] 24+ messages in thread* Re: [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h>
2011-08-08 13:25 ` [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h> Ben Hutchings
@ 2011-08-09 7:27 ` David Miller
2011-08-09 12:40 ` Ben Hutchings
0 siblings, 1 reply; 24+ messages in thread
From: David Miller @ 2011-08-09 7:27 UTC (permalink / raw)
To: ben; +Cc: netdev, paulus, linux-ppp
From: Ben Hutchings <ben@decadent.org.uk>
Date: Mon, 08 Aug 2011 14:25:19 +0100
> <linux/if_ppp.h> uses various types defined in <linux/ppp_defs.h>.
>
> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Unfortunately there is a "net/if_ppp.h" provided by glibc that
includes "net/ppp_defs.h", and all of this is presumably in order
to discourage direct use of the kernel headers.
Even though net/ppp_defs.h ends up including linux/ppp_defs.h
anyways.
Whilst I think your efforts are to be commended, we can't start doing
or else we'll start breaking the build in various unexpected ways.
The SIOCDEVPRIVATE (defined by GLIBC in bits/ioctls.h) case is just
one such example.
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH 12/12] headers, ppp: Add missing #include to <linux/if_ppp.h>
2011-08-09 7:27 ` David Miller
@ 2011-08-09 12:40 ` Ben Hutchings
0 siblings, 0 replies; 24+ messages in thread
From: Ben Hutchings @ 2011-08-09 12:40 UTC (permalink / raw)
To: David Miller; +Cc: netdev, paulus, linux-ppp
[-- Attachment #1: Type: text/plain, Size: 1357 bytes --]
On Tue, 2011-08-09 at 00:27 -0700, David Miller wrote:
> From: Ben Hutchings <ben@decadent.org.uk>
> Date: Mon, 08 Aug 2011 14:25:19 +0100
>
> > <linux/if_ppp.h> uses various types defined in <linux/ppp_defs.h>.
> >
> > Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
>
> Unfortunately there is a "net/if_ppp.h" provided by glibc that
> includes "net/ppp_defs.h", and all of this is presumably in order
> to discourage direct use of the kernel headers.
>
> Even though net/ppp_defs.h ends up including linux/ppp_defs.h
> anyways.
>
> Whilst I think your efforts are to be commended, we can't start doing
> or else we'll start breaking the build in various unexpected ways.
>
> The SIOCDEVPRIVATE (defined by GLIBC in bits/ioctls.h) case is just
> one such example.
I did try to check for these cases, but obviously missed some. I'll
re-post the series without these ones.
In the longer term I would really like to solve this mess somehow.
glibc is obviously duplicating a lot of definitions in different headers
(but tends to lag behind a little) and other C libraries may also have
to duplicate that work for compatibility. Some kernel headers already
*do* include headers such as <linux/if.h> that can conflict with C
library headers, sometimes requiring userland to work around the
conflict somehow.
Ben.
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread