cfg.c 1.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
/* 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.
 *
 * Authors:
 * Alexander Aring <aar@pengutronix.de>
 *
 * Based on: net/mac80211/cfg.c
 */

16
#include <net/rtnetlink.h>
17 18
#include <net/cfg802154.h>

19
#include "ieee802154_i.h"
20
#include "cfg.h"
21 22 23 24 25

static struct net_device *
ieee802154_add_iface_deprecated(struct wpan_phy *wpan_phy,
				const char *name, int type)
{
26
	struct ieee802154_local *local = wpan_phy_priv(wpan_phy);
27
	struct net_device *dev;
28

29 30 31 32 33
	rtnl_lock();
	dev = ieee802154_if_add(local, name, NULL, type);
	rtnl_unlock();

	return dev;
34 35 36 37 38
}

static void ieee802154_del_iface_deprecated(struct wpan_phy *wpan_phy,
					    struct net_device *dev)
{
39 40 41
	struct ieee802154_sub_if_data *sdata = IEEE802154_DEV_TO_SUB_IF(dev);

	ieee802154_if_remove(sdata);
42 43
}

44
const struct cfg802154_ops mac802154_config_ops = {
45 46
	.add_virtual_intf_deprecated = ieee802154_add_iface_deprecated,
	.del_virtual_intf_deprecated = ieee802154_del_iface_deprecated,
47
};