本篇文章參考
ACPI Specification Version 6.2 (Errata A)
ACPI Specification Version 5.1 (Errata B)
參考章節為CH19 ACPI Source Language(ASL) Reference
Add
Add(Addend1, Addend2, Result) => Integer將Addend1與Addend2相加存放到Result。
CreateWordField
CreateWordField(SourceBuffer, ByteIndex, WordFieldName)在SourceBuffer的ByteIndex Offset建立一個Word長度且名為WordFieldName的Object。
DerefOf
DerefOf(Source) => Object回傳Source所Reference的Object。
Device
Device(DeviceName) {TermList}建立一個名為DeviceName的Object,用以代表processor、bus或device等硬體。並會開啟一個name scope。
EISAID
EISAID(EisaIdString) => DWordConst將形式為"UUUNNNN"(U為大寫字母,N為十六進位數字)的文字字串轉換為4 byte長度的EISA ID數字編碼。
Field
Field (RegionName, AccessType, LockRule, UpdateRule) {FieldUnitList}可用以代表RegionName中的某段區塊資料。
AccessType為預設存取寬度,可為AnyAcc、ByteAcc、WordAcc、DWordAcc及QWordAcc。
FileUnitList的Entry可為下列幾種形式,
FieldUnitName, BitLength - Field Unit所使用的命名與長度。Field Unit用以代表某段資料。
Offect (ByteOffset) - 下個Field Unit的Offset。
Include
Include(FilePathName)引入其他ASL File。
Index
Index (Source, IndexNum, Destination) => ObjectReference取得 Source 中第 IndexNum項的 Reference。
如 Source為 Buffer,Index會回傳第IndexNum的byte的Reference。
如 Source為 String,Index會回傳第IndexNum的字元的Reference。
如 Source為 Package,Index會回傳第IndexNum的Object的Reference。
Method
Method (MethodName, NumArgs, SerializeRule, SyncLevel, ReturnType, ParameterTypes) {TermList}建立一個名為MethodName的control method,並會開啟一個name scope。
NumArgs代表Method的參數數量。為optional如不使用則代表此Method不使用參數,而最多可使用7個參數,參數分別reference到Arg0 - Arg6。
SerializeRule可填為Serialized或NotSerialized,Serialized代表此Method不會被其他thread同時存取,用以防止產生相同namespace object。若沒有指定則視為NotSerialized。
Name
Name(ObjectName, Object)建立名為ObjectName的Object,並且references到Object。
OperationRegion
OperationRegion(RegionName, RegionSpace, Offset, Length)宣告名為RegionName的Operation Region,配合Field Object用以讀取系統硬體空間。
PowerResource
PowerResource(ResourceName, SystemLevel, ResourceOrder) {ObjectList}宣告名為ResourceName的power resource。
Scope
Scope(Location) {ObjectList}宣告名為Location的namespace,並且ObjectList以Location為參考namespace。
或將目前namespace切換成已存在的namespace。
沒有留言:
張貼留言