Advertisement

ACPICA User Guide and Programmer Reference 翻译3

阅读量:

1.3.2 主操作系统交互方式

底层操作系统主动请求调用基于 ACPI 标准设计的 ACPIA 子系统接口函数,通过 ACPI 接口函数发起请求。

每当ACPICA子系统须调用操作系统的各项服务时,均会借助操作系统的的服务层(即OSL)来完成这一过程.无论是直接由osl层发起对操作系统的请求还是将整个ACPICA子系统的工作负载转移给osl以处理相关操作时,这些请求和处理均最终由主操作系统的相关组件接收处理.在涉及主机管理的所有功能模块中,仅限于osl内进行功能实现,而在那些不涉及与os交互的基础代码中则完全没有os相关的代码存在

2.1.3.3 OSL交互方式

OSL实现了与操作系统的连接,并通过由AcpiOs前缀标识的一系列函数实现了相关功能。这些函数为ACPICA提供了如内存分配、互斥锁、硬件操作以及输入输出等基本的操作系统服务。ACPICA通过调用这些函数来访问所需的操作系统服务;这种模式不依赖于特定的操作系统架构。由此可见,在这种情况下,OSL将调用主操作系统提供的相应功能来实现以AcpiOs开头的功能模块。

2.1.3.4 ACPI子系统交互方式

该子系统实现了多组外部接口,并支持主机操作系统的相关功能可直接调用这些接口。每当ACPI服务运行期间需依赖操作系统提供的相关服务时,在线性代数计算中将利用该算法进行处理,并根据计算结果生成相应的中间结果存放在内存中以便后续处理。

下图详细展示各组件间的交互流程来呈现各类架构之间的关联关系。特别指出,在ACPICA设计中,并非所有与操作系统相关的功能都会直接调用host服务;相反地,在OSL层内采用AcpiOs系列函数接口进行处理。这种设计实现了这些与操作系统的独立性

2.2 ACPICA子系统架构

ACPICA子系统划分为几个逻辑模块或者几个子部分。每个逻辑模块负责提供一个服务或一组相关联的服务。本节将介绍每一个功能块,并明确该功能块所使用的外部接口类及其与功能块之间的关联关系和接口名称。

在ACPI框架下开发时,并不需要考虑操作系统的具体情况;这些模块设计上具有高度通用性,并且可以方便地应用于所有类型的操作系统;采用ANSI C语言编写可以使代码更加稳定可靠;通过编译将这些模块整合到相关OS支持的ACPI驱动或子系统中是完全可行的操作;此外该方法还允许将程序打包成适用于各种host OS版本的标准包

表格列出ACPICA子系统中的各个子模块及其相互之间的关联情况。AML翻译器作为各项服务的基础架构,在构建与实施过程中发挥着关键作用。

全部评论 (0)

还没有任何评论哟~