51 lines
954 B
Plaintext
51 lines
954 B
Plaintext
// Name: Sleep & Stall
|
|
// Expect: int => 0
|
|
|
|
DefinitionBlock ("", "DSDT", 2, "uTEST", "TESTTABL", 0xF0F0F0F0)
|
|
{
|
|
Method (CHEK, 4)
|
|
{
|
|
Local0 = Arg2 - Arg1
|
|
|
|
If (Local0 < Arg3) {
|
|
Printf("%o finished too soon, elapsed %o, expected at least %o",
|
|
Arg0, ToDecimalString(Local0), ToDecimalString(Arg3))
|
|
Return (1)
|
|
}
|
|
|
|
Return (0)
|
|
}
|
|
|
|
Method (STAL, 1) {
|
|
Local1 = 0
|
|
|
|
While (Local1 < Arg0) {
|
|
Stall(100)
|
|
Local1 += 1
|
|
}
|
|
}
|
|
|
|
Method (MAIN, 0, Serialized)
|
|
{
|
|
Local0 = Timer
|
|
|
|
// Stall for 10 * 100 microseconds (aka 1ms)
|
|
STAL(10)
|
|
|
|
If (CHEK("Stall", Local0, Timer, 10000) != 0) {
|
|
Return (1)
|
|
}
|
|
|
|
Local0 = Timer
|
|
|
|
// Sleep for 2ms
|
|
Sleep(2)
|
|
|
|
If (CHEK("Sleep", Local0, Timer, 20000) != 0) {
|
|
Return (1)
|
|
}
|
|
|
|
Return (0)
|
|
}
|
|
}
|