红联Linux门户
Linux帮助

平台设备资源获取源码分析之疑问

发布时间:2013-07-18 16:39:34来源:红联作者:xiaoxi5202
今天学习平台设备驱动时,查看内核获取资源函数的源代码如下/drivers/base/platform.c:
struct resource *platform_get_resource(struct platform_device *dev,
unsigned int type, unsigned int num)
{
int i;

for (i = 0; i < dev->num_resources; i++) {
struct resource *r = &dev->resource[i];

if (type == resource_type(r) && num-- == 0)
return r;
}
return NULL;
}
如上红色标记部分,不明白为什么在for()循环内部来创建指针变量,这样若有多次循环的话,就会重复创建同样的变量了?是不是应该改为:
struct resource *platform_get_resource(struct platform_device *dev,
unsigned int type, unsigned int num)
{
int i;
struct resource *r;

for (i = 0; i < dev->num_resources; i++) {
r = &dev->resource[i];

if (type == resource_type(r) && num-- == 0)
return r;
}
return NULL;
}
文章评论

共有 0 条评论