2.1.2操作系统服务层
操作系统服务层(OSL)用于将来自于与系统无关的ACPICA子系统层的请求回传到主操作系统,OSL使用主操作系统的源语实现了一些通用的操作系统服务接口。
由于OSL的性质,对于每一个支持ACPI的操作系统,OSL都必须重新实现。可以只有一个与操作系统无关的ACPICA子系统部分,但是,对于每一个支持APCICA的操作系统,必须有与之对应的OSL。
OSL在ACPICA中的主要作用就是,作为一个很小的粘合层,将ACPICA子系统和主操作系统(the host operating system)关联起来。由于ACPI自身的性质——要有AML翻译器和管理命名空间这样一个比较大的数据结构的能力,ACPI协议实现的大部分内容都是于操作系统无关的。因此,在这两部分中,ACPICA子系统中与操作系统无关的部分占据了ACPI实现的大部分内容。
ACPICA与主操作系统(the host operating system)的关系,总体如下图所示。
2.1.3 主操作系统,ACPICA 和主OSL之间的关系
2.1.3.1 大体架构模型
此模型可以分两部分描述,第一部分为ACPIC-to-host的交互,第二部分为host-to-AXPICA的交互。
1)主OSL(host OSL)实现了ACPICA要求的所有操作系统服务,所有ACPICA-to-host的交互都通过直接调用ACPACA中以AcpiOS开头的接口来实现。
2)host-to-ACPICA的交互分为两类,一类是同步交互另一类是异步交互:
同步类交互:host本身需要与ACPICA进行交互,对于这种交互, host直接调用以Acpi开头的各种功能接口。
异步类交互:host被要求与ACPICA进行交互,当响应各种异步事件时,如ACPI通用事件和固定事件(fixed events)
时,就会发生此类交互。对于这类类交互,host在初始化时,host会调用ACPICA来安装相应的handler,每当事件发生
时,ACPICA会使用相应的handler来响应。通常,这些handler都是可选的,并且这类交互也是可选的。