1.全局变量

resource结构体定义如下,指针parent、sibling、child用于构建树状结构。

struct resource {
resource_size_t start;
resource_size_t end;
const char *name;
unsigned long flags;
struct resource *parent, *sibling, *child;
};

用到的全局变量

/arch/arm/kernel/setup.c/
static struct resource mem_res[] = {
{
.name = "Video RAM",
.start = ,
.end = ,
.flags = IORESOURCE_MEM
},
{
.name = "Kernel text",
.start = ,
.end = ,
.flags = IORESOURCE_MEM
},
{
.name = "Kernel data",
.start = ,
.end = ,
.flags = IORESOURCE_MEM
}
}; #define video_ram mem_res[0]
#define kernel_code mem_res[1]
#define kernel_data mem_res[2]

2.request_resource()

int request_resource(struct resource *root, struct resource *new)
-->__request_resource(root, new);//按地址升序排列
/* Return the conflict entry if you can't request it */
static struct resource * __request_resource(struct resource *root, struct resource *new)
{
resource_size_t start = new->start;
resource_size_t end = new->end;
struct resource *tmp, **p; if (end < start)
return root;
if (start < root->start)
return root;
if (end > root->end)
return root;
p = &root->child;
for (;;) {
tmp = *p;
if (!tmp || tmp->start > end) {
new->sibling = tmp;
*p = new;
new->parent = root;
return NULL;
}
p = &tmp->sibling;
if (tmp->end < start)
continue;
return tmp;
}
}

最新文章

  1. The specified module could not be found
  2. 【BZOJ】3542: DZY Loves March
  3. 关于初级java面试问题的一些整理 (部分转自他人)
  4. Zookeeper 3.4.6 Client端流程粗略梳理
  5. 变色龙安装程序 Chameleon Install 2.2 svn 2281发布
  6. org.unsaved transient instance - save the transient instance before flushing: bug解决方案
  7. mysql---union和左连接的两倒面试题
  8. jquery 之选择符
  9. 字符串的encode与decode解决乱码问题
  10. jsp当参数为空的时候默认显示值
  11. web项目编译出错时,原因之一,可能是build path 中order and Export引起
  12. 【CSS】div父容器根据子容器大小自适应
  13. Linux 系统裁剪笔记 软盘2
  14. linux c ---raise 使用范例的代码
  15. Spring AOP功能和目标
  16. HashMap 源码分析
  17. 从前端中的IOC理念理解koa中的app.use()
  18. LeetCode 232:Implement Queue using Stacks
  19. LICEcap方便快捷制作gif图片的工具
  20. MATLAB 统计数据并画出统计直方图

热门文章

  1. (一)Redis简介和安装
  2. SQLServer数据库语句大全汇总
  3. .net core mvc全局设置跨域访问
  4. Web 前端安装依赖的时候遇到的问题
  5. 用gethub下载ardupilot的最新源码
  6. 玩转spring ehcache 缓存框架
  7. fancyBox高级进阶用法
  8. 修复SQL中的孤立账户
  9. cmd中不能输入中文
  10. cms-幻灯片的实现