/*
 * 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;
	struct mutex lock;
};

struct phonet_device_list *phonet_device_list(struct net *net);

struct phonet_device {
	struct list_head list;
	struct net_device *netdev;
	DECLARE_BITMAP(addrs, 64);
	struct rcu_head	rcu;
};

int phonet_device_init(void);
void phonet_device_exit(void);
int phonet_netlink_register(void);
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);
int phonet_address_lookup(struct net *net, u8 addr);
void phonet_address_notify(int event, struct net_device *dev, u8 addr);

int phonet_route_add(struct net_device *dev, u8 daddr);
int phonet_route_del(struct net_device *dev, u8 daddr);
void rtm_phonet_notify(int event, struct net_device *dev, u8 dst);
struct net_device *phonet_route_get_rcu(struct net *net, u8 daddr);
struct net_device *phonet_route_output(struct net *net, u8 daddr);

#define PN_NO_ADDR	0xff

extern const struct file_operations pn_sock_seq_fops;
extern const struct file_operations pn_res_seq_fops;

#endif
7a43105143368aca2a'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/drivers/usb/mtu3/mtu3_qmu.h?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/drivers/usb/mtu3/mtu3_qmu.h'>
<input type='hidden' name='id' value='ebc05ba7e8600b52a2a0c87a43105143368aca2a'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/log/?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a'>root</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a'>drivers</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a'>usb</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb/mtu3?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a'>mtu3</a>/<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb/mtu3/mtu3_qmu.h?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a'>mtu3_qmu.h</a></div><div class='content'><table class='list nowrap'><tr class='nohover'><th class='left'>Age</th><th class='left'>Commit message (<a href='/cgit.cgi/linux/net-next.git/log/drivers/usb/mtu3/mtu3_qmu.h?id=ebc05ba7e8600b52a2a0c87a43105143368aca2a&amp;showmsg=1'>Expand</a>)</th><th class='left'>Author</th><th class='left'>Files</th><th class='left'>Lines</th></tr>