内核 platform_get_resource() 函数解析
时间: 2024-03-10 09:49:57 浏览: 154
`platform_get_resource()`函数是一个平台设备驱动中常用的函数,用于获取设备资源信息,如内存区域、中断号等。
该函数的原型如下:
```
struct resource *platform_get_resource(struct platform_device *dev,
unsigned int type,
unsigned int num);
```
其中,`dev`是指向平台设备结构体的指针,`type`是资源类型,`num`是资源序号。
该函数的作用是在平台设备的资源列表中查找指定类型和序号的资源项,并返回该资源项对应的`resource`结构体指针。如果没有找到对应的资源项,则返回`NULL`。
`resource`结构体定义如下:
```
struct resource {
resource_size_t start;
resource_size_t end;
const char *name;
unsigned long flags;
struct resource *parent, *sibling, *child;
};
```
其中,`start`和`end`表示资源的起始地址和结束地址;`name`表示资源的名称;`flags`表示资源的属性;`parent`、`sibling`、`child`分别表示该资源在资源树中的位置关系。
需要注意的是,该函数只能在平台设备驱动中使用,不能在独立的设备驱动中使用。
使用示例:
```
struct resource *res;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (res) {
printk(KERN_INFO "found memory resource, start=0x%lx, end=0x%lx\n",
res->start, res->end);
}
```
阅读全文