Linux内核(3)——常量
来源:互联网 发布:广东毕业生就业数据 编辑:程序博客网 时间:2024/06/08 01:32
常量定义
初始定义
宏phys定义了你的机器上的地址转换__virt_to_phys()。这个宏用于把虚拟地址转换为一个物理地址。通常情况下:
phys = virt - PAGE_OFFSET PHYS_OFFSET
解压缩符号
解压缩器的地址地址。由于当你调用解压缩器代码时,通常关闭MMU,因此这里并不讨论虚拟地址和物理地址的问题。通常你在这个地址处调用内核,开始引导内核。它不需要在RAM中,只需要位于FLASH或其他只读或读/写的可寻址的存储设备中。
l ZBSSADDR
解压缩器的初始化为0的工作区的起始地址。必须位于RAM中,解压缩器会替你把它初始化为0,此外,需要关闭MMU。
l ZRELADDR
解压缩内核将被写入的地址和最终的执行地址。必须满足:
__virt_to_phys(TEXTADDR) == ZRELADDR
内核的开始部分被编码为与位置无关的代码。
l INITRD_PHYS
放置初始RAM盘的物理地址。仅当你使用bootpImage时相关(这是一种非常老的param_struct结构)
l INITRD_ⅥRT
初始RAM盘的虚拟地址。必须满足:
__virt_to_phys(INITRD_ⅥRT) == INITRD_PHYSl PARAMS_PHYS
param_struct 结构体或tag lis的物理地址,用于给定内核执行环境下的不同参数。
内核符号
RAM第一个BANK的物理地址地址。
l PAGE_OFFSET
RAM第一个BANK的虚拟地址地址。在内核引导阶段,虚拟地址PAGE_OFFSE将被映射为物理地址PHYS_OFFSET,它应该与TASK_SIZE具有相同的值。
l TASK_SIZE
一个用户进程的最大值,单位为byte。用户空间的堆栈从这个地址处向下增长。
任何一个低于TASK_SIZE的虚拟地址对用户进程来说都是不可见的,因此,内核通过进程偏移对每个进行进行动态的管理。我把这叫做用户段。任何高于TASK_SIZE的对所有进程都是相同的,称之为内核段。(换句话说,你不能把IO映射放在低于TASK_SIZE和PAGE_OFFSET的位置处。)
l TEXTADDR
内核的虚拟起始地址,通常为PAGE_OFFSET 0x8000。内核映射必须在此结束。
l DATAADDR
内核数据段的虚拟地址,不能在使用解压缩器的情况下定义。
l VMALLOC_START
l VMALLOC_END
用于限制vmalloc()区域的虚拟地址。此地址必须位于内核段。通常,vmalloc()区域在最后的虚拟RAM地址以上开始VMALLOC_OFFSET字节。
l VMALLOC_OFFSET
偏移通常纳入vmalloc_start提供虚拟内存和vmalloc区之间的一个通道。我们这样做是为了允许越界内存访问(例如,写入映射内存映射的结尾)捕获。通常设定8MB。
构架宏
pram——指定了RAM起始的物理地址,必须始终存在,并应等于PHYS_OFFSET。
pio——是供arch/arm/kernel/debug-armv.S中的调试宏使用的,包含IO的8 MB区域的物理地址。
vio——是8MB调试区域的虚拟地址。
这个调试区域将被位于代码中(通过MAPIO函数)的随后的构架相关代码再次进行初始化。
l BOOT_PARAMS
参见 PARAMS_PHYS.
l FⅨUP(func)
机器相关的修正,在存储子系统被初始化前运行。
l MAPIO(func)
机器相关的函数,用于IO区域的映射(包括上面的调试区)。
l INITIRQ(func)
用于初始化中断的机器相关的函数。
- Linux内核(3)——常量
- Linux内核定义的常量
- Linux内核定义的常量
- Linux 内核学习(3)——内核配置选项
- Linux Shell编程(13)——数字常量
- 边学边干Linux内核指导(3)——内核模块
- linux内核启动(2)——2.6.内核时钟
- Linux内核入门(四)—— 内核汇编语言规则
- Linux内核入门(四)—— 内核汇编语言规则
- Linux内核入门(四)—— 内核汇编语言规则
- Linux内核入门(四)—— 内核汇编语言规则
- Linux内核编程(一) —— 内核模块加载
- Linux 内核学习(1)——内核目录结构
- Linux内核驱动(三)——内核
- Linux内核驱动(四)——内核制作
- Linux内核完全注释—基于0.12内核(赵炯)
- linux内核学习——内核同步
- Linux内核0.11——内核体系结构
- JAVA编程思想 第2章习题解答
- 跨越编程语言界限(四)
- KHL 001 11-计算机-本职-前台 CSS选择器
- 【C语言】【unix c】文件的操作(文件的打开,关闭,读,写,读写位置重定位)(对文件内容的操作)
- MongoDB 聚合
- Linux内核(3)——常量
- 链接两个单向链表
- 洛谷P1640 [SCOI2010]连续攻击游戏
- 【C语言】【unix c】lseek(2)重新定位文件的读写位置的使用
- syslog简介——系统日志写入API
- 屠杀者模式下的旧系统改造与联调(一)
- HTML与CSS布局技巧总结
- no input file specified nginx + windows
- 【C语言】【unix c】使用mmap将文件映射到进程的虚拟地址空间,然后对内存的操作直接反应到文件中