上一章ACPI有提到OEM使用ASL语言来编辑设备信息,这一篇结合ACPI spec 讲解下ASL部分常用语法
1. DefinitionBlock
通俗讲,一个表结构为Definition Block,如DSDT;DefinitionBlock可以定义这样的数据单元,AMLFileName 为AML 翻译后的输出文件名。
DefinitionBlock (AMLFileName, TableSignature, ComplianceRevision, OEMID, TableID, OEMRevision)
{TermList}
例:
DefinitionBlock (
"NvSsdt.aml",
"SSDT",
2,
"NvSsdt",
"NvSsdt",
0x1000
)
2. Name
Definition Block里数据空间为namespace,Name用来声明对象,在namespace创建一个新对象命名为ObjectName,Object理解为其引用的数据
Name (ObjectName, Object)
ObjectName:四个Byte组成,以下划线_或者大写字母开头,剩下三个可以是字母数字;如果开头有‘\’,不算到四个byte,表示在namespace根目录;如果有‘^’,表示当下namespace的父级
Object:可以是buffer