reedwind / lib

0 stars 0 forks source link

Bug 419 - The ASL Compiler doesn't allow non-constant TimeoutValue for Acquire #139

Open reedwind opened 11 years ago

reedwind commented 11 years ago

Reported by: Valery Podrezov valery.a.podrezov@intel.com Reported at: 2006-05-30 18:58:12

Product: ACPICA Component: iASL Compiler Platform: All OS: Linux Priority: P5 Severity: normal

reedwind commented 11 years ago

Commented by: Valery Podrezov valery.a.podrezov@intel.com Commented at: 2006-05-30 18:58:12

The current implementation of iASL compiler expects the value passed as TimeoutValue parameter of Acquire operator to be a constant, the local variables (LocalX) and other non-constant integer objects are not available (iASL reports Error).

This doesn't contradict with the "17.5.1 Acquire (Acquire a Mutex) (ACPI 3.0)" specification.

But, is that what actually was conceived?

INTERNAL BUG NUMBER:

1

reedwind commented 11 years ago

Commented by: Valery Podrezov valery.a.podrezov@intel.com Commented at: 2006-05-30 18:58:44

Created an attachment (id=481) ASL code to reproduce the bug

reedwind commented 11 years ago

Commented by: Bob Moore robert.moore@intel.com Commented at: 2006-05-31 05:26:14

Yes, in the current grammar the Timeout is a constant:

Acquire ( SyncObject, // SuperName => Mutex TimeoutValue // WordConstExpr ) => Boolean // True means timed-out

I don't know why it is different than Wait():

WaitTerm := Wait ( SyncObject, // SuperName => Event TimeoutValue // TermArg => Integer ) => Boolean // True means timed-out

It may be possible to change this, however.

reedwind commented 11 years ago

Commented by: Bob Moore robert.moore@intel.com Commented at: 2008-06-17 13:37:10

This is just an inconsistent part of the ASL/AML grammar, there is nothing we can do about it. It cannot be changed at this point.