2008-09-22 20:03:44 -07:00
/*
* File : pn_dev . h
*
* Phonet network device
*
* Copyright ( C ) 2008 Nokia Corporation .
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation .
*
* This program is distributed in the hope that it will be useful , but
* WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin St , Fifth Floor , Boston , MA
* 02110 - 1301 USA
*/
# ifndef PN_DEV_H
# define PN_DEV_H
struct phonet_device_list {
struct list_head list ;
2009-11-18 10:08:26 -08:00
struct mutex lock ;
2008-09-22 20:03:44 -07:00
} ;
2009-01-23 03:00:30 +00:00
struct phonet_device_list * phonet_device_list ( struct net * net ) ;
2008-09-22 20:03:44 -07:00
struct phonet_device {
struct list_head list ;
struct net_device * netdev ;
DECLARE_BITMAP ( addrs , 64 ) ;
2010-06-07 03:27:39 +00:00
struct rcu_head rcu ;
2008-09-22 20:03:44 -07:00
} ;
2009-01-23 03:00:27 +00:00
int phonet_device_init ( void ) ;
2008-09-22 20:03:44 -07:00
void phonet_device_exit ( void ) ;
2009-01-23 03:00:28 +00:00
int phonet_netlink_register ( void ) ;
2008-09-22 20:03:44 -07:00
struct net_device * phonet_device_get ( struct net * net ) ;
int phonet_address_add ( struct net_device * dev , u8 addr ) ;
int phonet_address_del ( struct net_device * dev , u8 addr ) ;
u8 phonet_address_get ( struct net_device * dev , u8 addr ) ;
2008-12-03 15:42:56 -08:00
int phonet_address_lookup ( struct net * net , u8 addr ) ;
2009-06-24 01:07:44 +00:00
void phonet_address_notify ( int event , struct net_device * dev , u8 addr ) ;
2008-09-22 20:03:44 -07:00
2009-10-14 00:48:28 +00:00
int phonet_route_add ( struct net_device * dev , u8 daddr ) ;
int phonet_route_del ( struct net_device * dev , u8 daddr ) ;
2009-10-14 00:48:29 +00:00
void rtm_phonet_notify ( int event , struct net_device * dev , u8 dst ) ;
2011-04-27 22:56:07 +00:00
struct net_device * phonet_route_get_rcu ( struct net * net , u8 daddr ) ;
2009-10-14 00:48:28 +00:00
struct net_device * phonet_route_output ( struct net * net , u8 daddr ) ;
2008-09-22 20:03:44 -07:00
# define PN_NO_ADDR 0xff
2018-04-10 19:42:55 +02:00
extern const struct seq_operations pn_sock_seq_ops ;
extern const struct seq_operations pn_res_seq_ops ;
2009-07-21 01:57:57 +00:00
2008-09-22 20:03:44 -07:00
# endif