Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
405cd39f
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
405cd39f
编写于
11月 04, 2009
作者:
D
Dmitry Eremin-Solenikov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fakehard: mlme_ops->get_phy implementation
Signed-off-by:
N
Dmitry Eremin-Solenikov
<
dbaryshkov@gmail.com
>
上级
42723448
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
6 deletion
+32
-6
drivers/ieee802154/fakehard.c
drivers/ieee802154/fakehard.c
+32
-6
未找到文件。
drivers/ieee802154/fakehard.c
浏览文件 @
405cd39f
...
...
@@ -32,9 +32,29 @@
#include <net/nl802154.h>
#include <net/wpan-phy.h>
static
struct
wpan_phy
*
net_to_phy
(
struct
net_device
*
dev
)
struct
fakehard_priv
{
struct
wpan_phy
*
phy
;
};
static
struct
wpan_phy
*
fake_to_phy
(
const
struct
net_device
*
dev
)
{
struct
fakehard_priv
*
priv
=
netdev_priv
(
dev
);
return
priv
->
phy
;
}
/**
* fake_get_phy - Return a phy corresponding to this device.
* @dev: The network device for which to return the wan-phy object
*
* This function returns a wpan-phy object corresponding to the passed
* network device. Reference counter for wpan-phy object is incremented,
* so when the wpan-phy isn't necessary, you should drop the reference
* via @wpan_phy_put() call.
*/
static
struct
wpan_phy
*
fake_get_phy
(
const
struct
net_device
*
dev
)
{
return
container_of
(
dev
->
dev
.
parent
,
struct
wpan_phy
,
dev
);
struct
wpan_phy
*
phy
=
fake_to_phy
(
dev
);
return
to_phy
(
get_device
(
&
phy
->
dev
));
}
/**
...
...
@@ -121,7 +141,7 @@ static u8 fake_get_bsn(const struct net_device *dev)
static
int
fake_assoc_req
(
struct
net_device
*
dev
,
struct
ieee802154_addr
*
addr
,
u8
channel
,
u8
page
,
u8
cap
)
{
struct
wpan_phy
*
phy
=
net
_to_phy
(
dev
);
struct
wpan_phy
*
phy
=
fake
_to_phy
(
dev
);
mutex_lock
(
&
phy
->
pib_lock
);
phy
->
current_channel
=
channel
;
...
...
@@ -196,7 +216,7 @@ static int fake_start_req(struct net_device *dev, struct ieee802154_addr *addr,
u8
bcn_ord
,
u8
sf_ord
,
u8
pan_coord
,
u8
blx
,
u8
coord_realign
)
{
struct
wpan_phy
*
phy
=
net
_to_phy
(
dev
);
struct
wpan_phy
*
phy
=
fake
_to_phy
(
dev
);
mutex_lock
(
&
phy
->
pib_lock
);
phy
->
current_channel
=
channel
;
...
...
@@ -239,6 +259,8 @@ static struct ieee802154_mlme_ops fake_mlme = {
.
start_req
=
fake_start_req
,
.
scan_req
=
fake_scan_req
,
.
get_phy
=
fake_get_phy
,
.
get_pan_id
=
fake_get_pan_id
,
.
get_short_addr
=
fake_get_short_addr
,
.
get_dsn
=
fake_get_dsn
,
...
...
@@ -313,7 +335,7 @@ static const struct net_device_ops fake_ops = {
static
void
ieee802154_fake_destruct
(
struct
net_device
*
dev
)
{
struct
wpan_phy
*
phy
=
net
_to_phy
(
dev
);
struct
wpan_phy
*
phy
=
fake
_to_phy
(
dev
);
wpan_phy_unregister
(
phy
);
free_netdev
(
dev
);
...
...
@@ -338,13 +360,14 @@ static void ieee802154_fake_setup(struct net_device *dev)
static
int
__devinit
ieee802154fake_probe
(
struct
platform_device
*
pdev
)
{
struct
net_device
*
dev
;
struct
fakehard_priv
*
priv
;
struct
wpan_phy
*
phy
=
wpan_phy_alloc
(
0
);
int
err
;
if
(
!
phy
)
return
-
ENOMEM
;
dev
=
alloc_netdev
(
0
,
"hardwpan%d"
,
ieee802154_fake_setup
);
dev
=
alloc_netdev
(
sizeof
(
struct
fakehard_priv
)
,
"hardwpan%d"
,
ieee802154_fake_setup
);
if
(
!
dev
)
{
wpan_phy_free
(
phy
);
return
-
ENOMEM
;
...
...
@@ -370,6 +393,9 @@ static int __devinit ieee802154fake_probe(struct platform_device *pdev)
dev
->
netdev_ops
=
&
fake_ops
;
dev
->
ml_priv
=
&
fake_mlme
;
priv
=
netdev_priv
(
dev
);
priv
->
phy
=
phy
;
/*
* If the name is a format string the caller wants us to do a
* name allocation.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录