rtnetlink.c (0ec6d3f467faeec5dd3b617959eb90e9d520113d) | rtnetlink.c (56fc85ac961e2c20dcb5ef07e2628b3f93de2e49) |
---|---|
1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Routing netlink socket interface: protocol independent part. 7 * 8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> --- 44 unchanged lines hidden (view full) --- 53#include <net/fib_rules.h> 54#include <net/netlink.h> 55#ifdef CONFIG_NET_WIRELESS_RTNETLINK 56#include <linux/wireless.h> 57#include <net/iw_handler.h> 58#endif /* CONFIG_NET_WIRELESS_RTNETLINK */ 59 60static DEFINE_MUTEX(rtnl_mutex); | 1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Routing netlink socket interface: protocol independent part. 7 * 8 * Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru> --- 44 unchanged lines hidden (view full) --- 53#include <net/fib_rules.h> 54#include <net/netlink.h> 55#ifdef CONFIG_NET_WIRELESS_RTNETLINK 56#include <linux/wireless.h> 57#include <net/iw_handler.h> 58#endif /* CONFIG_NET_WIRELESS_RTNETLINK */ 59 60static DEFINE_MUTEX(rtnl_mutex); |
61static struct sock *rtnl; |
|
61 62void rtnl_lock(void) 63{ 64 mutex_lock(&rtnl_mutex); 65} 66 67void __rtnl_unlock(void) 68{ --- 21 unchanged lines hidden (view full) --- 90 unsigned flavor = rta->rta_type; 91 if (flavor && flavor <= maxattr) 92 tb[flavor-1] = rta; 93 rta = RTA_NEXT(rta, len); 94 } 95 return 0; 96} 97 | 62 63void rtnl_lock(void) 64{ 65 mutex_lock(&rtnl_mutex); 66} 67 68void __rtnl_unlock(void) 69{ --- 21 unchanged lines hidden (view full) --- 91 unsigned flavor = rta->rta_type; 92 if (flavor && flavor <= maxattr) 93 tb[flavor-1] = rta; 94 rta = RTA_NEXT(rta, len); 95 } 96 return 0; 97} 98 |
98struct sock *rtnl; 99 | |
100struct rtnetlink_link * rtnetlink_links[NPROTO]; 101 102static const int rtm_min[RTM_NR_FAMILIES] = 103{ 104 [RTM_FAM(RTM_NEWLINK)] = NLMSG_LENGTH(sizeof(struct ifinfomsg)), 105 [RTM_FAM(RTM_NEWADDR)] = NLMSG_LENGTH(sizeof(struct ifaddrmsg)), 106 [RTM_FAM(RTM_NEWROUTE)] = NLMSG_LENGTH(sizeof(struct rtmsg)), 107 [RTM_FAM(RTM_NEWRULE)] = NLMSG_LENGTH(sizeof(struct fib_rule_hdr)), --- 729 unchanged lines hidden (view full) --- 837 rtnetlink_links[PF_PACKET] = link_rtnetlink_table; 838} 839 840EXPORT_SYMBOL(__rta_fill); 841EXPORT_SYMBOL(rtattr_strlcpy); 842EXPORT_SYMBOL(rtattr_parse); 843EXPORT_SYMBOL(rtnetlink_links); 844EXPORT_SYMBOL(rtnetlink_put_metrics); | 99struct rtnetlink_link * rtnetlink_links[NPROTO]; 100 101static const int rtm_min[RTM_NR_FAMILIES] = 102{ 103 [RTM_FAM(RTM_NEWLINK)] = NLMSG_LENGTH(sizeof(struct ifinfomsg)), 104 [RTM_FAM(RTM_NEWADDR)] = NLMSG_LENGTH(sizeof(struct ifaddrmsg)), 105 [RTM_FAM(RTM_NEWROUTE)] = NLMSG_LENGTH(sizeof(struct rtmsg)), 106 [RTM_FAM(RTM_NEWRULE)] = NLMSG_LENGTH(sizeof(struct fib_rule_hdr)), --- 729 unchanged lines hidden (view full) --- 836 rtnetlink_links[PF_PACKET] = link_rtnetlink_table; 837} 838 839EXPORT_SYMBOL(__rta_fill); 840EXPORT_SYMBOL(rtattr_strlcpy); 841EXPORT_SYMBOL(rtattr_parse); 842EXPORT_SYMBOL(rtnetlink_links); 843EXPORT_SYMBOL(rtnetlink_put_metrics); |
845EXPORT_SYMBOL(rtnl); | |
846EXPORT_SYMBOL(rtnl_lock); 847EXPORT_SYMBOL(rtnl_trylock); 848EXPORT_SYMBOL(rtnl_unlock); 849EXPORT_SYMBOL(rtnl_unicast); 850EXPORT_SYMBOL(rtnl_notify); 851EXPORT_SYMBOL(rtnl_set_sk_err); | 844EXPORT_SYMBOL(rtnl_lock); 845EXPORT_SYMBOL(rtnl_trylock); 846EXPORT_SYMBOL(rtnl_unlock); 847EXPORT_SYMBOL(rtnl_unicast); 848EXPORT_SYMBOL(rtnl_notify); 849EXPORT_SYMBOL(rtnl_set_sk_err); |