下载后可任意编辑linux 下 request_mem_region 的粗略理解Linux 把基于 I/O 映射方式的 I/O 端口和基于内存映射方式的 I/O 端口资源统称为“I/O 区域”(I/O Region)
I/O Region 仍然是一种 I/O 资源,因此它仍然可以用 resource 结构类型来描述
Linux 是以一种倒置的树形结构来管理每一类 I/O 资源(如:I/O 端口、外设内存、DMA 和 IRQ)的
每一类 I/O 资源都对应有一颗倒置的资源树,树中的每一个节点都是一个 resource 结构,而树的根结点 root 则描述了该类资源的整个资源空间
1>struct resource iomem_resource = { "PCI mem", 0x00000000, 0xffffffff, IORESOURCE_MEM }; 1
2>struct resource { const char *name; unsigned long start, end; unsigned long flags; struct resource *parent, *sibling, *child; };2
调用函数 request_mem_region(S1D_PHYSICAL_REG_ADDR,S1D_PHYSICAL_REG_SIZE, "EpsonFB_RG")#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name))__request_region 检查是否可以安全占用起始物理地址 S1D_PHYSICAL_REG_ADDR 之后的连续S1D_PHYSICAL_REG_SIZE 字节大小空间struct r