2.2.1 ACPI表管理
此模块管理所有ACPI表,例如,RSDT/XSDT,FADT, FACS,DSDT, SSDT等等。这些表可以从固件程序提供,也可以由主操作系统提供。此模块的管理功能包括:
- ACPI 表校验
- ACPI表安装和卸载
- 使用ACPI表
2.2.2对ACPI表的初始使用
很多情况下,系统/内核的初始化的较早阶段需要一些ACPI表。例如,在硬件被初始化之前,需要ECDT和MADT表。因此,可能在内核动态内存(和虚拟内存)可用之前,就需要初始化与ACPI表相关的内容。
为了能使初始化正常进行,ACPICA表管理模块被设计成为一个独立的模块,这个模块可以独立于ACPICA子系统的其他部分而被初始化和使用。在任意一个特定的时间,仅仅需要一个内存映射而不需要动态内存,这个模块就能被执行。(这句话啥意思,我也没明白)。
2.2.3 AML翻译器
AML翻译器负责解析和执行由计算机系统厂商提供的AML代码。其他大部分服务都是以AML翻译器作为基础而建立的。因此,没有直接调用翻译器的外部接口。AML翻译器为其他功能模块提供的服务包含如下内容:
- ACPI表解析
- 执行AML控制方法
- Evaluation of Namespace Objects
2.2.4 命名空间管理
命名空间模块在AML翻译器的基础上提供ACPI命名空间服务。命名空间管理模块负责创建和管理内部的ACPI命名空间。这些服务包括:
- 根据ACPI表初始化命名空间
- 设备枚举
- 使用命名