Files
my-os-project2/kernel/hal/x86_64/uACPI/tests/test-cases/table-overrides.asl
2025-08-17 18:37:57 +02:00

71 lines
2.0 KiB
Plaintext

// Name: Table overrides work
// Expect: int => 0
DefinitionBlock ("", "DSDT", 2, "uTEST", "TESTTABL", 0xF0F0F0F0)
{
/*
* We expect this table to be denied by the test-runner because it denies
* anything with "DENYTABL" in OEM table id.
*
* DefinitionBlock ("x.aml", "SSDT", 1, "uTEST", "DENYTABL", 0xF0F0F0F0)
* {
* Name (BUG, 1)
* }
*/
Name (TAB0, Buffer {
0x53, 0x53, 0x44, 0x54, 0x2a, 0x00, 0x00, 0x00,
0x01, 0xe1, 0x75, 0x54, 0x45, 0x53, 0x54, 0x00,
0x44, 0x45, 0x4e, 0x59, 0x54, 0x41, 0x42, 0x4c,
0xf0, 0xf0, 0xf0, 0xf0, 0x49, 0x4e, 0x54, 0x4c,
0x28, 0x06, 0x23, 0x20, 0x08, 0x42, 0x55, 0x47,
0x5f, 0x01
})
/*
* We expect this table to be overriden by the test-runner because it
* overrides anything with "OVERTABL" in OEM table id. The override it
* provides has a Name(VAL, "TestRunner")
*
* DefinitionBlock ("x.aml", "SSDT", 1, "uTEST", "OVERTABL", 0xF0F0F0F0)
* {
* Name (VAL, "Hello")
* }
*/
Name (TAB1, Buffer {
0x53, 0x53, 0x44, 0x54, 0x30, 0x00, 0x00, 0x00,
0x01, 0xcd, 0x75, 0x54, 0x45, 0x53, 0x54, 0x00,
0x4f, 0x56, 0x45, 0x52, 0x54, 0x41, 0x42, 0x4c,
0xf0, 0xf0, 0xf0, 0xf0, 0x49, 0x4e, 0x54, 0x4c,
0x25, 0x09, 0x20, 0x20, 0x08, 0x56, 0x41, 0x4c,
0x5f, 0x0d, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x00
})
Method (MAIN, 0, NotSerialized)
{
Load(TAB0, Local0)
If (Local0) {
Debug = "Table was not denied load"
Return (0xDEAD)
}
If (CondRefOf(BUG)) {
Debug = "Table was not loaded but the BUG object exists"
Return (0xDEAD)
}
Load(TAB1, Local0)
If (!Local0) {
Debug = "Failed to load table"
Return (0xDEAD)
}
If (VAL != "TestRunner") {
Printf("Table didn't get overriden correctly: expected %o got %o",
"TestRunner", VAL)
Return (0xDEAD)
}
Return (0)
}
}