37 lines
758 B
Plaintext
37 lines
758 B
Plaintext
// Name: DerefOf reads field objects
|
|
// Expect: int => 255
|
|
|
|
DefinitionBlock ("", "DSDT", 2, "uTEST", "TESTTABL", 0xF0F0F0F0)
|
|
{
|
|
Name (MAIN, 0xFF)
|
|
|
|
OperationRegion(MYRE, SystemMemory, 0, 128)
|
|
Field (MYRE, AnyAcc, NoLock) {
|
|
FILD, 40
|
|
}
|
|
|
|
FILD = "Hello"
|
|
|
|
Name (RES, "XXXXX")
|
|
|
|
Method (CHEK, 1) {
|
|
if (RES != Arg0) {
|
|
Printf("Invalid value read: %o, expected %o", RES, Arg0)
|
|
MAIN = 0
|
|
}
|
|
}
|
|
|
|
// First try a simple one-level reference
|
|
Local0 = RefOf(FILD)
|
|
RES = DerefOf(Local0)
|
|
CHEK("Hello")
|
|
|
|
// Now try a nested three-level reference
|
|
RES = "XXXXX"
|
|
Local1 = RefOf(Local0)
|
|
Local2 = RefOf(Local1)
|
|
FILD = "World"
|
|
RES = DerefOf(Local2)
|
|
CHEK("World")
|
|
}
|