Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

194 lines
7.8 KiB

#include "asl.h"
extern VOID DefinitionBlkOp (VOID);
extern VOID IncludeTok (VOID);
extern VOID DefineTok (VOID);
extern VOID NumOp (VOID);
extern VOID StringOp (VOID);
extern VOID BufferOp (VOID);
extern VOID PackageOp (VOID);
extern VOID IsZeroOp (VOID);
extern VOID Vnone (VOID);
extern VOID AliasOp (VOID);
extern VOID NameOp (VOID);
extern VOID ScopeOp (VOID);
extern VOID MethodOp (VOID);
extern VOID EventOp (VOID);
extern VOID MutexOp (VOID);
extern VOID RegionOp (VOID);
extern VOID FieldOp (VOID);
extern VOID DeviceOp (VOID);
extern VOID ProcessorOp (VOID);
extern VOID PowerResourceOp (VOID);
extern VOID ThermalZoneOp (VOID);
extern VOID VSn (VOID);
extern VOID VOp (VOID);
extern VOID VSnOp (VOID);
extern VOID VOpSn (VOID);
extern VOID VOpOp (VOID);
extern VOID VOpOpSn (VOID);
extern VOID VOpOpOp (VOID);
extern VOID VOpOpSnSn (VOID);
extern VOID VOpOpOpSn (VOID);
extern VOID IfOp (VOID);
extern VOID ElseOp (VOID);
extern VOID WhileOp (VOID);
extern VOID LoadOp (VOID);
extern VOID StallOp (VOID);
extern VOID SleepOp (VOID);
extern VOID FatalOp (VOID);
#define PKG T_VARIABLE
#define OP T_OPCODE
#define SN T_SUPERNAME
#define DT T_DEFDATA
#define PA T_PARSEARGS // parse when args complete (requires T_VARIABLE!)
#define PC T_PARSECOMPLETE // parse when complete
ASL_TERM AslTerms[] = {
// Internal ASL terms
"Include", 0x00, 0x00, PC, IncludeTok,
"Define", 0x00, 0x00, PC, DefineTok,
"DefinitionBlock", 0x00, 0x00, PA|PKG, DefinitionBlkOp,
//
"Num", 0x00, 0x00, PC|OP|DT, NumOp,
"String", 0x0D, 0x00, PC|OP|DT, StringOp,
"Buffer", 0x11, 0x00, PC|OP|DT|PKG, BufferOp,
"Package", 0x12, 0x00, PC|OP|DT|PKG, PackageOp,
// ASL terms which map to AML
"Zero", 0x00, 0x00, PC|SN, IsZeroOp,
"One", 0x01, 0x00, PC|SN, Vnone,
"Revision", 0x5B, 0x30, PC|SN, Vnone,
"Debug", 0x5B, 0x31, PC|SN, Vnone,
"Local0", 0x60, 0x00, PC|SN, Vnone,
"Local1", 0x61, 0x00, PC|SN, Vnone,
"Local2", 0x62, 0x00, PC|SN, Vnone,
"Local3", 0x63, 0x00, PC|SN, Vnone,
"Local4", 0x64, 0x00, PC|SN, Vnone,
"Local5", 0x65, 0x00, PC|SN, Vnone,
"Local6", 0x66, 0x00, PC|SN, Vnone,
"Local7", 0x67, 0x00, PC|SN, Vnone,
"Arg0", 0x68, 0x00, PC|SN, Vnone,
"Arg1", 0x69, 0x00, PC|SN, Vnone,
"Arg2", 0x6A, 0x00, PC|SN, Vnone,
"Arg3", 0x6B, 0x00, PC|SN, Vnone,
"Arg4", 0x6C, 0x00, PC|SN, Vnone,
"Arg5", 0x6D, 0x00, PC|SN, Vnone,
"Arg6", 0x6E, 0x00, PC|SN, Vnone,
"Ones", 0xFF, 0x00, PC|SN, Vnone,
"Alias", 0x06, 0x00, PC, AliasOp,
"Name", 0x08, 0x00, PC, NameOp,
"Scope", 0x10, 0x00, PA|PKG, ScopeOp,
"Method", 0x14, 0x00, PA|PC|PKG, MethodOp,
"Mutex", 0x5B, 0x01, PC, MutexOp,
"Event", 0x5B, 0x02, PC, EventOp,
"OperationRegion", 0x5B, 0x80, PA|PKG, RegionOp,
"Field", 0x5B, 0x81, PA|PC|PKG, FieldOp,
"Device", 0x5B, 0x82, PA|PKG, DeviceOp,
"Processor", 0x5B, 0x83, PA|PKG, ProcessorOp,
"PowerResource", 0x5B, 0x84, PA|PKG, PowerResourceOp,
"ThermalZone", 0x5B, 0x85, PA|PKG, ThermalZoneOp,
"Store", 0x70, 0x00, PC|OP, VOpSn,
"StoreRef", 0x71, 0x00, PC|OP, VOpSn,
"Add", 0x72, 0x00, PC|OP, VOpOpSn,
"Concatenate", 0x73, 0x00, PC|OP, VOpOpSn,
"Subtract", 0x74, 0x00, PC|OP, VOpOpSn,
"Increment", 0x75, 0x00, PC|OP, VSn,
"Decrement", 0x76, 0x00, PC|OP, VSn,
"Multiple", 0x77, 0x00, PC|OP, VOpOpSn,
"Divide", 0x78, 0x00, PC|OP, VOpOpSnSn,
"ShiftRight", 0x79, 0x00, PC|OP, VOpOpSn,
"ShiftLeft", 0x7A, 0x00, PC|OP, VOpOpSn,
"FirstSetLeftBit", 0x5B, 0x10, PC|OP, VOpSn,
"FirstSetRightBit", 0x5B, 0x11, PC|OP, VOpSn,
"And", 0x7B, 0x00, PC|OP, VOpOpSn,
"NAnd", 0x7C, 0x00, PC|OP, VOpOpSn,
"Or", 0x7D, 0x00, PC|OP, VOpOpSn,
"Nor", 0x7E, 0x00, PC|OP, VOpOpSn,
"Xor", 0x7F, 0x00, PC|OP, VOpOpSn,
"CondStoreRef", 0x5B, 0x12, PC|OP, VOpSn,
"Index", 0x88, 0x00, PC|OP, VOpOp,
"Match", 0x89, 0x00, PC|OP, VOpOpOp,
"CreateField", 0x5B, 0x13, PC|OP, VOpOpOpSn,
"CreateDWordField", 0x8A, 0x00, PC|OP, VOpOpSn,
"CreateWordField", 0x8B, 0x00, PC|OP, VOpOpSn,
"CreateByteField", 0x8C, 0x00, PC|OP, VOpOpSn,
"CreateBitField", 0x8D, 0x00, PC|OP, VOpOpSn,
"ObjectType", 0x8E, 0x00, PC|OP, VSn,
"LAnd", 0x90, 0x00, PC|OP, VOpOp,
"LOr", 0x91, 0x00, PC|OP, VOpOp,
"LNot", 0x92, 0x00, PC|OP, VOp,
"LEqual", 0x93, 0x00, PC|OP, VOpOp,
"LGreater", 0x94, 0x00, PC|OP, VOpOp,
"LLess", 0x95, 0x00, PC|OP, VOpOp,
"LGreaterEqual", 0x92, 0x95, PC|OP, VOpOp, // Not Less
"LLessEqual", 0x92, 0x94, PC|OP, VOpOp, // Not Greater
"If", 0xA0, 0x00, PC|OP|PKG, IfOp,
"Else", 0xA1, 0x00, PC|OP|PKG, ElseOp,
"While", 0xA2, 0x00, PC|OP|PKG, WhileOp,
"Break", 0xA3, 0x00, PC|OP, Vnone,
"Return", 0xA4, 0x00, PC|OP, VOp,
"Load", 0x5B, 0x20, PC|OP, LoadOp,
"Stall", 0x5B, 0x21, PC|OP, StallOp,
"Sleep", 0x5B, 0x22, PC|OP, SleepOp,
"Acquire", 0x5B, 0x23, PC|OP, VSnOp,
"Wait", 0x5B, 0x23, PC|OP, VSnOp, // same as acquire
"Release", 0x5B, 0x24, PC|OP, VSn,
"Signal", 0x5B, 0x24, PC|OP, VSn, // same as release
"Reset", 0x5B, 0x25, PC|OP, VSn,
"Notify", 0x5B, 0x36, PC|OP, VSnOp,
// call PC|
// chainedcall PC|
"FromBCD", 0x5B, 0x27, PC|OP, VOpSn,
"ToBCD", 0x5B, 0x27, PC|OP, VOpSn,
"Fatal", 0x5B, 0x31, PC|OP, FatalOp,
NULL
} ;
ARGMATCH
PackageTypes[] = {
"SystemMemory", 0,
"SystemIO", 1,
"PCI_Config", 2,
"EmbeddedControl", 3,
NULL
} ;
ARGMATCH
FieldWidth[] = {
"AccessAsByte", 0,
"AccessAsWord", 1,
"AccessAsDWord", 2,
"AccessAsAny", 3,
"", 3,
NULL
} ;
ARGMATCH
FieldLock[] = {
"", 0,
"NoLock", 0,
"UseGlobalLock", 1,
NULL
} ;
ARGMATCH
FieldAccess[] = {
"", 0,
"Preserve", 0,
"WriteZeros", 1,
"WriteOnes", 2,
NULL
} ;