linux2.6.30.4内核中platform_get_resource函数
2014-05-31 16:44
260 查看
今天看到下面这两个函数:
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;
}
int platform_get_irq(struct platform_device *dev, unsigned int num)
{
struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num);
return r ? r->start : -ENXIO;
}
一开始想不通为什么是返回第num(从0开始计数)个flag为IORESOURCE_IRQ类型的resource结构体的指针,之后发现
if (type == resource_type(r) && num-- == 0)这个语句中的一个小问题,
若是&&符号前面的条件不成立,&&后面的语句不会执行
因此该函数的功能确实是返回第num个flag为IORESOURCE_IRQ类型的resource结构体指针。
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;
}
int platform_get_irq(struct platform_device *dev, unsigned int num)
{
struct resource *r = platform_get_resource(dev, IORESOURCE_IRQ, num);
return r ? r->start : -ENXIO;
}
一开始想不通为什么是返回第num(从0开始计数)个flag为IORESOURCE_IRQ类型的resource结构体的指针,之后发现
if (type == resource_type(r) && num-- == 0)这个语句中的一个小问题,
若是&&符号前面的条件不成立,&&后面的语句不会执行
因此该函数的功能确实是返回第num个flag为IORESOURCE_IRQ类型的resource结构体指针。
相关文章推荐
- Q2440开发板系列教程合集-含有 Linux-2.6.30.4内核移植pdf文档
- Linux2.6.29内核的get_user_pages的改进
- 详解Linux2.6内核中基于platform机制的驱动模型
- platform_get_resource函数实现细节
- 嵌入式开发三:mini2440开发-内核抑制-嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之内核
- 用apt-get来卸载ubuntu Linux旧内核
- linux2.6.30.4 内核移植(2)触摸屏驱动
- linux 内核驱动--Platform Device和Platform_driver注册过程
- 详解Linux2.6内核中基于platform机制的驱动模型
- 详解Linux2.6内核中基于platform机制的驱动模型
- 详解Linux2.6内核中基于platform机制的驱动模型
- 详解Linux2.6内核中基于platform机制的驱动模型
- 嵌入式linux(内核为linux 2.6.30.4)开发中遇到的一些问题解决方法
- 详解Linux2.6内核中基于platform机制的驱动模型
- (转)详解Linux2.6内核中基于platform机制的驱动模型
- 嵌入式开发二:mini2440开发-内核抑制-嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之内核
- 嵌入式开发七:实验二:本人实践:嵌入式Linux之我行——Linux-2.6.30.4在2440上的移植之内核
- Linux2.6.29内核的get_user_pages的改进
- 详解Linux2.6内核中基于platform机制的驱动模型
- 详解Linux2.6内核中基于platform机制的驱动模型<强烈推荐,这是一篇学习驱动模型千年一遇的好文章>