免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1494 | 回复: 2
打印 上一主题 下一主题

linux驱动模型。。。。。。。。困惑 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-12 21:56 |只看该作者 |倒序浏览
本帖最后由 hidiy 于 2010-05-12 21:58 编辑

在阅读linux驱动源码的时候,看见在注册一个平台设备的时候,有如下语句error = device_register(&platform_bus);
发现内核在注册platform这个设备的时候,struct device platform={.bus_id="platform"}只有初始化了一个成员变量。
device_add(dev);函数中有调用到if (dev->init_name)dev_set_name(dev, "%s", dev->init_name); 和parent = get_device(dev->parent);这样的函数。现在的问题是
dev->init_name dev->parent这个两个成员变量根本没有初始化,或者是我根本没看见在那初始化的。要是没有初始化的话,如果gcc编译器不把这个全局结构体初始化为NULL的话,
这样的话这两个成员变量就应该是两个野指针。所以请知道具体情况的朋友,指点一下(到底是在其他地方初始化了的只是我没看见,还是gcc编译器初始化为0了的呢?)不知道我把问题描述清楚没有?

论坛徽章:
0
2 [报告]
发表于 2010-05-12 22:07 |只看该作者
问题描述清楚没有不知道
我就知道看不清楚...好好整理一下吧,看得眼花

论坛徽章:
0
3 [报告]
发表于 2010-05-12 22:16 |只看该作者
本帖最后由 hidiy 于 2010-05-13 09:28 编辑

回复 2# klanet


   就是我没有找到if (dev->init_name)dev_set_name(dev, "%s", dev->init_name); 和parent = get_device(dev->parent);这样的函数中的dev->init_name dev->parent这个两个成员变量在那初始化,想知道在那初始化的。不知道现在把问题描述清楚没有?

或者就是说我想求证一下,linux源码中很多全局结构体都只初始化了一个或者几个成员变量,其他的成员变量会不会自动初始化为0或者null?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP