diff options
author | David S. Miller <davem@davemloft.net> | 2013-09-30 15:36:45 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-09-30 15:36:45 -0400 |
commit | cb178190ab7d9c9b9fb90e36488ebd26ca004d32 (patch) | |
tree | b2c7b9d6dda5600df21bb109eb7616b89039629d /include/linux/netdevice.h | |
parent | 7b77d161ce7e480a660692cab079712fc0268ba2 (diff) | |
parent | f629d208d27a22f495b7734eede585b5d207e912 (diff) |
Merge branch '20130926_include_linux_networking_externs' of git://repo.or.cz/linux-2.6/trivial-mods
Conflicts:
include/linux/netdevice.h
More extern removals from Joe Perches.
Minor conflict with the dev_notify_flags changes which added a new
argument to __dev_notify_flags().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux/netdevice.h')
-rw-r--r-- | include/linux/netdevice.h | 435 |
1 files changed, 209 insertions, 226 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index f44f99a69977..f5cd464271bf 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -60,8 +60,8 @@ struct wireless_dev; | |||
60 | #define SET_ETHTOOL_OPS(netdev,ops) \ | 60 | #define SET_ETHTOOL_OPS(netdev,ops) \ |
61 | ( (netdev)->ethtool_ops = (ops) ) | 61 | ( (netdev)->ethtool_ops = (ops) ) |
62 | 62 | ||
63 | extern void netdev_set_default_ethtool_ops(struct net_device *dev, | 63 | void netdev_set_default_ethtool_ops(struct net_device *dev, |
64 | const struct ethtool_ops *ops); | 64 | const struct ethtool_ops *ops); |
65 | 65 | ||
66 | /* hardware address assignment types */ | 66 | /* hardware address assignment types */ |
67 | #define NET_ADDR_PERM 0 /* address is permanent (default) */ | 67 | #define NET_ADDR_PERM 0 /* address is permanent (default) */ |
@@ -298,7 +298,7 @@ struct netdev_boot_setup { | |||
298 | }; | 298 | }; |
299 | #define NETDEV_BOOT_SETUP_MAX 8 | 299 | #define NETDEV_BOOT_SETUP_MAX 8 |
300 | 300 | ||
301 | extern int __init netdev_boot_setup(char *str); | 301 | int __init netdev_boot_setup(char *str); |
302 | 302 | ||
303 | /* | 303 | /* |
304 | * Structure for NAPI scheduling similar to tasklet but with weighting | 304 | * Structure for NAPI scheduling similar to tasklet but with weighting |
@@ -394,7 +394,7 @@ enum rx_handler_result { | |||
394 | typedef enum rx_handler_result rx_handler_result_t; | 394 | typedef enum rx_handler_result rx_handler_result_t; |
395 | typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb); | 395 | typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb); |
396 | 396 | ||
397 | extern void __napi_schedule(struct napi_struct *n); | 397 | void __napi_schedule(struct napi_struct *n); |
398 | 398 | ||
399 | static inline bool napi_disable_pending(struct napi_struct *n) | 399 | static inline bool napi_disable_pending(struct napi_struct *n) |
400 | { | 400 | { |
@@ -445,8 +445,8 @@ static inline bool napi_reschedule(struct napi_struct *napi) | |||
445 | * | 445 | * |
446 | * Mark NAPI processing as complete. | 446 | * Mark NAPI processing as complete. |
447 | */ | 447 | */ |
448 | extern void __napi_complete(struct napi_struct *n); | 448 | void __napi_complete(struct napi_struct *n); |
449 | extern void napi_complete(struct napi_struct *n); | 449 | void napi_complete(struct napi_struct *n); |
450 | 450 | ||
451 | /** | 451 | /** |
452 | * napi_by_id - lookup a NAPI by napi_id | 452 | * napi_by_id - lookup a NAPI by napi_id |
@@ -455,7 +455,7 @@ extern void napi_complete(struct napi_struct *n); | |||
455 | * lookup @napi_id in napi_hash table | 455 | * lookup @napi_id in napi_hash table |
456 | * must be called under rcu_read_lock() | 456 | * must be called under rcu_read_lock() |
457 | */ | 457 | */ |
458 | extern struct napi_struct *napi_by_id(unsigned int napi_id); | 458 | struct napi_struct *napi_by_id(unsigned int napi_id); |
459 | 459 | ||
460 | /** | 460 | /** |
461 | * napi_hash_add - add a NAPI to global hashtable | 461 | * napi_hash_add - add a NAPI to global hashtable |
@@ -463,7 +463,7 @@ extern struct napi_struct *napi_by_id(unsigned int napi_id); | |||
463 | * | 463 | * |
464 | * generate a new napi_id and store a @napi under it in napi_hash | 464 | * generate a new napi_id and store a @napi under it in napi_hash |
465 | */ | 465 | */ |
466 | extern void napi_hash_add(struct napi_struct *napi); | 466 | void napi_hash_add(struct napi_struct *napi); |
467 | 467 | ||
468 | /** | 468 | /** |
469 | * napi_hash_del - remove a NAPI from global table | 469 | * napi_hash_del - remove a NAPI from global table |
@@ -472,7 +472,7 @@ extern void napi_hash_add(struct napi_struct *napi); | |||
472 | * Warning: caller must observe rcu grace period | 472 | * Warning: caller must observe rcu grace period |
473 | * before freeing memory containing @napi | 473 | * before freeing memory containing @napi |
474 | */ | 474 | */ |
475 | extern void napi_hash_del(struct napi_struct *napi); | 475 | void napi_hash_del(struct napi_struct *napi); |
476 | 476 | ||
477 | /** | 477 | /** |
478 | * napi_disable - prevent NAPI from scheduling | 478 | * napi_disable - prevent NAPI from scheduling |
@@ -664,8 +664,8 @@ static inline void rps_reset_sock_flow(struct rps_sock_flow_table *table, | |||
664 | extern struct rps_sock_flow_table __rcu *rps_sock_flow_table; | 664 | extern struct rps_sock_flow_table __rcu *rps_sock_flow_table; |
665 | 665 | ||
666 | #ifdef CONFIG_RFS_ACCEL | 666 | #ifdef CONFIG_RFS_ACCEL |
667 | extern bool rps_may_expire_flow(struct net_device *dev, u16 rxq_index, | 667 | bool rps_may_expire_flow(struct net_device *dev, u16 rxq_index, u32 flow_id, |
668 | u32 flow_id, u16 filter_id); | 668 | u16 filter_id); |
669 | #endif | 669 | #endif |
670 | 670 | ||
671 | /* This structure contains an instance of an RX queue. */ | 671 | /* This structure contains an instance of an RX queue. */ |
@@ -1497,9 +1497,9 @@ static inline void netdev_for_each_tx_queue(struct net_device *dev, | |||
1497 | f(dev, &dev->_tx[i], arg); | 1497 | f(dev, &dev->_tx[i], arg); |
1498 | } | 1498 | } |
1499 | 1499 | ||
1500 | extern struct netdev_queue *netdev_pick_tx(struct net_device *dev, | 1500 | struct netdev_queue *netdev_pick_tx(struct net_device *dev, |
1501 | struct sk_buff *skb); | 1501 | struct sk_buff *skb); |
1502 | extern u16 __netdev_pick_tx(struct net_device *dev, struct sk_buff *skb); | 1502 | u16 __netdev_pick_tx(struct net_device *dev, struct sk_buff *skb); |
1503 | 1503 | ||
1504 | /* | 1504 | /* |
1505 | * Net namespace inlines | 1505 | * Net namespace inlines |
@@ -1683,8 +1683,8 @@ struct packet_offload { | |||
1683 | #define NETDEV_CHANGEUPPER 0x0015 | 1683 | #define NETDEV_CHANGEUPPER 0x0015 |
1684 | #define NETDEV_RESEND_IGMP 0x0016 | 1684 | #define NETDEV_RESEND_IGMP 0x0016 |
1685 | 1685 | ||
1686 | extern int register_netdevice_notifier(struct notifier_block *nb); | 1686 | int register_netdevice_notifier(struct notifier_block *nb); |
1687 | extern int unregister_netdevice_notifier(struct notifier_block *nb); | 1687 | int unregister_netdevice_notifier(struct notifier_block *nb); |
1688 | 1688 | ||
1689 | struct netdev_notifier_info { | 1689 | struct netdev_notifier_info { |
1690 | struct net_device *dev; | 1690 | struct net_device *dev; |
@@ -1707,9 +1707,9 @@ netdev_notifier_info_to_dev(const struct netdev_notifier_info *info) | |||
1707 | return info->dev; | 1707 | return info->dev; |
1708 | } | 1708 | } |
1709 | 1709 | ||
1710 | extern int call_netdevice_notifiers_info(unsigned long val, struct net_device *dev, | 1710 | int call_netdevice_notifiers_info(unsigned long val, struct net_device *dev, |
1711 | struct netdev_notifier_info *info); | 1711 | struct netdev_notifier_info *info); |
1712 | extern int call_netdevice_notifiers(unsigned long val, struct net_device *dev); | 1712 | int call_netdevice_notifiers(unsigned long val, struct net_device *dev); |
1713 | 1713 | ||
1714 | 1714 | ||
1715 | extern rwlock_t dev_base_lock; /* Device list lock */ | 1715 | extern rwlock_t dev_base_lock; /* Device list lock */ |
@@ -1764,54 +1764,52 @@ static inline struct net_device *first_net_device_rcu(struct net *net) | |||
1764 | return lh == &net->dev_base_head ? NULL : net_device_entry(lh); | 1764 | return lh == &net->dev_base_head ? NULL : net_device_entry(lh); |
1765 | } | 1765 | } |
1766 | 1766 | ||
1767 | extern int netdev_boot_setup_check(struct net_device *dev); | 1767 | int netdev_boot_setup_check(struct net_device *dev); |
1768 | extern unsigned long netdev_boot_base(const char *prefix, int unit); | 1768 | unsigned long netdev_boot_base(const char *prefix, int unit); |
1769 | extern struct net_device *dev_getbyhwaddr_rcu(struct net *net, unsigned short type, | 1769 | struct net_device *dev_getbyhwaddr_rcu(struct net *net, unsigned short type, |
1770 | const char *hwaddr); | 1770 | const char *hwaddr); |
1771 | extern struct net_device *dev_getfirstbyhwtype(struct net *net, unsigned short type); | 1771 | struct net_device *dev_getfirstbyhwtype(struct net *net, unsigned short type); |
1772 | extern struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type); | 1772 | struct net_device *__dev_getfirstbyhwtype(struct net *net, unsigned short type); |
1773 | extern void dev_add_pack(struct packet_type *pt); | 1773 | void dev_add_pack(struct packet_type *pt); |
1774 | extern void dev_remove_pack(struct packet_type *pt); | 1774 | void dev_remove_pack(struct packet_type *pt); |
1775 | extern void __dev_remove_pack(struct packet_type *pt); | 1775 | void __dev_remove_pack(struct packet_type *pt); |
1776 | extern void dev_add_offload(struct packet_offload *po); | 1776 | void dev_add_offload(struct packet_offload *po); |
1777 | extern void dev_remove_offload(struct packet_offload *po); | 1777 | void dev_remove_offload(struct packet_offload *po); |
1778 | extern void __dev_remove_offload(struct packet_offload *po); | 1778 | void __dev_remove_offload(struct packet_offload *po); |
1779 | 1779 | ||
1780 | extern struct net_device *dev_get_by_flags_rcu(struct net *net, unsigned short flags, | 1780 | struct net_device *dev_get_by_flags_rcu(struct net *net, unsigned short flags, |
1781 | unsigned short mask); | 1781 | unsigned short mask); |
1782 | extern struct net_device *dev_get_by_name(struct net *net, const char *name); | 1782 | struct net_device *dev_get_by_name(struct net *net, const char *name); |
1783 | extern struct net_device *dev_get_by_name_rcu(struct net *net, const char *name); | 1783 | struct net_device *dev_get_by_name_rcu(struct net *net, const char *name); |
1784 | extern struct net_device *__dev_get_by_name(struct net *net, const char *name); | 1784 | struct net_device *__dev_get_by_name(struct net *net, const char *name); |
1785 | extern int dev_alloc_name(struct net_device *dev, const char *name); | 1785 | int dev_alloc_name(struct net_device *dev, const char *name); |
1786 | extern int dev_open(struct net_device *dev); | 1786 | int dev_open(struct net_device *dev); |
1787 | extern int dev_close(struct net_device *dev); | 1787 | int dev_close(struct net_device *dev); |
1788 | extern void dev_disable_lro(struct net_device *dev); | 1788 | void dev_disable_lro(struct net_device *dev); |
1789 | extern int dev_loopback_xmit(struct sk_buff *newskb); | 1789 | int dev_loopback_xmit(struct sk_buff *newskb); |
1790 | extern int dev_queue_xmit(struct sk_buff *skb); | 1790 | int dev_queue_xmit(struct sk_buff *skb); |
1791 | extern int register_netdevice(struct net_device *dev); | 1791 | int register_netdevice(struct net_device *dev); |
1792 | extern void unregister_netdevice_queue(struct net_device *dev, | 1792 | void unregister_netdevice_queue(struct net_device *dev, struct list_head *head); |
1793 | struct list_head *head); | 1793 | void unregister_netdevice_many(struct list_head *head); |
1794 | extern void unregister_netdevice_many(struct list_head *head); | ||
1795 | static inline void unregister_netdevice(struct net_device *dev) | 1794 | static inline void unregister_netdevice(struct net_device *dev) |
1796 | { | 1795 | { |
1797 | unregister_netdevice_queue(dev, NULL); | 1796 | unregister_netdevice_queue(dev, NULL); |
1798 | } | 1797 | } |
1799 | 1798 | ||
1800 | extern int netdev_refcnt_read(const struct net_device *dev); | 1799 | int netdev_refcnt_read(const struct net_device *dev); |
1801 | extern void free_netdev(struct net_device *dev); | 1800 | void free_netdev(struct net_device *dev); |
1802 | extern void synchronize_net(void); | 1801 | void synchronize_net(void); |
1803 | extern int init_dummy_netdev(struct net_device *dev); | 1802 | int init_dummy_netdev(struct net_device *dev); |
1804 | 1803 | ||
1805 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); | 1804 | struct net_device *dev_get_by_index(struct net *net, int ifindex); |
1806 | extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); | 1805 | struct net_device *__dev_get_by_index(struct net *net, int ifindex); |
1807 | extern struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); | 1806 | struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); |
1808 | extern int netdev_get_name(struct net *net, char *name, int ifindex); | 1807 | int netdev_get_name(struct net *net, char *name, int ifindex); |
1809 | extern int dev_restart(struct net_device *dev); | 1808 | int dev_restart(struct net_device *dev); |
1810 | #ifdef CONFIG_NETPOLL_TRAP | 1809 | #ifdef CONFIG_NETPOLL_TRAP |
1811 | extern int netpoll_trap(void); | 1810 | int netpoll_trap(void); |
1812 | #endif | 1811 | #endif |
1813 | extern int skb_gro_receive(struct sk_buff **head, | 1812 | int skb_gro_receive(struct sk_buff **head, struct sk_buff *skb); |
1814 | struct sk_buff *skb); | ||
1815 | 1813 | ||
1816 | static inline unsigned int skb_gro_offset(const struct sk_buff *skb) | 1814 | static inline unsigned int skb_gro_offset(const struct sk_buff *skb) |
1817 | { | 1815 | { |
@@ -1883,7 +1881,7 @@ static inline int dev_parse_header(const struct sk_buff *skb, | |||
1883 | } | 1881 | } |
1884 | 1882 | ||
1885 | typedef int gifconf_func_t(struct net_device * dev, char __user * bufptr, int len); | 1883 | typedef int gifconf_func_t(struct net_device * dev, char __user * bufptr, int len); |
1886 | extern int register_gifconf(unsigned int family, gifconf_func_t * gifconf); | 1884 | int register_gifconf(unsigned int family, gifconf_func_t *gifconf); |
1887 | static inline int unregister_gifconf(unsigned int family) | 1885 | static inline int unregister_gifconf(unsigned int family) |
1888 | { | 1886 | { |
1889 | return register_gifconf(family, NULL); | 1887 | return register_gifconf(family, NULL); |
@@ -1954,7 +1952,7 @@ static inline void input_queue_tail_incr_save(struct softnet_data *sd, | |||
1954 | 1952 | ||
1955 | DECLARE_PER_CPU_ALIGNED(struct softnet_data, softnet_data); | 1953 | DECLARE_PER_CPU_ALIGNED(struct softnet_data, softnet_data); |
1956 | 1954 | ||
1957 | extern void __netif_schedule(struct Qdisc *q); | 1955 | void __netif_schedule(struct Qdisc *q); |
1958 | 1956 | ||
1959 | static inline void netif_schedule_queue(struct netdev_queue *txq) | 1957 | static inline void netif_schedule_queue(struct netdev_queue *txq) |
1960 | { | 1958 | { |
@@ -2274,8 +2272,8 @@ static inline void netif_wake_subqueue(struct net_device *dev, u16 queue_index) | |||
2274 | } | 2272 | } |
2275 | 2273 | ||
2276 | #ifdef CONFIG_XPS | 2274 | #ifdef CONFIG_XPS |
2277 | extern int netif_set_xps_queue(struct net_device *dev, struct cpumask *mask, | 2275 | int netif_set_xps_queue(struct net_device *dev, struct cpumask *mask, |
2278 | u16 index); | 2276 | u16 index); |
2279 | #else | 2277 | #else |
2280 | static inline int netif_set_xps_queue(struct net_device *dev, | 2278 | static inline int netif_set_xps_queue(struct net_device *dev, |
2281 | struct cpumask *mask, | 2279 | struct cpumask *mask, |
@@ -2306,12 +2304,10 @@ static inline bool netif_is_multiqueue(const struct net_device *dev) | |||
2306 | return dev->num_tx_queues > 1; | 2304 | return dev->num_tx_queues > 1; |
2307 | } | 2305 | } |
2308 | 2306 | ||
2309 | extern int netif_set_real_num_tx_queues(struct net_device *dev, | 2307 | int netif_set_real_num_tx_queues(struct net_device *dev, unsigned int txq); |
2310 | unsigned int txq); | ||
2311 | 2308 | ||
2312 | #ifdef CONFIG_RPS | 2309 | #ifdef CONFIG_RPS |
2313 | extern int netif_set_real_num_rx_queues(struct net_device *dev, | 2310 | int netif_set_real_num_rx_queues(struct net_device *dev, unsigned int rxq); |
2314 | unsigned int rxq); | ||
2315 | #else | 2311 | #else |
2316 | static inline int netif_set_real_num_rx_queues(struct net_device *dev, | 2312 | static inline int netif_set_real_num_rx_queues(struct net_device *dev, |
2317 | unsigned int rxq) | 2313 | unsigned int rxq) |
@@ -2338,28 +2334,27 @@ static inline int netif_copy_real_num_queues(struct net_device *to_dev, | |||
2338 | } | 2334 | } |
2339 | 2335 | ||
2340 | #define DEFAULT_MAX_NUM_RSS_QUEUES (8) | 2336 | #define DEFAULT_MAX_NUM_RSS_QUEUES (8) |
2341 | extern int netif_get_num_default_rss_queues(void); | 2337 | int netif_get_num_default_rss_queues(void); |
2342 | 2338 | ||
2343 | /* Use this variant when it is known for sure that it | 2339 | /* Use this variant when it is known for sure that it |
2344 | * is executing from hardware interrupt context or with hardware interrupts | 2340 | * is executing from hardware interrupt context or with hardware interrupts |
2345 | * disabled. | 2341 | * disabled. |
2346 | */ | 2342 | */ |
2347 | extern void dev_kfree_skb_irq(struct sk_buff *skb); | 2343 | void dev_kfree_skb_irq(struct sk_buff *skb); |
2348 | 2344 | ||
2349 | /* Use this variant in places where it could be invoked | 2345 | /* Use this variant in places where it could be invoked |
2350 | * from either hardware interrupt or other context, with hardware interrupts | 2346 | * from either hardware interrupt or other context, with hardware interrupts |
2351 | * either disabled or enabled. | 2347 | * either disabled or enabled. |
2352 | */ | 2348 | */ |
2353 | extern void dev_kfree_skb_any(struct sk_buff *skb); | 2349 | void dev_kfree_skb_any(struct sk_buff *skb); |
2354 | 2350 | ||
2355 | extern int netif_rx(struct sk_buff *skb); | 2351 | int netif_rx(struct sk_buff *skb); |
2356 | extern int netif_rx_ni(struct sk_buff *skb); | 2352 | int netif_rx_ni(struct sk_buff *skb); |
2357 | extern int netif_receive_skb(struct sk_buff *skb); | 2353 | int netif_receive_skb(struct sk_buff *skb); |
2358 | extern gro_result_t napi_gro_receive(struct napi_struct *napi, | 2354 | gro_result_t napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb); |
2359 | struct sk_buff *skb); | 2355 | void napi_gro_flush(struct napi_struct *napi, bool flush_old); |
2360 | extern void napi_gro_flush(struct napi_struct *napi, bool flush_old); | 2356 | struct sk_buff *napi_get_frags(struct napi_struct *napi); |
2361 | extern struct sk_buff * napi_get_frags(struct napi_struct *napi); | 2357 | gro_result_t napi_gro_frags(struct napi_struct *napi); |
2362 | extern gro_result_t napi_gro_frags(struct napi_struct *napi); | ||
2363 | 2358 | ||
2364 | static inline void napi_free_frags(struct napi_struct *napi) | 2359 | static inline void napi_free_frags(struct napi_struct *napi) |
2365 | { | 2360 | { |
@@ -2367,42 +2362,36 @@ static inline void napi_free_frags(struct napi_struct *napi) | |||
2367 | napi->skb = NULL; | 2362 | napi->skb = NULL; |
2368 | } | 2363 | } |
2369 | 2364 | ||
2370 | extern int netdev_rx_handler_register(struct net_device *dev, | 2365 | int netdev_rx_handler_register(struct net_device *dev, |
2371 | rx_handler_func_t *rx_handler, | 2366 | rx_handler_func_t *rx_handler, |
2372 | void *rx_handler_data); | 2367 | void *rx_handler_data); |
2373 | extern void netdev_rx_handler_unregister(struct net_device *dev); | 2368 | void netdev_rx_handler_unregister(struct net_device *dev); |
2374 | 2369 | ||
2375 | extern bool dev_valid_name(const char *name); | 2370 | bool dev_valid_name(const char *name); |
2376 | extern int dev_ioctl(struct net *net, unsigned int cmd, void __user *); | 2371 | int dev_ioctl(struct net *net, unsigned int cmd, void __user *); |
2377 | extern int dev_ethtool(struct net *net, struct ifreq *); | 2372 | int dev_ethtool(struct net *net, struct ifreq *); |
2378 | extern unsigned int dev_get_flags(const struct net_device *); | 2373 | unsigned int dev_get_flags(const struct net_device *); |
2379 | extern int __dev_change_flags(struct net_device *, unsigned int flags); | 2374 | int __dev_change_flags(struct net_device *, unsigned int flags); |
2380 | extern int dev_change_flags(struct net_device *, unsigned int); | 2375 | int dev_change_flags(struct net_device *, unsigned int); |
2381 | void __dev_notify_flags(struct net_device *, | 2376 | void __dev_notify_flags(struct net_device *, unsigned int old_flags, |
2382 | unsigned int old_flags, | 2377 | unsigned int gchanges); |
2383 | unsigned int gchanges); | 2378 | int dev_change_name(struct net_device *, const char *); |
2384 | extern int dev_change_name(struct net_device *, const char *); | 2379 | int dev_set_alias(struct net_device *, const char *, size_t); |
2385 | extern int dev_set_alias(struct net_device *, const char *, size_t); | 2380 | int dev_change_net_namespace(struct net_device *, struct net *, const char *); |
2386 | extern int dev_change_net_namespace(struct net_device *, | 2381 | int dev_set_mtu(struct net_device *, int); |
2387 | struct net *, const char *); | 2382 | void dev_set_group(struct net_device *, int); |
2388 | extern int dev_set_mtu(struct net_device *, int); | 2383 | int dev_set_mac_address(struct net_device *, struct sockaddr *); |
2389 | extern void dev_set_group(struct net_device *, int); | 2384 | int dev_change_carrier(struct net_device *, bool new_carrier); |
2390 | extern int dev_set_mac_address(struct net_device *, | 2385 | int dev_get_phys_port_id(struct net_device *dev, |
2391 | struct sockaddr *); | 2386 | struct netdev_phys_port_id *ppid); |
2392 | extern int dev_change_carrier(struct net_device *, | 2387 | int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev, |
2393 | bool new_carrier); | 2388 | struct netdev_queue *txq); |
2394 | extern int dev_get_phys_port_id(struct net_device *dev, | 2389 | int dev_forward_skb(struct net_device *dev, struct sk_buff *skb); |
2395 | struct netdev_phys_port_id *ppid); | ||
2396 | extern int dev_hard_start_xmit(struct sk_buff *skb, | ||
2397 | struct net_device *dev, | ||
2398 | struct netdev_queue *txq); | ||
2399 | extern int dev_forward_skb(struct net_device *dev, | ||
2400 | struct sk_buff *skb); | ||
2401 | 2390 | ||
2402 | extern int netdev_budget; | 2391 | extern int netdev_budget; |
2403 | 2392 | ||
2404 | /* Called by rtnetlink.c:rtnl_unlock() */ | 2393 | /* Called by rtnetlink.c:rtnl_unlock() */ |
2405 | extern void netdev_run_todo(void); | 2394 | void netdev_run_todo(void); |
2406 | 2395 | ||
2407 | /** | 2396 | /** |
2408 | * dev_put - release reference to device | 2397 | * dev_put - release reference to device |
@@ -2435,9 +2424,9 @@ static inline void dev_hold(struct net_device *dev) | |||
2435 | * kind of lower layer not just hardware media. | 2424 | * kind of lower layer not just hardware media. |
2436 | */ | 2425 | */ |
2437 | 2426 | ||
2438 | extern void linkwatch_init_dev(struct net_device *dev); | 2427 | void linkwatch_init_dev(struct net_device *dev); |
2439 | extern void linkwatch_fire_event(struct net_device *dev); | 2428 | void linkwatch_fire_event(struct net_device *dev); |
2440 | extern void linkwatch_forget_dev(struct net_device *dev); | 2429 | void linkwatch_forget_dev(struct net_device *dev); |
2441 | 2430 | ||
2442 | /** | 2431 | /** |
2443 | * netif_carrier_ok - test if carrier present | 2432 | * netif_carrier_ok - test if carrier present |
@@ -2450,13 +2439,13 @@ static inline bool netif_carrier_ok(const struct net_device *dev) | |||
2450 | return !test_bit(__LINK_STATE_NOCARRIER, &dev->state); | 2439 | return !test_bit(__LINK_STATE_NOCARRIER, &dev->state); |
2451 | } | 2440 | } |
2452 | 2441 | ||
2453 | extern unsigned long dev_trans_start(struct net_device *dev); | 2442 | unsigned long dev_trans_start(struct net_device *dev); |
2454 | 2443 | ||
2455 | extern void __netdev_watchdog_up(struct net_device *dev); | 2444 | void __netdev_watchdog_up(struct net_device *dev); |
2456 | 2445 | ||
2457 | extern void netif_carrier_on(struct net_device *dev); | 2446 | void netif_carrier_on(struct net_device *dev); |
2458 | 2447 | ||
2459 | extern void netif_carrier_off(struct net_device *dev); | 2448 | void netif_carrier_off(struct net_device *dev); |
2460 | 2449 | ||
2461 | /** | 2450 | /** |
2462 | * netif_dormant_on - mark device as dormant. | 2451 | * netif_dormant_on - mark device as dormant. |
@@ -2524,9 +2513,9 @@ static inline bool netif_device_present(struct net_device *dev) | |||
2524 | return test_bit(__LINK_STATE_PRESENT, &dev->state); | 2513 | return test_bit(__LINK_STATE_PRESENT, &dev->state); |
2525 | } | 2514 | } |
2526 | 2515 | ||
2527 | extern void netif_device_detach(struct net_device *dev); | 2516 | void netif_device_detach(struct net_device *dev); |
2528 | 2517 | ||
2529 | extern void netif_device_attach(struct net_device *dev); | 2518 | void netif_device_attach(struct net_device *dev); |
2530 | 2519 | ||
2531 | /* | 2520 | /* |
2532 | * Network interface message level settings | 2521 | * Network interface message level settings |
@@ -2735,98 +2724,93 @@ static inline void netif_addr_unlock_bh(struct net_device *dev) | |||
2735 | 2724 | ||
2736 | /* These functions live elsewhere (drivers/net/net_init.c, but related) */ | 2725 | /* These functions live elsewhere (drivers/net/net_init.c, but related) */ |
2737 | 2726 | ||
2738 | extern void ether_setup(struct net_device *dev); | 2727 | void ether_setup(struct net_device *dev); |
2739 | 2728 | ||
2740 | /* Support for loadable net-drivers */ | 2729 | /* Support for loadable net-drivers */ |
2741 | extern struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name, | 2730 | struct net_device *alloc_netdev_mqs(int sizeof_priv, const char *name, |
2742 | void (*setup)(struct net_device *), | 2731 | void (*setup)(struct net_device *), |
2743 | unsigned int txqs, unsigned int rxqs); | 2732 | unsigned int txqs, unsigned int rxqs); |
2744 | #define alloc_netdev(sizeof_priv, name, setup) \ | 2733 | #define alloc_netdev(sizeof_priv, name, setup) \ |
2745 | alloc_netdev_mqs(sizeof_priv, name, setup, 1, 1) | 2734 | alloc_netdev_mqs(sizeof_priv, name, setup, 1, 1) |
2746 | 2735 | ||
2747 | #define alloc_netdev_mq(sizeof_priv, name, setup, count) \ | 2736 | #define alloc_netdev_mq(sizeof_priv, name, setup, count) \ |
2748 | alloc_netdev_mqs(sizeof_priv, name, setup, count, count) | 2737 | alloc_netdev_mqs(sizeof_priv, name, setup, count, count) |
2749 | 2738 | ||
2750 | extern int register_netdev(struct net_device *dev); | 2739 | int register_netdev(struct net_device *dev); |
2751 | extern void unregister_netdev(struct net_device *dev); | 2740 | void unregister_netdev(struct net_device *dev); |
2752 | 2741 | ||
2753 | /* General hardware address lists handling functions */ | 2742 | /* General hardware address lists handling functions */ |
2754 | extern int __hw_addr_add_multiple(struct netdev_hw_addr_list *to_list, | 2743 | int __hw_addr_add_multiple(struct netdev_hw_addr_list *to_list, |
2755 | struct netdev_hw_addr_list *from_list, | 2744 | struct netdev_hw_addr_list *from_list, |
2756 | int addr_len, unsigned char addr_type); | 2745 | int addr_len, unsigned char addr_type); |
2757 | extern void __hw_addr_del_multiple(struct netdev_hw_addr_list *to_list, | 2746 | void __hw_addr_del_multiple(struct netdev_hw_addr_list *to_list, |
2758 | struct netdev_hw_addr_list *from_list, | 2747 | struct netdev_hw_addr_list *from_list, |
2759 | int addr_len, unsigned char addr_type); | 2748 | int addr_len, unsigned char addr_type); |
2760 | extern int __hw_addr_sync(struct netdev_hw_addr_list *to_list, | 2749 | int __hw_addr_sync(struct netdev_hw_addr_list *to_list, |
2761 | struct netdev_hw_addr_list *from_list, | 2750 | struct netdev_hw_addr_list *from_list, int addr_len); |
2762 | int addr_len); | 2751 | void __hw_addr_unsync(struct netdev_hw_addr_list *to_list, |
2763 | extern void __hw_addr_unsync(struct netdev_hw_addr_list *to_list, | 2752 | struct netdev_hw_addr_list *from_list, int addr_len); |
2764 | struct netdev_hw_addr_list *from_list, | 2753 | void __hw_addr_flush(struct netdev_hw_addr_list *list); |
2765 | int addr_len); | 2754 | void __hw_addr_init(struct netdev_hw_addr_list *list); |
2766 | extern void __hw_addr_flush(struct netdev_hw_addr_list *list); | ||
2767 | extern void __hw_addr_init(struct netdev_hw_addr_list *list); | ||
2768 | 2755 | ||
2769 | /* Functions used for device addresses handling */ | 2756 | /* Functions used for device addresses handling */ |
2770 | extern int dev_addr_add(struct net_device *dev, const unsigned char *addr, | 2757 | int dev_addr_add(struct net_device *dev, const unsigned char *addr, |
2771 | unsigned char addr_type); | 2758 | unsigned char addr_type); |
2772 | extern int dev_addr_del(struct net_device *dev, const unsigned char *addr, | 2759 | int dev_addr_del(struct net_device *dev, const unsigned char *addr, |
2773 | unsigned char addr_type); | 2760 | unsigned char addr_type); |
2774 | extern int dev_addr_add_multiple(struct net_device *to_dev, | 2761 | int dev_addr_add_multiple(struct net_device *to_dev, |
2775 | struct net_device *from_dev, | 2762 | struct net_device *from_dev, unsigned char addr_type); |
2776 | unsigned char addr_type); | 2763 | int dev_addr_del_multiple(struct net_device *to_dev, |
2777 | extern int dev_addr_del_multiple(struct net_device *to_dev, | 2764 | struct net_device *from_dev, unsigned char addr_type); |
2778 | struct net_device *from_dev, | 2765 | void dev_addr_flush(struct net_device *dev); |
2779 | unsigned char addr_type); | 2766 | int dev_addr_init(struct net_device *dev); |
2780 | extern void dev_addr_flush(struct net_device *dev); | ||
2781 | extern int dev_addr_init(struct net_device *dev); | ||
2782 | 2767 | ||
2783 | /* Functions used for unicast addresses handling */ | 2768 | /* Functions used for unicast addresses handling */ |
2784 | extern int dev_uc_add(struct net_device *dev, const unsigned char *addr); | 2769 | int dev_uc_add(struct net_device *dev, const unsigned char *addr); |
2785 | extern int dev_uc_add_excl(struct net_device *dev, const unsigned char *addr); | 2770 | int dev_uc_add_excl(struct net_device *dev, const unsigned char *addr); |
2786 | extern int dev_uc_del(struct net_device *dev, const unsigned char *addr); | 2771 | int dev_uc_del(struct net_device *dev, const unsigned char *addr); |
2787 | extern int dev_uc_sync(struct net_device *to, struct net_device *from); | 2772 | int dev_uc_sync(struct net_device *to, struct net_device *from); |
2788 | extern int dev_uc_sync_multiple(struct net_device *to, struct net_device *from); | 2773 | int dev_uc_sync_multiple(struct net_device *to, struct net_device *from); |
2789 | extern void dev_uc_unsync(struct net_device *to, struct net_device *from); | 2774 | void dev_uc_unsync(struct net_device *to, struct net_device *from); |
2790 | extern void dev_uc_flush(struct net_device *dev); | 2775 | void dev_uc_flush(struct net_device *dev); |
2791 | extern void dev_uc_init(struct net_device *dev); | 2776 | void dev_uc_init(struct net_device *dev); |
2792 | 2777 | ||
2793 | /* Functions used for multicast addresses handling */ | 2778 | /* Functions used for multicast addresses handling */ |
2794 | extern int dev_mc_add(struct net_device *dev, const unsigned char *addr); | 2779 | int dev_mc_add(struct net_device *dev, const unsigned char *addr); |
2795 | extern int dev_mc_add_global(struct net_device *dev, const unsigned char *addr); | 2780 | int dev_mc_add_global(struct net_device *dev, const unsigned char *addr); |
2796 | extern int dev_mc_add_excl(struct net_device *dev, const unsigned char *addr); | 2781 | int dev_mc_add_excl(struct net_device *dev, const unsigned char *addr); |
2797 | extern int dev_mc_del(struct net_device *dev, const unsigned char *addr); | 2782 | int dev_mc_del(struct net_device *dev, const unsigned char *addr); |
2798 | extern int dev_mc_del_global(struct net_device *dev, const unsigned char *addr); | 2783 | int dev_mc_del_global(struct net_device *dev, const unsigned char *addr); |
2799 | extern int dev_mc_sync(struct net_device *to, struct net_device *from); | 2784 | int dev_mc_sync(struct net_device *to, struct net_device *from); |
2800 | extern int dev_mc_sync_multiple(struct net_device *to, struct net_device *from); | 2785 | int dev_mc_sync_multiple(struct net_device *to, struct net_device *from); |
2801 | extern void dev_mc_unsync(struct net_device *to, struct net_device *from); | 2786 | void dev_mc_unsync(struct net_device *to, struct net_device *from); |
2802 | extern void dev_mc_flush(struct net_device *dev); | 2787 | void dev_mc_flush(struct net_device *dev); |
2803 | extern void dev_mc_init(struct net_device *dev); | 2788 | void dev_mc_init(struct net_device *dev); |
2804 | 2789 | ||
2805 | /* Functions used for secondary unicast and multicast support */ | 2790 | /* Functions used for secondary unicast and multicast support */ |
2806 | extern void dev_set_rx_mode(struct net_device *dev); | 2791 | void dev_set_rx_mode(struct net_device *dev); |
2807 | extern void __dev_set_rx_mode(struct net_device *dev); | 2792 | void __dev_set_rx_mode(struct net_device *dev); |
2808 | extern int dev_set_promiscuity(struct net_device *dev, int inc); | 2793 | int dev_set_promiscuity(struct net_device *dev, int inc); |
2809 | extern int dev_set_allmulti(struct net_device *dev, int inc); | 2794 | int dev_set_allmulti(struct net_device *dev, int inc); |
2810 | extern void netdev_state_change(struct net_device *dev); | 2795 | void netdev_state_change(struct net_device *dev); |
2811 | extern void netdev_notify_peers(struct net_device *dev); | 2796 | void netdev_notify_peers(struct net_device *dev); |
2812 | extern void netdev_features_change(struct net_device *dev); | 2797 | void netdev_features_change(struct net_device *dev); |
2813 | /* Load a device via the kmod */ | 2798 | /* Load a device via the kmod */ |
2814 | extern void dev_load(struct net *net, const char *name); | 2799 | void dev_load(struct net *net, const char *name); |
2815 | extern struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, | 2800 | struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev, |
2816 | struct rtnl_link_stats64 *storage); | 2801 | struct rtnl_link_stats64 *storage); |
2817 | extern void netdev_stats_to_stats64(struct rtnl_link_stats64 *stats64, | 2802 | void netdev_stats_to_stats64(struct rtnl_link_stats64 *stats64, |
2818 | const struct net_device_stats *netdev_stats); | 2803 | const struct net_device_stats *netdev_stats); |
2819 | 2804 | ||
2820 | extern int netdev_max_backlog; | 2805 | extern int netdev_max_backlog; |
2821 | extern int netdev_tstamp_prequeue; | 2806 | extern int netdev_tstamp_prequeue; |
2822 | extern int weight_p; | 2807 | extern int weight_p; |
2823 | extern int bpf_jit_enable; | 2808 | extern int bpf_jit_enable; |
2824 | 2809 | ||
2825 | extern bool netdev_has_upper_dev(struct net_device *dev, | 2810 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); |
2826 | struct net_device *upper_dev); | 2811 | bool netdev_has_any_upper_dev(struct net_device *dev); |
2827 | extern bool netdev_has_any_upper_dev(struct net_device *dev); | 2812 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, |
2828 | extern struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, | 2813 | struct list_head **iter); |
2829 | struct list_head **iter); | ||
2830 | 2814 | ||
2831 | /* iterate through upper list, must be called under RCU read lock */ | 2815 | /* iterate through upper list, must be called under RCU read lock */ |
2832 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ | 2816 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ |
@@ -2835,10 +2819,10 @@ extern struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *d | |||
2835 | updev; \ | 2819 | updev; \ |
2836 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter))) | 2820 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter))) |
2837 | 2821 | ||
2838 | extern void *netdev_lower_get_next_private(struct net_device *dev, | 2822 | void *netdev_lower_get_next_private(struct net_device *dev, |
2839 | struct list_head **iter); | 2823 | struct list_head **iter); |
2840 | extern void *netdev_lower_get_next_private_rcu(struct net_device *dev, | 2824 | void *netdev_lower_get_next_private_rcu(struct net_device *dev, |
2841 | struct list_head **iter); | 2825 | struct list_head **iter); |
2842 | 2826 | ||
2843 | #define netdev_for_each_lower_private(dev, priv, iter) \ | 2827 | #define netdev_for_each_lower_private(dev, priv, iter) \ |
2844 | for (iter = (dev)->adj_list.lower.next, \ | 2828 | for (iter = (dev)->adj_list.lower.next, \ |
@@ -2852,27 +2836,26 @@ extern void *netdev_lower_get_next_private_rcu(struct net_device *dev, | |||
2852 | priv; \ | 2836 | priv; \ |
2853 | priv = netdev_lower_get_next_private_rcu(dev, &(iter))) | 2837 | priv = netdev_lower_get_next_private_rcu(dev, &(iter))) |
2854 | 2838 | ||
2855 | extern void *netdev_adjacent_get_private(struct list_head *adj_list); | 2839 | void *netdev_adjacent_get_private(struct list_head *adj_list); |
2856 | extern struct net_device *netdev_master_upper_dev_get(struct net_device *dev); | 2840 | struct net_device *netdev_master_upper_dev_get(struct net_device *dev); |
2857 | extern struct net_device *netdev_master_upper_dev_get_rcu(struct net_device *dev); | 2841 | struct net_device *netdev_master_upper_dev_get_rcu(struct net_device *dev); |
2858 | extern int netdev_upper_dev_link(struct net_device *dev, | 2842 | int netdev_upper_dev_link(struct net_device *dev, struct net_device *upper_dev); |
2843 | int netdev_master_upper_dev_link(struct net_device *dev, | ||
2859 | struct net_device *upper_dev); | 2844 | struct net_device *upper_dev); |
2860 | extern int netdev_master_upper_dev_link(struct net_device *dev, | 2845 | int netdev_master_upper_dev_link_private(struct net_device *dev, |
2861 | struct net_device *upper_dev); | 2846 | struct net_device *upper_dev, |
2862 | extern int netdev_master_upper_dev_link_private(struct net_device *dev, | 2847 | void *private); |
2863 | struct net_device *upper_dev, | 2848 | void netdev_upper_dev_unlink(struct net_device *dev, |
2864 | void *private); | 2849 | struct net_device *upper_dev); |
2865 | extern void netdev_upper_dev_unlink(struct net_device *dev, | 2850 | void *netdev_lower_dev_get_private_rcu(struct net_device *dev, |
2866 | struct net_device *upper_dev); | 2851 | struct net_device *lower_dev); |
2867 | extern void *netdev_lower_dev_get_private_rcu(struct net_device *dev, | 2852 | void *netdev_lower_dev_get_private(struct net_device *dev, |
2868 | struct net_device *lower_dev); | 2853 | struct net_device *lower_dev); |
2869 | extern void *netdev_lower_dev_get_private(struct net_device *dev, | 2854 | int skb_checksum_help(struct sk_buff *skb); |
2870 | struct net_device *lower_dev); | 2855 | struct sk_buff *__skb_gso_segment(struct sk_buff *skb, |
2871 | extern int skb_checksum_help(struct sk_buff *skb); | 2856 | netdev_features_t features, bool tx_path); |
2872 | extern struct sk_buff *__skb_gso_segment(struct sk_buff *skb, | 2857 | struct sk_buff *skb_mac_gso_segment(struct sk_buff *skb, |
2873 | netdev_features_t features, bool tx_path); | 2858 | netdev_features_t features); |
2874 | extern struct sk_buff *skb_mac_gso_segment(struct sk_buff *skb, | ||
2875 | netdev_features_t features); | ||
2876 | 2859 | ||
2877 | static inline | 2860 | static inline |
2878 | struct sk_buff *skb_gso_segment(struct sk_buff *skb, netdev_features_t features) | 2861 | struct sk_buff *skb_gso_segment(struct sk_buff *skb, netdev_features_t features) |
@@ -2894,30 +2877,30 @@ static inline bool can_checksum_protocol(netdev_features_t features, | |||
2894 | } | 2877 | } |
2895 | 2878 | ||
2896 | #ifdef CONFIG_BUG | 2879 | #ifdef CONFIG_BUG |
2897 | extern void netdev_rx_csum_fault(struct net_device *dev); | 2880 | void netdev_rx_csum_fault(struct net_device *dev); |
2898 | #else | 2881 | #else |
2899 | static inline void netdev_rx_csum_fault(struct net_device *dev) | 2882 | static inline void netdev_rx_csum_fault(struct net_device *dev) |
2900 | { | 2883 | { |
2901 | } | 2884 | } |
2902 | #endif | 2885 | #endif |
2903 | /* rx skb timestamps */ | 2886 | /* rx skb timestamps */ |
2904 | extern void net_enable_timestamp(void); | 2887 | void net_enable_timestamp(void); |
2905 | extern void net_disable_timestamp(void); | 2888 | void net_disable_timestamp(void); |
2906 | 2889 | ||
2907 | #ifdef CONFIG_PROC_FS | 2890 | #ifdef CONFIG_PROC_FS |
2908 | extern int __init dev_proc_init(void); | 2891 | int __init dev_proc_init(void); |
2909 | #else | 2892 | #else |
2910 | #define dev_proc_init() 0 | 2893 | #define dev_proc_init() 0 |
2911 | #endif | 2894 | #endif |
2912 | 2895 | ||
2913 | extern int netdev_class_create_file(struct class_attribute *class_attr); | 2896 | int netdev_class_create_file(struct class_attribute *class_attr); |
2914 | extern void netdev_class_remove_file(struct class_attribute *class_attr); | 2897 | void netdev_class_remove_file(struct class_attribute *class_attr); |
2915 | 2898 | ||
2916 | extern struct kobj_ns_type_operations net_ns_type_operations; | 2899 | extern struct kobj_ns_type_operations net_ns_type_operations; |
2917 | 2900 | ||
2918 | extern const char *netdev_drivername(const struct net_device *dev); | 2901 | const char *netdev_drivername(const struct net_device *dev); |
2919 | 2902 | ||
2920 | extern void linkwatch_run_queue(void); | 2903 | void linkwatch_run_queue(void); |
2921 | 2904 | ||
2922 | static inline netdev_features_t netdev_get_wanted_features( | 2905 | static inline netdev_features_t netdev_get_wanted_features( |
2923 | struct net_device *dev) | 2906 | struct net_device *dev) |
@@ -3009,22 +2992,22 @@ static inline const char *netdev_name(const struct net_device *dev) | |||
3009 | return dev->name; | 2992 | return dev->name; |
3010 | } | 2993 | } |
3011 | 2994 | ||
3012 | extern __printf(3, 4) | 2995 | __printf(3, 4) |
3013 | int netdev_printk(const char *level, const struct net_device *dev, | 2996 | int netdev_printk(const char *level, const struct net_device *dev, |
3014 | const char *format, ...); | 2997 | const char *format, ...); |
3015 | extern __printf(2, 3) | 2998 | __printf(2, 3) |
3016 | int netdev_emerg(const struct net_device *dev, const char *format, ...); | 2999 | int netdev_emerg(const struct net_device *dev, const char *format, ...); |
3017 | extern __printf(2, 3) | 3000 | __printf(2, 3) |
3018 | int netdev_alert(const struct net_device *dev, const char *format, ...); | 3001 | int netdev_alert(const struct net_device *dev, const char *format, ...); |
3019 | extern __printf(2, 3) | 3002 | __printf(2, 3) |
3020 | int netdev_crit(const struct net_device *dev, const char *format, ...); | 3003 | int netdev_crit(const struct net_device *dev, const char *format, ...); |
3021 | extern __printf(2, 3) | 3004 | __printf(2, 3) |
3022 | int netdev_err(const struct net_device *dev, const char *format, ...); | 3005 | int netdev_err(const struct net_device *dev, const char *format, ...); |
3023 | extern __printf(2, 3) | 3006 | __printf(2, 3) |
3024 | int netdev_warn(const struct net_device *dev, const char *format, ...); | 3007 | int netdev_warn(const struct net_device *dev, const char *format, ...); |
3025 | extern __printf(2, 3) | 3008 | __printf(2, 3) |
3026 | int netdev_notice(const struct net_device *dev, const char *format, ...); | 3009 | int netdev_notice(const struct net_device *dev, const char *format, ...); |
3027 | extern __printf(2, 3) | 3010 | __printf(2, 3) |
3028 | int netdev_info(const struct net_device *dev, const char *format, ...); | 3011 | int netdev_info(const struct net_device *dev, const char *format, ...); |
3029 | 3012 | ||
3030 | #define MODULE_ALIAS_NETDEV(device) \ | 3013 | #define MODULE_ALIAS_NETDEV(device) \ |