Kernel中Hid和Bnep的初始化
2013-12-31 16:26
211 查看
有了前面的L2CAP,RFCOMM的初始化分析,再来分析Hid和Bnep的代码就轻松很多了。基本来说,这两个protol没有太多的新意,直接看代码就可以看出来了。
[cpp] view
plaincopy
static int __init hidp_init(void)
{
int ret;
BT_INFO("HIDP (Human Interface Emulation) ver %s", VERSION);
//注册了一个hid的driver,hidp_driver见下面
//其实就是把该driver加载到hid的bus总线上去,通过name进行区分。
//这里的name是generic-bluetooth,后期用到我们再来具体分析
ret = hid_register_driver(&hidp_driver);
if (ret)
goto err;
//也就是在proto_list中加入了hid
//初始化了bt_proto中的BTPROTO_HIDP的值。
//所以总的来说没有什么好讲的
ret = hidp_init_sockets();
if (ret)
goto err_drv;
return 0;
err_drv:
hid_unregister_driver(&hidp_driver);
err:
return ret;
}
static const struct hid_device_id hidp_table[] = {
{ HID_BLUETOOTH_DEVICE(HID_ANY_ID, HID_ANY_ID) },
{ }
};
//主要就是一个name,是generiv-bluetooth
static struct hid_driver hidp_driver = {
.name = "generic-bluetooth",
.id_table = hidp_table,
};
对于bnep的初始化,其实看起来也比较简单哦:
[cpp] view
plaincopy
static int __init bnep_init(void)
{
char flt[50] = "";
//根据选项,初始化flt数组
#ifdef CONFIG_BT_BNEP_PROTO_FILTER
strcat(flt, "protocol ");
#endif
#ifdef CONFIG_BT_BNEP_MC_FILTER
strcat(flt, "multicast");
#endif
BT_INFO("BNEP (Ethernet Emulation) ver %s", VERSION);
if (flt[0])
BT_INFO("BNEP filters: %s", flt);
//和上面的hid是一样的,只是换了个名字而已
bnep_sock_init();
return 0;
}
总的来说,这两个proto基本没有什么新的内容,权当对《kernel中bluetooth的初始化》这篇文章的补充吧。至此,晓东对kernel中bluetooth
statck相关初始化的内容已经全部解释清楚了。大家也许对这些内容有何作用暂时还比较迷茫,不过没有关系,在后面的蓝牙各个操作中,我们会一一为大家揭晓。
[cpp] view
plaincopy
static int __init hidp_init(void)
{
int ret;
BT_INFO("HIDP (Human Interface Emulation) ver %s", VERSION);
//注册了一个hid的driver,hidp_driver见下面
//其实就是把该driver加载到hid的bus总线上去,通过name进行区分。
//这里的name是generic-bluetooth,后期用到我们再来具体分析
ret = hid_register_driver(&hidp_driver);
if (ret)
goto err;
//也就是在proto_list中加入了hid
//初始化了bt_proto中的BTPROTO_HIDP的值。
//所以总的来说没有什么好讲的
ret = hidp_init_sockets();
if (ret)
goto err_drv;
return 0;
err_drv:
hid_unregister_driver(&hidp_driver);
err:
return ret;
}
static const struct hid_device_id hidp_table[] = {
{ HID_BLUETOOTH_DEVICE(HID_ANY_ID, HID_ANY_ID) },
{ }
};
//主要就是一个name,是generiv-bluetooth
static struct hid_driver hidp_driver = {
.name = "generic-bluetooth",
.id_table = hidp_table,
};
对于bnep的初始化,其实看起来也比较简单哦:
[cpp] view
plaincopy
static int __init bnep_init(void)
{
char flt[50] = "";
//根据选项,初始化flt数组
#ifdef CONFIG_BT_BNEP_PROTO_FILTER
strcat(flt, "protocol ");
#endif
#ifdef CONFIG_BT_BNEP_MC_FILTER
strcat(flt, "multicast");
#endif
BT_INFO("BNEP (Ethernet Emulation) ver %s", VERSION);
if (flt[0])
BT_INFO("BNEP filters: %s", flt);
//和上面的hid是一样的,只是换了个名字而已
bnep_sock_init();
return 0;
}
总的来说,这两个proto基本没有什么新的内容,权当对《kernel中bluetooth的初始化》这篇文章的补充吧。至此,晓东对kernel中bluetooth
statck相关初始化的内容已经全部解释清楚了。大家也许对这些内容有何作用暂时还比较迷茫,不过没有关系,在后面的蓝牙各个操作中,我们会一一为大家揭晓。
相关文章推荐
- oracle中的NVL,NVL2,NULLIF,COALESCE几个通用函数
- linux之线程
- Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API
- recover deleted file on ext4
- 模糊查詢、清空功能 、全選和取消
- UART总线
- RelativeLayout 相对布局
- 多线程环境下单例模式
- 10个值得关注的Geek网站
- OpenGL程序Demo(基于Mingw的GCC)
- RouteTask执行最短路径计算时“无法完成 操作”问题分析解决
- 网盟
- seed-dvs6467 encodedecode实例 采集的图像质量很差,只有隔行显示,而且每帧图像不断的往下移动?
- oracle 自动建表
- Redis介绍以及安装(Linux)
- delphi中in的使用
- ios官方文档( dom数据解析用到方法)
- Json解析工具Jackson(使用注解) .
- Kernel中rfcomm层的初始化
- PHP基础语法