内核 platform_get_resource() 函数解析
时间: 2024-03-10 19:49:43 浏览: 350
linux 内存管理 start_kernel
3星 · 编辑精心推荐
`platform_get_resource()` 函数是 Linux 内核中的一个函数,用于获取平台设备资源。它的声明如下:
```c
struct resource *platform_get_resource(struct platform_device *dev, unsigned int type,
unsigned int num);
```
其中,`dev` 是指向 `platform_device` 结构体的指针,表示要获取资源的设备;`type` 是资源的类型,如 `IORESOURCE_MEM`、`IORESOURCE_IRQ` 等;`num` 是资源的编号,对于同一类型的资源,编号从 0 开始递增。
该函数的返回值是指向 `resource` 结构体的指针,表示获取到的资源。如果获取失败,返回 NULL。
`resource` 结构体的定义如下:
```c
struct resource {
resource_size_t start; /* 资源起始地址 */
resource_size_t end; /* 资源结束地址 */
const char *name; /* 资源名称 */
unsigned long flags; /* 资源标志 */
struct resource *parent;/* 父资源 */
struct resource *sibling;/* 兄弟资源 */
};
```
该结构体描述了一个设备所拥有的某种资源的属性,包括起始地址、结束地址、名称、标志、父资源和兄弟资源等信息。
因此,`platform_get_resource()` 函数的作用是根据设备和资源类型、编号获取对应的资源信息,以便在驱动程序中使用该资源。
阅读全文