ACPICA User Guide and Programmer Reference 翻译6

3.设计详述

          本小节包含适用于ACPICA子系统两大部分的概念,数据类型和数据结构。

3.1 ACPI命名空间基础

        ACPI命名空间是一个大的数据结构,它是由ACPICA子系统创建和管理的。它是根据DSDT表创建的,命名空间是一个由ACPI对象组成的分层结构。

3.1.1 对象

        每一个在命名空间中的对象都有一个4字节长的名字。根节点使用反斜杠作为路径名的第一个字符。路径名是以多个4字节长的对象名组成,这些对象名字使用“.”作为分隔符。

3.1.2Scopes

        Scope这个概念直接与ASL相关,ASL会对对象进行定义和描述。对象的Scope被定义为紧跟着对象后的花括号内的内容。换句话说,一个对象的Scope是这个对象的子对象的容器。

        在ACPICA的很多接口中,定义一个表示这一个容器的Scope参数会很方便。比如说,当将一个ACPI名字转换为对象handle的时候需要两个参数,名字本身和包含名字的Scope。当在Scope中发现匹配到名字的对象,这个对象的handle将会被返回。

3.1.2.1命名空间的Scopes、名字和对象的例子

        下面的ASL代码中,对象_GPE的scope包含对象_L08和_L0A

Scope (\_GPE)
{
         Method (_L08)
         {
                 Notify (\_SB.PCI0.DOCK, 1)
         }
         Method (_L0A)
        {
                 Store (0, \_SB.PCI0.ISA.EC0.DCS)
        }
}

        在本例中存在三个ACPI命名空间对象,详细说明如下:

                三个对象的名字是_GPE,_L08和_L0A.

                父对象_GPE的子对象为_L08和_L0A.

                对象_L08的绝对路径名(完整的路径名)是“\_GPE._L08”.

               对象_GPE的scope包含对象_L08和_L0A.

              控制方法_L08和_L0A的scope中包含可执行的AML代码.

              包含对象_L08的scope为_GPE的scope.

              对象_GPE为对象_L08和_L0A的父对象。

              对象_L08和_L0A的类型都是ACPI_TYPE_METHOD.

              对象_L08的下一个对象(兄弟对象)是对象_L0A.在本例的_GPE的scope中对象_L0A后没有其他的对象.

        由于对象_GPE是处于根这一层下的一个命名空间对象(如对象名字前的斜杠所示),它的父对象是根对象,包含它的scope是根的scope。

3.1.3预定义对象

        在初始化ACPICA子系统内部命名空间的时候,有几个预定义的对象,它们总是会被注册并被安装到命名空间中,不管它们出现在哪一个被装载的ACPI表中。这些对象和它们所属的类型如下所示。

“_GPE”, ACPI_TYPE_ANY // General Purpose Event block
“_PR_”, ACPI_TYPE_ANY // Processor block
“_SB_”, ACPI_TYPE_ANY // System Bus block
“_SI_”, ACPI_TYPE_ANY // System Indicators block
“_TZ_”, ACPI_TYPE_ANY // Thermal Zone block
“_REV”, ACPI_TYPE_NUMBER // Supported ACPI specification revision
“_OS_”, ACPI_TYPE_STRING // OS Name
“_GL_”, ACPI_TYPE_MUTEX // Global Lock
“_OSI”, ACPI_TYPE_METHOD // Query OS Interfaces

3.1.4命名空间的逻辑分布

        下图表示预定义对象和_GPE的scope被加入后,命名空间的逻辑分布。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值