summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 18:06:16 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 18:06:16 -0800
commit8b11a705bdc5fd9f39b113f7d1dc9c8eeabe301b (patch)
treef00c6c3accce342c055af338eaa88583e5fe3552 /include/linux
parent90a880a460aeb2374d6c766c08fa7786fb982aae (diff)
v2.4.2.7 -> v2.4.2.8
- Paul Mackerras: PPC update for thread-safe page table handling - Ingo Molnar: x86 PAE update for thread-safe page table handling - Jeff Garzik: network driver updates, i810 rng driver, and "alloc_etherdev()" network driver insert race condition fix. - David Miller: UltraSparcIII update, network locking fixes - Al Viro: fix fs counts on mount failure
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/elf.h2
-rw-r--r--include/linux/etherdevice.h21
-rw-r--r--include/linux/ethtool.h14
-rw-r--r--include/linux/fcdevice.h5
-rw-r--r--include/linux/fddidevice.h3
-rw-r--r--include/linux/hippidevice.h4
-rw-r--r--include/linux/if_arp.h4
-rw-r--r--include/linux/netdevice.h7
-rw-r--r--include/linux/pci_ids.h7
-rw-r--r--include/linux/sysctl.h4
-rw-r--r--include/linux/trdevice.h5
11 files changed, 59 insertions, 17 deletions
diff --git a/include/linux/elf.h b/include/linux/elf.h
index 34d8e93ae485..b27c2d43c45e 100644
--- a/include/linux/elf.h
+++ b/include/linux/elf.h
@@ -299,7 +299,7 @@ typedef struct {
#define HWCAP_SPARC_SWAP 4
#define HWCAP_SPARC_MULDIV 8
#define HWCAP_SPARC_V9 16
-
+#define HWCAP_SPARC_ULTRA3 32
/*
* 68k ELF relocation types
diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h
index f4a0a27bbabb..6c72b8d596b6 100644
--- a/include/linux/etherdevice.h
+++ b/include/linux/etherdevice.h
@@ -38,19 +38,28 @@ extern int eth_header_cache(struct neighbour *neigh,
struct hh_cache *hh);
extern int eth_header_parse(struct sk_buff *skb,
unsigned char *haddr);
-extern struct net_device * init_etherdev(struct net_device *, int);
+extern struct net_device *init_etherdev(struct net_device *dev, int sizeof_priv);
+extern struct net_device *alloc_etherdev(int sizeof_priv);
-static __inline__ void eth_copy_and_sum (struct sk_buff *dest, unsigned char *src, int len, int base)
+static inline void eth_copy_and_sum (struct sk_buff *dest, unsigned char *src, int len, int base)
{
memcpy (dest->data, src, len);
}
-/* Check that the ethernet address (MAC) is not 00:00:00:00:00:00 and is not
- * a multicast address. Return true if the address is valid.
+/**
+ * is_valid_ether_addr - Determine if the given Ethernet address is valid
+ * @addr: Pointer to a six-byte array containing the Ethernet address
+ *
+ * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not
+ * a multicast address, and is not FF:FF:FF:FF:FF:FF.
+ *
+ * Return true if the address is valid.
*/
-static __inline__ int is_valid_ether_addr( u8 *addr )
+static inline int is_valid_ether_addr( u8 *addr )
{
- return !(addr[0]&1) && memcmp( addr, "\0\0\0\0\0\0", 6);
+ const char zaddr[6] = {0,};
+
+ return !(addr[0]&1) && memcmp( addr, zaddr, 6);
}
#endif
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 384171b3f6eb..c1106729db92 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -24,10 +24,22 @@ struct ethtool_cmd {
u32 reserved[4];
};
+/* these strings are set to whatever the driver author decides... */
+struct ethtool_drvinfo {
+ u32 cmd;
+ char driver[32]; /* driver short name, "tulip", "eepro100" */
+ char version[32]; /* driver version string */
+ char fw_version[32]; /* firmware version string, if applicable */
+ char bus_info[32]; /* Bus info for this interface. For PCI
+ * devices, use pci_dev->slot_name. */
+ char reserved1[32];
+ char reserved2[32];
+};
/* CMDs currently supported */
-#define ETHTOOL_GSET 0x00000001 /* Get settings, non-privileged. */
+#define ETHTOOL_GSET 0x00000001 /* Get settings. */
#define ETHTOOL_SSET 0x00000002 /* Set settings, privileged. */
+#define ETHTOOL_GDRVINFO 0x00000003 /* Get driver info. */
/* compatibility with older code */
#define SPARC_ETH_GSET ETHTOOL_GSET
diff --git a/include/linux/fcdevice.h b/include/linux/fcdevice.h
index c63d03bc11d0..25687bb17c70 100644
--- a/include/linux/fcdevice.h
+++ b/include/linux/fcdevice.h
@@ -33,7 +33,10 @@ extern int fc_header(struct sk_buff *skb, struct net_device *dev,
extern int fc_rebuild_header(struct sk_buff *skb);
//extern unsigned short fc_type_trans(struct sk_buff *skb, struct net_device *dev);
-extern struct net_device * init_fcdev(struct net_device *, int);
+extern struct net_device *init_fcdev(struct net_device *dev, int sizeof_priv);
+extern struct net_device *alloc_fcdev(int sizeof_priv);
+extern int register_fcdev(struct net_device *dev);
+extern void unregister_fcdev(struct net_device *dev);
#endif
diff --git a/include/linux/fddidevice.h b/include/linux/fddidevice.h
index 79f92ff1792a..83815ec9faa0 100644
--- a/include/linux/fddidevice.h
+++ b/include/linux/fddidevice.h
@@ -34,7 +34,8 @@ extern int fddi_header(struct sk_buff *skb,
extern int fddi_rebuild_header(struct sk_buff *skb);
extern unsigned short fddi_type_trans(struct sk_buff *skb,
struct net_device *dev);
-extern struct net_device * init_fddidev(struct net_device *, int);
+extern struct net_device *init_fddidev(struct net_device *dev, int sizeof_priv);
+extern struct net_device *alloc_fddidev(int sizeof_priv);
#endif
#endif /* _LINUX_FDDIDEVICE_H */
diff --git a/include/linux/hippidevice.h b/include/linux/hippidevice.h
index 7e57075f8872..70524a3a9014 100644
--- a/include/linux/hippidevice.h
+++ b/include/linux/hippidevice.h
@@ -51,7 +51,9 @@ extern int hippi_header_parse(struct sk_buff *skb, unsigned char *haddr);
extern void hippi_net_init(void);
void hippi_setup(struct net_device *dev);
-extern struct net_device *init_hippi_dev(struct net_device *, int);
+extern struct net_device *init_hippi_dev(struct net_device *dev, int sizeof_priv);
+extern struct net_device *alloc_hippi_dev(int sizeof_priv);
+extern int register_hipdev(struct net_device *dev);
extern void unregister_hipdev(struct net_device *dev);
#endif
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h
index a1f424cff3db..396dbb550441 100644
--- a/include/linux/if_arp.h
+++ b/include/linux/if_arp.h
@@ -50,9 +50,11 @@
#define ARPHRD_X25 271 /* CCITT X.25 */
#define ARPHRD_HWX25 272 /* Boards with X.25 in firmware */
#define ARPHRD_PPP 512
-#define ARPHRD_HDLC 513 /* (Cisco) HDLC */
+#define ARPHRD_CISCO 513 /* Cisco HDLC */
+#define ARPHRD_HDLC ARPHRD_CISCO
#define ARPHRD_LAPB 516 /* LAPB */
#define ARPHRD_DDCMP 517 /* Digital's DDCMP protocol */
+#define ARPHRD_RAWHDLC 518 /* Raw HDLC */
#define ARPHRD_TUNNEL 768 /* IPIP tunnel */
#define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel */
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 420ea0cc51f3..011caf23d152 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -41,6 +41,9 @@
struct divert_blk;
+#define HAVE_ALLOC_NETDEV /* feature macro: alloc_xxxdev
+ functions are available. */
+
#define NET_XMIT_SUCCESS 0
#define NET_XMIT_DROP 1 /* skb dropped */
#define NET_XMIT_CN 2 /* congestion notification */
@@ -633,10 +636,6 @@ extern void fc_freedev(struct net_device *dev);
/* Support for loadable net-drivers */
extern int register_netdev(struct net_device *dev);
extern void unregister_netdev(struct net_device *dev);
-extern int register_trdev(struct net_device *dev);
-extern void unregister_trdev(struct net_device *dev);
-extern int register_fcdev(struct net_device *dev);
-extern void unregister_fcdev(struct net_device *dev);
/* Functions used for multicast support */
extern void dev_mc_upload(struct net_device *dev);
extern int dev_mc_delete(struct net_device *dev, void *addr, int alen, int all);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index 25e75cf65724..6cb093241600 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -562,9 +562,16 @@
#define PCI_VENDOR_ID_SUN 0x108e
#define PCI_DEVICE_ID_SUN_EBUS 0x1000
#define PCI_DEVICE_ID_SUN_HAPPYMEAL 0x1001
+#define PCI_DEVICE_ID_SUN_RIO_EBUS 0x1100
+#define PCI_DEVICE_ID_SUN_RIO_GEM 0x1101
+#define PCI_DEVICE_ID_SUN_RIO_1394 0x1102
+#define PCI_DEVICE_ID_SUN_RIO_USB 0x1103
+#define PCI_DEVICE_ID_SUN_GEM 0x2bad
#define PCI_DEVICE_ID_SUN_SIMBA 0x5000
#define PCI_DEVICE_ID_SUN_PBM 0x8000
+#define PCI_DEVICE_ID_SUN_SCHIZO 0x8001
#define PCI_DEVICE_ID_SUN_SABRE 0xa000
+#define PCI_DEVICE_ID_SUN_HUMMINGBIRD 0xa001
#define PCI_VENDOR_ID_CMD 0x1095
#define PCI_DEVICE_ID_CMD_640 0x0640
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 07f2c83e99f0..cbfaafbfe5a1 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -378,6 +378,10 @@ enum {
};
/* /proc/sys/net/ipx */
+enum {
+ NET_IPX_PPROP_BROADCASTING=1,
+ NET_IPX_FORWARDING=2
+};
/* /proc/sys/net/appletalk */
diff --git a/include/linux/trdevice.h b/include/linux/trdevice.h
index a70f27946add..f91119ab066d 100644
--- a/include/linux/trdevice.h
+++ b/include/linux/trdevice.h
@@ -33,7 +33,10 @@ extern int tr_header(struct sk_buff *skb, struct net_device *dev,
void *saddr, unsigned len);
extern int tr_rebuild_header(struct sk_buff *skb);
extern unsigned short tr_type_trans(struct sk_buff *skb, struct net_device *dev);
-extern struct net_device * init_trdev(struct net_device *, int);
+extern struct net_device *init_trdev(struct net_device *dev, int sizeof_priv);
+extern struct net_device *alloc_trdev(int sizeof_priv);
+extern int register_trdev(struct net_device *dev);
+extern void unregister_trdev(struct net_device *dev);
#endif