diff options
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 70 |
1 files changed, 28 insertions, 42 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 8018f6bf3051..17e95e37aed9 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -162,42 +162,32 @@ static inline bool dev_xmit_complete(int rc) | |||
162 | /* | 162 | /* |
163 | * Old network device statistics. Fields are native words | 163 | * Old network device statistics. Fields are native words |
164 | * (unsigned long) so they can be read and written atomically. | 164 | * (unsigned long) so they can be read and written atomically. |
165 | * Each field is padded to 64 bits for compatibility with | ||
166 | * rtnl_link_stats64. | ||
167 | */ | 165 | */ |
168 | 166 | ||
169 | #if BITS_PER_LONG == 64 | ||
170 | #define NET_DEVICE_STATS_DEFINE(name) unsigned long name | ||
171 | #elif defined(__LITTLE_ENDIAN) | ||
172 | #define NET_DEVICE_STATS_DEFINE(name) unsigned long name, pad_ ## name | ||
173 | #else | ||
174 | #define NET_DEVICE_STATS_DEFINE(name) unsigned long pad_ ## name, name | ||
175 | #endif | ||
176 | |||
177 | struct net_device_stats { | 167 | struct net_device_stats { |
178 | NET_DEVICE_STATS_DEFINE(rx_packets); | 168 | unsigned long rx_packets; |
179 | NET_DEVICE_STATS_DEFINE(tx_packets); | 169 | unsigned long tx_packets; |
180 | NET_DEVICE_STATS_DEFINE(rx_bytes); | 170 | unsigned long rx_bytes; |
181 | NET_DEVICE_STATS_DEFINE(tx_bytes); | 171 | unsigned long tx_bytes; |
182 | NET_DEVICE_STATS_DEFINE(rx_errors); | 172 | unsigned long rx_errors; |
183 | NET_DEVICE_STATS_DEFINE(tx_errors); | 173 | unsigned long tx_errors; |
184 | NET_DEVICE_STATS_DEFINE(rx_dropped); | 174 | unsigned long rx_dropped; |
185 | NET_DEVICE_STATS_DEFINE(tx_dropped); | 175 | unsigned long tx_dropped; |
186 | NET_DEVICE_STATS_DEFINE(multicast); | 176 | unsigned long multicast; |
187 | NET_DEVICE_STATS_DEFINE(collisions); | 177 | unsigned long collisions; |
188 | NET_DEVICE_STATS_DEFINE(rx_length_errors); | 178 | unsigned long rx_length_errors; |
189 | NET_DEVICE_STATS_DEFINE(rx_over_errors); | 179 | unsigned long rx_over_errors; |
190 | NET_DEVICE_STATS_DEFINE(rx_crc_errors); | 180 | unsigned long rx_crc_errors; |
191 | NET_DEVICE_STATS_DEFINE(rx_frame_errors); | 181 | unsigned long rx_frame_errors; |
192 | NET_DEVICE_STATS_DEFINE(rx_fifo_errors); | 182 | unsigned long rx_fifo_errors; |
193 | NET_DEVICE_STATS_DEFINE(rx_missed_errors); | 183 | unsigned long rx_missed_errors; |
194 | NET_DEVICE_STATS_DEFINE(tx_aborted_errors); | 184 | unsigned long tx_aborted_errors; |
195 | NET_DEVICE_STATS_DEFINE(tx_carrier_errors); | 185 | unsigned long tx_carrier_errors; |
196 | NET_DEVICE_STATS_DEFINE(tx_fifo_errors); | 186 | unsigned long tx_fifo_errors; |
197 | NET_DEVICE_STATS_DEFINE(tx_heartbeat_errors); | 187 | unsigned long tx_heartbeat_errors; |
198 | NET_DEVICE_STATS_DEFINE(tx_window_errors); | 188 | unsigned long tx_window_errors; |
199 | NET_DEVICE_STATS_DEFINE(rx_compressed); | 189 | unsigned long rx_compressed; |
200 | NET_DEVICE_STATS_DEFINE(tx_compressed); | 190 | unsigned long tx_compressed; |
201 | }; | 191 | }; |
202 | 192 | ||
203 | #endif /* __KERNEL__ */ | 193 | #endif /* __KERNEL__ */ |
@@ -666,14 +656,13 @@ struct netdev_rx_queue { | |||
666 | * Callback uses when the transmitter has not made any progress | 656 | * Callback uses when the transmitter has not made any progress |
667 | * for dev->watchdog ticks. | 657 | * for dev->watchdog ticks. |
668 | * | 658 | * |
669 | * struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev | 659 | * struct rtnl_link_stats64* (*ndo_get_stats64)(struct net_device *dev, |
670 | * struct rtnl_link_stats64 *storage); | 660 | * struct rtnl_link_stats64 *storage); |
671 | * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev); | 661 | * struct net_device_stats* (*ndo_get_stats)(struct net_device *dev); |
672 | * Called when a user wants to get the network device usage | 662 | * Called when a user wants to get the network device usage |
673 | * statistics. Drivers must do one of the following: | 663 | * statistics. Drivers must do one of the following: |
674 | * 1. Define @ndo_get_stats64 to update a rtnl_link_stats64 structure | 664 | * 1. Define @ndo_get_stats64 to fill in a zero-initialised |
675 | * (which should normally be dev->stats64) and return a ponter to | 665 | * rtnl_link_stats64 structure passed by the caller. |
676 | * it. The structure must not be changed asynchronously. | ||
677 | * 2. Define @ndo_get_stats to update a net_device_stats structure | 666 | * 2. Define @ndo_get_stats to update a net_device_stats structure |
678 | * (which should normally be dev->stats) and return a pointer to | 667 | * (which should normally be dev->stats) and return a pointer to |
679 | * it. The structure may be changed asynchronously only if each | 668 | * it. The structure may be changed asynchronously only if each |
@@ -888,10 +877,7 @@ struct net_device { | |||
888 | int ifindex; | 877 | int ifindex; |
889 | int iflink; | 878 | int iflink; |
890 | 879 | ||
891 | union { | 880 | struct net_device_stats stats; |
892 | struct rtnl_link_stats64 stats64; | ||
893 | struct net_device_stats stats; | ||
894 | }; | ||
895 | 881 | ||
896 | #ifdef CONFIG_WIRELESS_EXT | 882 | #ifdef CONFIG_WIRELESS_EXT |
897 | /* List of functions to handle Wireless Extensions (instead of ioctl). | 883 | /* List of functions to handle Wireless Extensions (instead of ioctl). |
@@ -2147,7 +2133,7 @@ extern void dev_mcast_init(void); | |||
2147 | extern const struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, | 2133 | extern const struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, |
2148 | struct rtnl_link_stats64 *storage); | 2134 | struct rtnl_link_stats64 *storage); |
2149 | extern void dev_txq_stats_fold(const struct net_device *dev, | 2135 | extern void dev_txq_stats_fold(const struct net_device *dev, |
2150 | struct net_device_stats *stats); | 2136 | struct rtnl_link_stats64 *stats); |
2151 | 2137 | ||
2152 | extern int netdev_max_backlog; | 2138 | extern int netdev_max_backlog; |
2153 | extern int netdev_tstamp_prequeue; | 2139 | extern int netdev_tstamp_prequeue; |