19.6.29. DefinitionBlock(声明定义块)
语法 :
DefinitionBlock ( AMLFileName, TableSignature, ComplianceRevision, OEMID, TableID, OEMRevision) {TermList}
参数
AMLFileName 是一个字符串,用于指定转换后输出 AML 文件的期望名称。如果 AMLFileName 是 NULL(零长度)字符串,则 ASL 编译器将自动创建文件名(通常根据输入文件名/路径名生成)。TableSignature 是一个包含 4 个字符 ACPI 签名的字符串。ComplianceRevision 是一个 8 位值。OEMID 是一个 6 字符字符串,TableId 是一个 8 字符字符串,OEMRevision 是一个 32 位值。TermList 是一系列可执行的 ASL 表达式。
如果在同一个 ASL 文件中定义了多个 DefinitionBlock,则第一个 DefinitionBlock 按照上述规则定义输出 AMLFileName。
描述
DefinitionBlock 术语指定了 OS 作为 Differentiated Definition Block 的一部分或作为附加 Definition Block 的一部分加载的数据和/或 AML 代码单元。
该数据和/或 AML 代码单元描述的是基础系统或某个大型扩展(例如扩展坞)。整个 DefinitionBlock 将由 OS 作为一个单独单元进行加载和编译。
系统软件通过按顺序引用 TermList 包中的对象来加载定义块。对象列表被编码为 TermList,因此并非描述一个静态对象列表,而是可以根据系统设置描述一个动态对象列表。见第 5.4.2 节。
注:为了与 ACPI 2.0 之前的 ACPI 版本兼容,Integer 对象的位宽取决于 DSDT 的 ComplianceRevision。如果 ComplianceRevision 小于 2,则所有整数都限制为 32 位。否则,使用完整的 64 位整数。DSDT 的版本为所有整数设置全局整数宽度,包括 SSDT 中的整数。