ACPI NameSpace(命名空間)
概念
ACPI NameSpace是存在於OS-Controlled內存中的,包含命名對象(Named Objects)的,一個分層的樹狀結構。
1、 這些Objects包含:data objects, control method objects, bus/device package objects, 等等。
2、ACPI NameSpace中所有的信息都來自於DSDT(Differentiated System Description Table)。DSDT中包含有Differentiated Definition Block, and one or more other definition blocks. Definition Block包含着硬件實現和配置的詳細信息。
3、在Runtime階段,OS通過loading and/or unloading ACPI Tables中的definition blocks來動態的改變NameSpace的內容。
4、OS枚舉主板上的設備,就是通過讀ACPI NameSpace來尋找包含有HardwareIDs的Devices。
5、每個ACPI列舉的device在ACPI NameSpace中都有一個ACPI-defined Object,它報告了這個device能夠佔用的Hardware Resource。
6、ACPI主要用來列舉和配置沒有其他硬件規範的MB Devices。例如,ACPI不會列舉主板上的PCI Devices,這些設備的Plug and Play信息就不會包含在ACPI NameSpace中,但是他們的Power Managed的信息和insertion/removal控制信息仍會存在於NameSpace中。
命名規則
1、固定長度爲32bits
2、第一個Byte包含'A'-'Z','_' (0x41-0x5A,0x31--0x39,0x5F)
3、剩下三個Byte包含含'A'-'Z','0'--'9','_' (0x41-0x5A,0x31--0x39 ,0x5F)
4、若不足四個字符,AML編譯器會自動在末尾補‘_’
5、以‘_’開頭的名字是爲這份Spec中保留的,Defination Blocks只能使用以‘_’開頭的名字
6、以‘\’開頭,後接name,說明這個name參考the root of the namespace。
7、以‘^’開頭,後接name,說明這個name參考the parent of current namespace。
預定義的Root Namespace
Pridefined Objects
System Configuration Object
_PIC Method