- 论坛徽章:
- 0
|
本帖最后由 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了的呢?)不知道我把问题描述清楚没有? |
|