amlops.h 95 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527
  1. /*++
  2. Copyright (c) 2012 Minoca Corp.
  3. This file is licensed under the terms of the GNU General Public License
  4. version 3. Alternative licensing terms are available. Contact
  5. info@minocacorp.com for details. See the LICENSE file at the root of this
  6. project for complete licensing information.
  7. Module Name:
  8. amlops.h
  9. Abstract:
  10. This header contains definitions for ACPI AML opcodes and instructions.
  11. Author:
  12. Evan Green 13-Nov-2012
  13. --*/
  14. //
  15. // ------------------------------------------------------------------- Includes
  16. //
  17. //
  18. // ---------------------------------------------------------------- Definitions
  19. //
  20. //
  21. // ------------------------------------------------------ Data Type Definitions
  22. //
  23. typedef
  24. KSTATUS
  25. (*PAML_CREATE_NEXT_STATEMENT_ROUTINE) (
  26. PAML_EXECUTION_CONTEXT Context,
  27. PAML_STATEMENT NextStatement
  28. );
  29. /*++
  30. Routine Description:
  31. This routine creates the next AML statement based on the current AML
  32. execution context and the first opcode byte.
  33. Arguments:
  34. Context - Supplies a pointer to an initialized AML execution context. The
  35. next statement will be created based on the current execution offset.
  36. The current offset of the context will be incremented beyond the portion
  37. of this statement that was successfully parsed.
  38. NextStatement - Supplies a pointer where the next statement will be
  39. returned. The caller is responsible for freeing this memory.
  40. Return Value:
  41. Status code indicating whether a statement was successfully created.
  42. --*/
  43. typedef
  44. KSTATUS
  45. (*PAML_EVALUATE_STATEMENT_ROUTINE) (
  46. PAML_EXECUTION_CONTEXT Context,
  47. PAML_STATEMENT Statement
  48. );
  49. /*++
  50. Routine Description:
  51. This routine evaluates an AML statement.
  52. Arguments:
  53. Context - Supplies a pointer to the current AML execution context.
  54. Statement - Supplies a pointer to the statement to evaluate.
  55. Return Value:
  56. STATUS_SUCCESS if the statement was completely evaluated.
  57. STATUS_MORE_PROCESSING_REQUIRED if additional AML code needs to be executed
  58. so that all arguments to the statement can be evaluated.
  59. Other error codes on failure.
  60. --*/
  61. //
  62. // -------------------------------------------------------------------- Globals
  63. //
  64. //
  65. // Define an array that creates ACPI statements based on the first opcode byte.
  66. //
  67. extern PAML_CREATE_NEXT_STATEMENT_ROUTINE AcpiCreateStatement[256];
  68. //
  69. // Store an array of function pointers that evaluate ACPI AML statements.
  70. //
  71. extern PAML_EVALUATE_STATEMENT_ROUTINE AcpiEvaluateStatement[AmlStatementCount];
  72. //
  73. // -------------------------------------------------------- Function Prototypes
  74. //
  75. KSTATUS
  76. AcpipCreateAcquireStatement (
  77. PAML_EXECUTION_CONTEXT Context,
  78. PAML_STATEMENT NextStatement
  79. );
  80. /*++
  81. Routine Description:
  82. This routine creates an Acquire (mutex) statement.
  83. Arguments:
  84. Context - Supplies a pointer to an initialized AML execution context. The
  85. next statement will be created based on the current execution offset.
  86. The current offset of the context will be incremented beyond the portion
  87. of this statement that was successfully parsed.
  88. NextStatement - Supplies a pointer where the next statement will be
  89. returned.
  90. Return Value:
  91. STATUS_SUCCESS always.
  92. --*/
  93. KSTATUS
  94. AcpipCreateAliasStatement (
  95. PAML_EXECUTION_CONTEXT Context,
  96. PAML_STATEMENT NextStatement
  97. );
  98. /*++
  99. Routine Description:
  100. This routine creates a statement for opcode 6, an alias statement.
  101. Arguments:
  102. Context - Supplies a pointer to an initialized AML execution context. The
  103. next statement will be created based on the current execution offset.
  104. The current offset of the context will be incremented beyond the portion
  105. of this statement that was successfully parsed.
  106. NextStatement - Supplies a pointer where the next statement will be
  107. returned. The caller is responsible for freeing this memory.
  108. Return Value:
  109. STATUS_SUCCESS on success.
  110. Other error codes if the namespace strings were invalid.
  111. --*/
  112. KSTATUS
  113. AcpipCreateAddStatement (
  114. PAML_EXECUTION_CONTEXT Context,
  115. PAML_STATEMENT NextStatement
  116. );
  117. /*++
  118. Routine Description:
  119. This routine creates a statement for an Add statement.
  120. Arguments:
  121. Context - Supplies a pointer to an initialized AML execution context. The
  122. next statement will be created based on the current execution offset.
  123. The current offset of the context will be incremented beyond the portion
  124. of this statement that was successfully parsed.
  125. NextStatement - Supplies a pointer where the next statement will be
  126. returned.
  127. Return Value:
  128. STATUS_SUCCESS on success.
  129. Other error codes on failure.
  130. --*/
  131. KSTATUS
  132. AcpipCreateAndStatement (
  133. PAML_EXECUTION_CONTEXT Context,
  134. PAML_STATEMENT NextStatement
  135. );
  136. /*++
  137. Routine Description:
  138. This routine creates a statement for opcode 6, an alias statement.
  139. Arguments:
  140. Context - Supplies a pointer to an initialized AML execution context. The
  141. next statement will be created based on the current execution offset.
  142. The current offset of the context will be incremented beyond the portion
  143. of this statement that was successfully parsed.
  144. NextStatement - Supplies a pointer where the next statement will be
  145. returned. The caller is responsible for freeing this memory.
  146. Return Value:
  147. STATUS_SUCCESS on success.
  148. Other error codes on failure.
  149. --*/
  150. KSTATUS
  151. AcpipCreateArgumentStatement (
  152. PAML_EXECUTION_CONTEXT Context,
  153. PAML_STATEMENT NextStatement
  154. );
  155. /*++
  156. Routine Description:
  157. This routine creates a statement for opcodes 0x68 - 0x6E, ArgX statements.
  158. Arguments:
  159. Context - Supplies a pointer to an initialized AML execution context. The
  160. next statement will be created based on the current execution offset.
  161. The current offset of the context will be incremented beyond the portion
  162. of this statement that was successfully parsed.
  163. NextStatement - Supplies a pointer where the next statement will be
  164. returned. The caller is responsible for freeing this memory.
  165. Return Value:
  166. STATUS_SUCCESS always.
  167. --*/
  168. KSTATUS
  169. AcpipCreateBankFieldStatement (
  170. PAML_EXECUTION_CONTEXT Context,
  171. PAML_STATEMENT NextStatement
  172. );
  173. /*++
  174. Routine Description:
  175. This routine creates a BankField (in an Operation Region) statement.
  176. Arguments:
  177. Context - Supplies a pointer to an initialized AML execution context. The
  178. next statement will be created based on the current execution offset.
  179. The current offset of the context will be incremented beyond the portion
  180. of this statement that was successfully parsed.
  181. NextStatement - Supplies a pointer where the next statement will be
  182. returned.
  183. Return Value:
  184. Status code.
  185. --*/
  186. KSTATUS
  187. AcpipCreateBreakStatement (
  188. PAML_EXECUTION_CONTEXT Context,
  189. PAML_STATEMENT NextStatement
  190. );
  191. /*++
  192. Routine Description:
  193. This routine creates a statement for a Break statement (like a break inside
  194. of a while loop, not break like stop).
  195. Arguments:
  196. Context - Supplies a pointer to an initialized AML execution context. The
  197. next statement will be created based on the current execution offset.
  198. The current offset of the context will be incremented beyond the portion
  199. of this statement that was successfully parsed.
  200. NextStatement - Supplies a pointer where the next statement will be
  201. returned.
  202. Return Value:
  203. STATUS_SUCCESS always.
  204. --*/
  205. KSTATUS
  206. AcpipCreateBreakPointStatement (
  207. PAML_EXECUTION_CONTEXT Context,
  208. PAML_STATEMENT NextStatement
  209. );
  210. /*++
  211. Routine Description:
  212. This routine creates a breakpoint statement.
  213. Arguments:
  214. Context - Supplies a pointer to an initialized AML execution context. The
  215. next statement will be created based on the current execution offset.
  216. The current offset of the context will be incremented beyond the portion
  217. of this statement that was successfully parsed.
  218. NextStatement - Supplies a pointer where the next statement will be
  219. returned. The caller is responsible for freeing this memory.
  220. Return Value:
  221. STATUS_SUCCESS always.
  222. --*/
  223. KSTATUS
  224. AcpipCreateBufferStatement (
  225. PAML_EXECUTION_CONTEXT Context,
  226. PAML_STATEMENT NextStatement
  227. );
  228. /*++
  229. Routine Description:
  230. This routine creates a buffer declaration statement.
  231. Arguments:
  232. Context - Supplies a pointer to an initialized AML execution context. The
  233. next statement will be created based on the current execution offset.
  234. The current offset of the context will be incremented beyond the portion
  235. of this statement that was successfully parsed.
  236. NextStatement - Supplies a pointer where the next statement will be
  237. returned.
  238. Return Value:
  239. Status code.
  240. --*/
  241. KSTATUS
  242. AcpipCreateConcatenateResourceTemplatesStatement (
  243. PAML_EXECUTION_CONTEXT Context,
  244. PAML_STATEMENT NextStatement
  245. );
  246. /*++
  247. Routine Description:
  248. This routine creates a "Concatenate Resource Templates" statement.
  249. Arguments:
  250. Context - Supplies a pointer to an initialized AML execution context. The
  251. next statement will be created based on the current execution offset.
  252. The current offset of the context will be incremented beyond the portion
  253. of this statement that was successfully parsed.
  254. NextStatement - Supplies a pointer where the next statement will be
  255. returned.
  256. Return Value:
  257. Status code.
  258. --*/
  259. KSTATUS
  260. AcpipCreateConcatenateStatement (
  261. PAML_EXECUTION_CONTEXT Context,
  262. PAML_STATEMENT NextStatement
  263. );
  264. /*++
  265. Routine Description:
  266. This routine creates a concatenation statement.
  267. Arguments:
  268. Context - Supplies a pointer to an initialized AML execution context. The
  269. next statement will be created based on the current execution offset.
  270. The current offset of the context will be incremented beyond the portion
  271. of this statement that was successfully parsed.
  272. NextStatement - Supplies a pointer where the next statement will be
  273. returned.
  274. Return Value:
  275. Status code.
  276. --*/
  277. KSTATUS
  278. AcpipCreateConditionalReferenceOfStatement (
  279. PAML_EXECUTION_CONTEXT Context,
  280. PAML_STATEMENT NextStatement
  281. );
  282. /*++
  283. Routine Description:
  284. This routine creates a "Conditional Reference Of" statement.
  285. Arguments:
  286. Context - Supplies a pointer to an initialized AML execution context. The
  287. next statement will be created based on the current execution offset.
  288. The current offset of the context will be incremented beyond the portion
  289. of this statement that was successfully parsed.
  290. NextStatement - Supplies a pointer where the next statement will be
  291. returned.
  292. Return Value:
  293. STATUS_SUCCESS always.
  294. --*/
  295. KSTATUS
  296. AcpipCreateContinueStatement (
  297. PAML_EXECUTION_CONTEXT Context,
  298. PAML_STATEMENT NextStatement
  299. );
  300. /*++
  301. Routine Description:
  302. This routine creates a statement for a while loop Continue statement.
  303. Arguments:
  304. Context - Supplies a pointer to an initialized AML execution context. The
  305. next statement will be created based on the current execution offset.
  306. The current offset of the context will be incremented beyond the portion
  307. of this statement that was successfully parsed.
  308. NextStatement - Supplies a pointer where the next statement will be
  309. returned.
  310. Return Value:
  311. STATUS_SUCCESS always.
  312. --*/
  313. KSTATUS
  314. AcpipCreateCopyObjectStatement (
  315. PAML_EXECUTION_CONTEXT Context,
  316. PAML_STATEMENT NextStatement
  317. );
  318. /*++
  319. Routine Description:
  320. This routine creates a "Copy Object" statement.
  321. Arguments:
  322. Context - Supplies a pointer to an initialized AML execution context. The
  323. next statement will be created based on the current execution offset.
  324. The current offset of the context will be incremented beyond the portion
  325. of this statement that was successfully parsed.
  326. NextStatement - Supplies a pointer where the next statement will be
  327. returned.
  328. Return Value:
  329. Status code.
  330. --*/
  331. KSTATUS
  332. AcpipCreateCreateBitFieldStatement (
  333. PAML_EXECUTION_CONTEXT Context,
  334. PAML_STATEMENT NextStatement
  335. );
  336. /*++
  337. Routine Description:
  338. This routine creates a CreateBitField statement.
  339. Arguments:
  340. Context - Supplies a pointer to an initialized AML execution context. The
  341. next statement will be created based on the current execution offset.
  342. The current offset of the context will be incremented beyond the portion
  343. of this statement that was successfully parsed.
  344. NextStatement - Supplies a pointer where the next statement will be
  345. returned. The caller is responsible for freeing this memory.
  346. Return Value:
  347. STATUS_SUCCESS always.
  348. --*/
  349. KSTATUS
  350. AcpipCreateCreateByteFieldStatement (
  351. PAML_EXECUTION_CONTEXT Context,
  352. PAML_STATEMENT NextStatement
  353. );
  354. /*++
  355. Routine Description:
  356. This routine creates a CreateByteField statement.
  357. Arguments:
  358. Context - Supplies a pointer to an initialized AML execution context. The
  359. next statement will be created based on the current execution offset.
  360. The current offset of the context will be incremented beyond the portion
  361. of this statement that was successfully parsed.
  362. NextStatement - Supplies a pointer where the next statement will be
  363. returned. The caller is responsible for freeing this memory.
  364. Return Value:
  365. STATUS_SUCCESS always.
  366. --*/
  367. KSTATUS
  368. AcpipCreateCreateDoubleWordFieldStatement (
  369. PAML_EXECUTION_CONTEXT Context,
  370. PAML_STATEMENT NextStatement
  371. );
  372. /*++
  373. Routine Description:
  374. This routine creates a CreateDWordField statement.
  375. Arguments:
  376. Context - Supplies a pointer to an initialized AML execution context. The
  377. next statement will be created based on the current execution offset.
  378. The current offset of the context will be incremented beyond the portion
  379. of this statement that was successfully parsed.
  380. NextStatement - Supplies a pointer where the next statement will be
  381. returned. The caller is responsible for freeing this memory.
  382. Return Value:
  383. STATUS_SUCCESS always.
  384. --*/
  385. KSTATUS
  386. AcpipCreateCreateFieldStatement (
  387. PAML_EXECUTION_CONTEXT Context,
  388. PAML_STATEMENT NextStatement
  389. );
  390. /*++
  391. Routine Description:
  392. This routine creates a CreateField (of a buffer) statement.
  393. Arguments:
  394. Context - Supplies a pointer to an initialized AML execution context. The
  395. next statement will be created based on the current execution offset.
  396. The current offset of the context will be incremented beyond the portion
  397. of this statement that was successfully parsed.
  398. NextStatement - Supplies a pointer where the next statement will be
  399. returned. The caller is responsible for freeing this memory.
  400. Return Value:
  401. STATUS_SUCCESS always.
  402. --*/
  403. KSTATUS
  404. AcpipCreateCreateQuadWordFieldStatement (
  405. PAML_EXECUTION_CONTEXT Context,
  406. PAML_STATEMENT NextStatement
  407. );
  408. /*++
  409. Routine Description:
  410. This routine creates a CreateQWordField statement.
  411. Arguments:
  412. Context - Supplies a pointer to an initialized AML execution context. The
  413. next statement will be created based on the current execution offset.
  414. The current offset of the context will be incremented beyond the portion
  415. of this statement that was successfully parsed.
  416. NextStatement - Supplies a pointer where the next statement will be
  417. returned. The caller is responsible for freeing this memory.
  418. Return Value:
  419. STATUS_SUCCESS always.
  420. --*/
  421. KSTATUS
  422. AcpipCreateCreateWordFieldStatement (
  423. PAML_EXECUTION_CONTEXT Context,
  424. PAML_STATEMENT NextStatement
  425. );
  426. /*++
  427. Routine Description:
  428. This routine creates a CreateWordField statement.
  429. Arguments:
  430. Context - Supplies a pointer to an initialized AML execution context. The
  431. next statement will be created based on the current execution offset.
  432. The current offset of the context will be incremented beyond the portion
  433. of this statement that was successfully parsed.
  434. NextStatement - Supplies a pointer where the next statement will be
  435. returned. The caller is responsible for freeing this memory.
  436. Return Value:
  437. STATUS_SUCCESS always.
  438. --*/
  439. KSTATUS
  440. AcpipCreateDataStatement (
  441. PAML_EXECUTION_CONTEXT Context,
  442. PAML_STATEMENT NextStatement
  443. );
  444. /*++
  445. Routine Description:
  446. This routine creates a statement for ByteData, WordData, DWordData,
  447. QWordData, and StringData.
  448. Arguments:
  449. Context - Supplies a pointer to an initialized AML execution context. The
  450. next statement will be created based on the current execution offset.
  451. The current offset of the context will be incremented beyond the portion
  452. of this statement that was successfully parsed.
  453. NextStatement - Supplies a pointer where the next statement will be
  454. returned.
  455. Return Value:
  456. Status code.
  457. --*/
  458. KSTATUS
  459. AcpipCreateDataTableRegionStatement (
  460. PAML_EXECUTION_CONTEXT Context,
  461. PAML_STATEMENT NextStatement
  462. );
  463. /*++
  464. Routine Description:
  465. This routine creates a Data Table Region statement.
  466. Arguments:
  467. Context - Supplies a pointer to an initialized AML execution context. The
  468. next statement will be created based on the current execution offset.
  469. The current offset of the context will be incremented beyond the portion
  470. of this statement that was successfully parsed.
  471. NextStatement - Supplies a pointer where the next statement will be
  472. returned.
  473. Return Value:
  474. STATUS_SUCCESS always.
  475. --*/
  476. KSTATUS
  477. AcpipCreateDebugStatement (
  478. PAML_EXECUTION_CONTEXT Context,
  479. PAML_STATEMENT NextStatement
  480. );
  481. /*++
  482. Routine Description:
  483. This routine creates a Debug object statement.
  484. Arguments:
  485. Context - Supplies a pointer to an initialized AML execution context. The
  486. next statement will be created based on the current execution offset.
  487. The current offset of the context will be incremented beyond the portion
  488. of this statement that was successfully parsed.
  489. NextStatement - Supplies a pointer where the next statement will be
  490. returned.
  491. Return Value:
  492. STATUS_SUCCESS always.
  493. --*/
  494. KSTATUS
  495. AcpipCreateDecrementStatement (
  496. PAML_EXECUTION_CONTEXT Context,
  497. PAML_STATEMENT NextStatement
  498. );
  499. /*++
  500. Routine Description:
  501. This routine creates a Decrement object statement.
  502. Arguments:
  503. Context - Supplies a pointer to an initialized AML execution context. The
  504. next statement will be created based on the current execution offset.
  505. The current offset of the context will be incremented beyond the portion
  506. of this statement that was successfully parsed.
  507. NextStatement - Supplies a pointer where the next statement will be
  508. returned.
  509. Return Value:
  510. STATUS_SUCCESS always.
  511. --*/
  512. KSTATUS
  513. AcpipCreateDereferenceOfStatement (
  514. PAML_EXECUTION_CONTEXT Context,
  515. PAML_STATEMENT NextStatement
  516. );
  517. /*++
  518. Routine Description:
  519. This routine creates a "Dereference Of" statement.
  520. Arguments:
  521. Context - Supplies a pointer to an initialized AML execution context. The
  522. next statement will be created based on the current execution offset.
  523. The current offset of the context will be incremented beyond the portion
  524. of this statement that was successfully parsed.
  525. NextStatement - Supplies a pointer where the next statement will be
  526. returned.
  527. Return Value:
  528. STATUS_SUCCESS always.
  529. --*/
  530. KSTATUS
  531. AcpipCreateDeviceStatement (
  532. PAML_EXECUTION_CONTEXT Context,
  533. PAML_STATEMENT NextStatement
  534. );
  535. /*++
  536. Routine Description:
  537. This routine creates a Device statement.
  538. Arguments:
  539. Context - Supplies a pointer to an initialized AML execution context. The
  540. next statement will be created based on the current execution offset.
  541. The current offset of the context will be incremented beyond the portion
  542. of this statement that was successfully parsed.
  543. NextStatement - Supplies a pointer where the next statement will be
  544. returned.
  545. Return Value:
  546. Status code.
  547. --*/
  548. KSTATUS
  549. AcpipCreateDivideStatement (
  550. PAML_EXECUTION_CONTEXT Context,
  551. PAML_STATEMENT NextStatement
  552. );
  553. /*++
  554. Routine Description:
  555. This routine creates a Divide statement.
  556. Arguments:
  557. Context - Supplies a pointer to an initialized AML execution context. The
  558. next statement will be created based on the current execution offset.
  559. The current offset of the context will be incremented beyond the portion
  560. of this statement that was successfully parsed.
  561. NextStatement - Supplies a pointer where the next statement will be
  562. returned.
  563. Return Value:
  564. STATUS_SUCCESS always.
  565. --*/
  566. KSTATUS
  567. AcpipCreateElseStatement (
  568. PAML_EXECUTION_CONTEXT Context,
  569. PAML_STATEMENT NextStatement
  570. );
  571. /*++
  572. Routine Description:
  573. This routine creates an Else statement.
  574. Arguments:
  575. Context - Supplies a pointer to an initialized AML execution context. The
  576. next statement will be created based on the current execution offset.
  577. The current offset of the context will be incremented beyond the portion
  578. of this statement that was successfully parsed.
  579. NextStatement - Supplies a pointer where the next statement will be
  580. returned.
  581. Return Value:
  582. Status code.
  583. --*/
  584. KSTATUS
  585. AcpipCreateEventStatement (
  586. PAML_EXECUTION_CONTEXT Context,
  587. PAML_STATEMENT NextStatement
  588. );
  589. /*++
  590. Routine Description:
  591. This routine creates an Event statement.
  592. Arguments:
  593. Context - Supplies a pointer to an initialized AML execution context. The
  594. next statement will be created based on the current execution offset.
  595. The current offset of the context will be incremented beyond the portion
  596. of this statement that was successfully parsed.
  597. NextStatement - Supplies a pointer where the next statement will be
  598. returned.
  599. Return Value:
  600. Status code.
  601. --*/
  602. KSTATUS
  603. AcpipCreateFatalStatement (
  604. PAML_EXECUTION_CONTEXT Context,
  605. PAML_STATEMENT NextStatement
  606. );
  607. /*++
  608. Routine Description:
  609. This routine creates a Fatal statement.
  610. Arguments:
  611. Context - Supplies a pointer to an initialized AML execution context. The
  612. next statement will be created based on the current execution offset.
  613. The current offset of the context will be incremented beyond the portion
  614. of this statement that was successfully parsed.
  615. NextStatement - Supplies a pointer where the next statement will be
  616. returned.
  617. Return Value:
  618. STATUS_SUCCESS always.
  619. --*/
  620. KSTATUS
  621. AcpipCreateFieldStatement (
  622. PAML_EXECUTION_CONTEXT Context,
  623. PAML_STATEMENT NextStatement
  624. );
  625. /*++
  626. Routine Description:
  627. This routine creates a Field (in an Operation Region) statement.
  628. Arguments:
  629. Context - Supplies a pointer to an initialized AML execution context. The
  630. next statement will be created based on the current execution offset.
  631. The current offset of the context will be incremented beyond the portion
  632. of this statement that was successfully parsed.
  633. NextStatement - Supplies a pointer where the next statement will be
  634. returned.
  635. Return Value:
  636. Status code.
  637. --*/
  638. KSTATUS
  639. AcpipCreateFindSetLeftBitStatement (
  640. PAML_EXECUTION_CONTEXT Context,
  641. PAML_STATEMENT NextStatement
  642. );
  643. /*++
  644. Routine Description:
  645. This routine creates a "Find Set Left Bit" statement.
  646. Arguments:
  647. Context - Supplies a pointer to an initialized AML execution context. The
  648. next statement will be created based on the current execution offset.
  649. The current offset of the context will be incremented beyond the portion
  650. of this statement that was successfully parsed.
  651. NextStatement - Supplies a pointer where the next statement will be
  652. returned.
  653. Return Value:
  654. STATUS_SUCCESS always.
  655. --*/
  656. KSTATUS
  657. AcpipCreateFindSetRightBitStatement (
  658. PAML_EXECUTION_CONTEXT Context,
  659. PAML_STATEMENT NextStatement
  660. );
  661. /*++
  662. Routine Description:
  663. This routine creates a "Find Set Right Bit" statement.
  664. Arguments:
  665. Context - Supplies a pointer to an initialized AML execution context. The
  666. next statement will be created based on the current execution offset.
  667. The current offset of the context will be incremented beyond the portion
  668. of this statement that was successfully parsed.
  669. NextStatement - Supplies a pointer where the next statement will be
  670. returned.
  671. Return Value:
  672. STATUS_SUCCESS always.
  673. --*/
  674. KSTATUS
  675. AcpipCreateFromBcdStatement (
  676. PAML_EXECUTION_CONTEXT Context,
  677. PAML_STATEMENT NextStatement
  678. );
  679. /*++
  680. Routine Description:
  681. This routine creates a "Find BCD" statement.
  682. Arguments:
  683. Context - Supplies a pointer to an initialized AML execution context. The
  684. next statement will be created based on the current execution offset.
  685. The current offset of the context will be incremented beyond the portion
  686. of this statement that was successfully parsed.
  687. NextStatement - Supplies a pointer where the next statement will be
  688. returned.
  689. Return Value:
  690. STATUS_SUCCESS always.
  691. --*/
  692. KSTATUS
  693. AcpipCreateIfStatement (
  694. PAML_EXECUTION_CONTEXT Context,
  695. PAML_STATEMENT NextStatement
  696. );
  697. /*++
  698. Routine Description:
  699. This routine creates an If statement.
  700. Arguments:
  701. Context - Supplies a pointer to an initialized AML execution context. The
  702. next statement will be created based on the current execution offset.
  703. The current offset of the context will be incremented beyond the portion
  704. of this statement that was successfully parsed.
  705. NextStatement - Supplies a pointer where the next statement will be
  706. returned.
  707. Return Value:
  708. Status code.
  709. --*/
  710. KSTATUS
  711. AcpipCreateIncrementStatement (
  712. PAML_EXECUTION_CONTEXT Context,
  713. PAML_STATEMENT NextStatement
  714. );
  715. /*++
  716. Routine Description:
  717. This routine creates a Increment object statement.
  718. Arguments:
  719. Context - Supplies a pointer to an initialized AML execution context. The
  720. next statement will be created based on the current execution offset.
  721. The current offset of the context will be incremented beyond the portion
  722. of this statement that was successfully parsed.
  723. NextStatement - Supplies a pointer where the next statement will be
  724. returned.
  725. Return Value:
  726. STATUS_SUCCESS always.
  727. --*/
  728. KSTATUS
  729. AcpipCreateIndexFieldStatement (
  730. PAML_EXECUTION_CONTEXT Context,
  731. PAML_STATEMENT NextStatement
  732. );
  733. /*++
  734. Routine Description:
  735. This routine creates a IndexField (in an Operation Region) statement.
  736. Arguments:
  737. Context - Supplies a pointer to an initialized AML execution context. The
  738. next statement will be created based on the current execution offset.
  739. The current offset of the context will be incremented beyond the portion
  740. of this statement that was successfully parsed.
  741. NextStatement - Supplies a pointer where the next statement will be
  742. returned.
  743. Return Value:
  744. Status code.
  745. --*/
  746. KSTATUS
  747. AcpipCreateIndexStatement (
  748. PAML_EXECUTION_CONTEXT Context,
  749. PAML_STATEMENT NextStatement
  750. );
  751. /*++
  752. Routine Description:
  753. This routine creates an Index statement.
  754. Arguments:
  755. Context - Supplies a pointer to an initialized AML execution context. The
  756. next statement will be created based on the current execution offset.
  757. The current offset of the context will be incremented beyond the portion
  758. of this statement that was successfully parsed.
  759. NextStatement - Supplies a pointer where the next statement will be
  760. returned. The caller is responsible for freeing this memory.
  761. Return Value:
  762. STATUS_SUCCESS always.
  763. --*/
  764. KSTATUS
  765. AcpipCreateInvalidOpcodeStatement (
  766. PAML_EXECUTION_CONTEXT Context,
  767. PAML_STATEMENT NextStatement
  768. );
  769. /*++
  770. Routine Description:
  771. This routine is a placeholder function executed when an invalid opcode of
  772. AML code is parsed.
  773. Arguments:
  774. Context - Supplies a pointer to an initialized AML execution context. The
  775. next statement will be created based on the current execution offset.
  776. The current offset of the context will be incremented beyond the portion
  777. of this statement that was successfully parsed.
  778. NextStatement - Supplies a pointer where the next statement will be
  779. returned. The caller is responsible for freeing this memory.
  780. Return Value:
  781. STATUS_INVALID_OPCODE always.
  782. --*/
  783. KSTATUS
  784. AcpipCreateLoadStatement (
  785. PAML_EXECUTION_CONTEXT Context,
  786. PAML_STATEMENT NextStatement
  787. );
  788. /*++
  789. Routine Description:
  790. This routine creates a Load (definition block) statement.
  791. Arguments:
  792. Context - Supplies a pointer to an initialized AML execution context. The
  793. next statement will be created based on the current execution offset.
  794. The current offset of the context will be incremented beyond the portion
  795. of this statement that was successfully parsed.
  796. NextStatement - Supplies a pointer where the next statement will be
  797. returned. The caller is responsible for freeing this memory.
  798. Return Value:
  799. STATUS_SUCCESS always.
  800. --*/
  801. KSTATUS
  802. AcpipCreateLoadTableStatement (
  803. PAML_EXECUTION_CONTEXT Context,
  804. PAML_STATEMENT NextStatement
  805. );
  806. /*++
  807. Routine Description:
  808. This routine creates a LoadTable statement.
  809. Arguments:
  810. Context - Supplies a pointer to an initialized AML execution context. The
  811. next statement will be created based on the current execution offset.
  812. The current offset of the context will be incremented beyond the portion
  813. of this statement that was successfully parsed.
  814. NextStatement - Supplies a pointer where the next statement will be
  815. returned. The caller is responsible for freeing this memory.
  816. Return Value:
  817. STATUS_SUCCESS always.
  818. --*/
  819. KSTATUS
  820. AcpipCreateLocalStatement (
  821. PAML_EXECUTION_CONTEXT Context,
  822. PAML_STATEMENT NextStatement
  823. );
  824. /*++
  825. Routine Description:
  826. This routine creates a statement for opcodes 0x60 - 0x67, LocalX statements.
  827. Arguments:
  828. Context - Supplies a pointer to an initialized AML execution context. The
  829. next statement will be created based on the current execution offset.
  830. The current offset of the context will be incremented beyond the portion
  831. of this statement that was successfully parsed.
  832. NextStatement - Supplies a pointer where the next statement will be
  833. returned. The caller is responsible for freeing this memory.
  834. Return Value:
  835. STATUS_SUCCESS always.
  836. --*/
  837. KSTATUS
  838. AcpipCreateLogicalAndStatement (
  839. PAML_EXECUTION_CONTEXT Context,
  840. PAML_STATEMENT NextStatement
  841. );
  842. /*++
  843. Routine Description:
  844. This routine creates a Logical And statement.
  845. Arguments:
  846. Context - Supplies a pointer to an initialized AML execution context. The
  847. next statement will be created based on the current execution offset.
  848. The current offset of the context will be incremented beyond the portion
  849. of this statement that was successfully parsed.
  850. NextStatement - Supplies a pointer where the next statement will be
  851. returned.
  852. Return Value:
  853. STATUS_SUCCESS always.
  854. --*/
  855. KSTATUS
  856. AcpipCreateLogicalEqualStatement (
  857. PAML_EXECUTION_CONTEXT Context,
  858. PAML_STATEMENT NextStatement
  859. );
  860. /*++
  861. Routine Description:
  862. This routine creates a Logical Equal statement.
  863. Arguments:
  864. Context - Supplies a pointer to an initialized AML execution context. The
  865. next statement will be created based on the current execution offset.
  866. The current offset of the context will be incremented beyond the portion
  867. of this statement that was successfully parsed.
  868. NextStatement - Supplies a pointer where the next statement will be
  869. returned.
  870. Return Value:
  871. STATUS_SUCCESS always.
  872. --*/
  873. KSTATUS
  874. AcpipCreateLogicalGreaterStatement (
  875. PAML_EXECUTION_CONTEXT Context,
  876. PAML_STATEMENT NextStatement
  877. );
  878. /*++
  879. Routine Description:
  880. This routine creates a Logical Greater statement.
  881. Arguments:
  882. Context - Supplies a pointer to an initialized AML execution context. The
  883. next statement will be created based on the current execution offset.
  884. The current offset of the context will be incremented beyond the portion
  885. of this statement that was successfully parsed.
  886. NextStatement - Supplies a pointer where the next statement will be
  887. returned.
  888. Return Value:
  889. STATUS_SUCCESS always.
  890. --*/
  891. KSTATUS
  892. AcpipCreateLogicalLessStatement (
  893. PAML_EXECUTION_CONTEXT Context,
  894. PAML_STATEMENT NextStatement
  895. );
  896. /*++
  897. Routine Description:
  898. This routine creates a Logical Less statement.
  899. Arguments:
  900. Context - Supplies a pointer to an initialized AML execution context. The
  901. next statement will be created based on the current execution offset.
  902. The current offset of the context will be incremented beyond the portion
  903. of this statement that was successfully parsed.
  904. NextStatement - Supplies a pointer where the next statement will be
  905. returned.
  906. Return Value:
  907. STATUS_SUCCESS always.
  908. --*/
  909. KSTATUS
  910. AcpipCreateLogicalNotStatement (
  911. PAML_EXECUTION_CONTEXT Context,
  912. PAML_STATEMENT NextStatement
  913. );
  914. /*++
  915. Routine Description:
  916. This routine creates a Logical Not statement.
  917. Arguments:
  918. Context - Supplies a pointer to an initialized AML execution context. The
  919. next statement will be created based on the current execution offset.
  920. The current offset of the context will be incremented beyond the portion
  921. of this statement that was successfully parsed.
  922. NextStatement - Supplies a pointer where the next statement will be
  923. returned.
  924. Return Value:
  925. STATUS_SUCCESS always.
  926. --*/
  927. KSTATUS
  928. AcpipCreateLogicalOrStatement (
  929. PAML_EXECUTION_CONTEXT Context,
  930. PAML_STATEMENT NextStatement
  931. );
  932. /*++
  933. Routine Description:
  934. This routine creates a Logical Or statement.
  935. Arguments:
  936. Context - Supplies a pointer to an initialized AML execution context. The
  937. next statement will be created based on the current execution offset.
  938. The current offset of the context will be incremented beyond the portion
  939. of this statement that was successfully parsed.
  940. NextStatement - Supplies a pointer where the next statement will be
  941. returned.
  942. Return Value:
  943. STATUS_SUCCESS always.
  944. --*/
  945. KSTATUS
  946. AcpipCreateMatchStatement (
  947. PAML_EXECUTION_CONTEXT Context,
  948. PAML_STATEMENT NextStatement
  949. );
  950. /*++
  951. Routine Description:
  952. This routine creates a Match statement.
  953. Arguments:
  954. Context - Supplies a pointer to an initialized AML execution context. The
  955. next statement will be created based on the current execution offset.
  956. The current offset of the context will be incremented beyond the portion
  957. of this statement that was successfully parsed.
  958. NextStatement - Supplies a pointer where the next statement will be
  959. returned. The caller is responsible for freeing this memory.
  960. Return Value:
  961. STATUS_SUCCESS always.
  962. --*/
  963. KSTATUS
  964. AcpipCreateMethodStatement (
  965. PAML_EXECUTION_CONTEXT Context,
  966. PAML_STATEMENT NextStatement
  967. );
  968. /*++
  969. Routine Description:
  970. This routine creates a Method statement.
  971. Arguments:
  972. Context - Supplies a pointer to an initialized AML execution context. The
  973. next statement will be created based on the current execution offset.
  974. The current offset of the context will be incremented beyond the portion
  975. of this statement that was successfully parsed.
  976. NextStatement - Supplies a pointer where the next statement will be
  977. returned. The caller is responsible for freeing this memory.
  978. Return Value:
  979. Status code.
  980. --*/
  981. KSTATUS
  982. AcpipCreateMidStatement (
  983. PAML_EXECUTION_CONTEXT Context,
  984. PAML_STATEMENT NextStatement
  985. );
  986. /*++
  987. Routine Description:
  988. This routine creates a Mid statement.
  989. Arguments:
  990. Context - Supplies a pointer to an initialized AML execution context. The
  991. next statement will be created based on the current execution offset.
  992. The current offset of the context will be incremented beyond the portion
  993. of this statement that was successfully parsed.
  994. NextStatement - Supplies a pointer where the next statement will be
  995. returned. The caller is responsible for freeing this memory.
  996. Return Value:
  997. STATUS_SUCCESS always.
  998. --*/
  999. KSTATUS
  1000. AcpipCreateModStatement (
  1001. PAML_EXECUTION_CONTEXT Context,
  1002. PAML_STATEMENT NextStatement
  1003. );
  1004. /*++
  1005. Routine Description:
  1006. This routine creates a statement for an Mod statement.
  1007. Arguments:
  1008. Context - Supplies a pointer to an initialized AML execution context. The
  1009. next statement will be created based on the current execution offset.
  1010. The current offset of the context will be incremented beyond the portion
  1011. of this statement that was successfully parsed.
  1012. NextStatement - Supplies a pointer where the next statement will be
  1013. returned.
  1014. Return Value:
  1015. STATUS_SUCCESS on success.
  1016. Other error codes on failure.
  1017. --*/
  1018. KSTATUS
  1019. AcpipCreateMultiplyStatement (
  1020. PAML_EXECUTION_CONTEXT Context,
  1021. PAML_STATEMENT NextStatement
  1022. );
  1023. /*++
  1024. Routine Description:
  1025. This routine creates a statement for a Multiply statement.
  1026. Arguments:
  1027. Context - Supplies a pointer to an initialized AML execution context. The
  1028. next statement will be created based on the current execution offset.
  1029. The current offset of the context will be incremented beyond the portion
  1030. of this statement that was successfully parsed.
  1031. NextStatement - Supplies a pointer where the next statement will be
  1032. returned.
  1033. Return Value:
  1034. STATUS_SUCCESS always.
  1035. --*/
  1036. KSTATUS
  1037. AcpipCreateMutexStatement (
  1038. PAML_EXECUTION_CONTEXT Context,
  1039. PAML_STATEMENT NextStatement
  1040. );
  1041. /*++
  1042. Routine Description:
  1043. This routine creates a statement for a Mutex (create) statement.
  1044. Arguments:
  1045. Context - Supplies a pointer to an initialized AML execution context. The
  1046. next statement will be created based on the current execution offset.
  1047. The current offset of the context will be incremented beyond the portion
  1048. of this statement that was successfully parsed.
  1049. NextStatement - Supplies a pointer where the next statement will be
  1050. returned.
  1051. Return Value:
  1052. Status code.
  1053. --*/
  1054. KSTATUS
  1055. AcpipCreateNameStatement (
  1056. PAML_EXECUTION_CONTEXT Context,
  1057. PAML_STATEMENT NextStatement
  1058. );
  1059. /*++
  1060. Routine Description:
  1061. This routine creates a statement for a Name statement.
  1062. Arguments:
  1063. Context - Supplies a pointer to an initialized AML execution context. The
  1064. next statement will be created based on the current execution offset.
  1065. The current offset of the context will be incremented beyond the portion
  1066. of this statement that was successfully parsed.
  1067. NextStatement - Supplies a pointer where the next statement will be
  1068. returned.
  1069. Return Value:
  1070. STATUS_SUCCESS on success.
  1071. Other error codes on failure.
  1072. --*/
  1073. KSTATUS
  1074. AcpipCreateNameStringStatement (
  1075. PAML_EXECUTION_CONTEXT Context,
  1076. PAML_STATEMENT NextStatement
  1077. );
  1078. /*++
  1079. Routine Description:
  1080. This routine creates a statement for a NameString statement.
  1081. Arguments:
  1082. Context - Supplies a pointer to an initialized AML execution context. The
  1083. next statement will be created based on the current execution offset.
  1084. The current offset of the context will be incremented beyond the portion
  1085. of this statement that was successfully parsed.
  1086. NextStatement - Supplies a pointer where the next statement will be
  1087. returned.
  1088. Return Value:
  1089. STATUS_SUCCESS on success.
  1090. Other error codes on failure.
  1091. --*/
  1092. KSTATUS
  1093. AcpipCreateNandStatement (
  1094. PAML_EXECUTION_CONTEXT Context,
  1095. PAML_STATEMENT NextStatement
  1096. );
  1097. /*++
  1098. Routine Description:
  1099. This routine creates a statement for a Nand statement.
  1100. Arguments:
  1101. Context - Supplies a pointer to an initialized AML execution context. The
  1102. next statement will be created based on the current execution offset.
  1103. The current offset of the context will be incremented beyond the portion
  1104. of this statement that was successfully parsed.
  1105. NextStatement - Supplies a pointer where the next statement will be
  1106. returned.
  1107. Return Value:
  1108. STATUS_SUCCESS always.
  1109. --*/
  1110. KSTATUS
  1111. AcpipCreateNoOpStatement (
  1112. PAML_EXECUTION_CONTEXT Context,
  1113. PAML_STATEMENT NextStatement
  1114. );
  1115. /*++
  1116. Routine Description:
  1117. This routine creates a statement for a No-Op statement.
  1118. Arguments:
  1119. Context - Supplies a pointer to an initialized AML execution context. The
  1120. next statement will be created based on the current execution offset.
  1121. The current offset of the context will be incremented beyond the portion
  1122. of this statement that was successfully parsed.
  1123. NextStatement - Supplies a pointer where the next statement will be
  1124. returned.
  1125. Return Value:
  1126. STATUS_SUCCESS always.
  1127. --*/
  1128. KSTATUS
  1129. AcpipCreateNorStatement (
  1130. PAML_EXECUTION_CONTEXT Context,
  1131. PAML_STATEMENT NextStatement
  1132. );
  1133. /*++
  1134. Routine Description:
  1135. This routine creates a statement for a Nor statement.
  1136. Arguments:
  1137. Context - Supplies a pointer to an initialized AML execution context. The
  1138. next statement will be created based on the current execution offset.
  1139. The current offset of the context will be incremented beyond the portion
  1140. of this statement that was successfully parsed.
  1141. NextStatement - Supplies a pointer where the next statement will be
  1142. returned.
  1143. Return Value:
  1144. STATUS_SUCCESS always.
  1145. --*/
  1146. KSTATUS
  1147. AcpipCreateNotifyStatement (
  1148. PAML_EXECUTION_CONTEXT Context,
  1149. PAML_STATEMENT NextStatement
  1150. );
  1151. /*++
  1152. Routine Description:
  1153. This routine creates a Notify statement.
  1154. Arguments:
  1155. Context - Supplies a pointer to an initialized AML execution context. The
  1156. next statement will be created based on the current execution offset.
  1157. The current offset of the context will be incremented beyond the portion
  1158. of this statement that was successfully parsed.
  1159. NextStatement - Supplies a pointer where the next statement will be
  1160. returned.
  1161. Return Value:
  1162. STATUS_SUCCESS always.
  1163. --*/
  1164. KSTATUS
  1165. AcpipCreateNotStatement (
  1166. PAML_EXECUTION_CONTEXT Context,
  1167. PAML_STATEMENT NextStatement
  1168. );
  1169. /*++
  1170. Routine Description:
  1171. This routine creates a bitwise Not statement.
  1172. Arguments:
  1173. Context - Supplies a pointer to an initialized AML execution context. The
  1174. next statement will be created based on the current execution offset.
  1175. The current offset of the context will be incremented beyond the portion
  1176. of this statement that was successfully parsed.
  1177. NextStatement - Supplies a pointer where the next statement will be
  1178. returned.
  1179. Return Value:
  1180. STATUS_SUCCESS always.
  1181. --*/
  1182. KSTATUS
  1183. AcpipCreateObjectTypeStatement (
  1184. PAML_EXECUTION_CONTEXT Context,
  1185. PAML_STATEMENT NextStatement
  1186. );
  1187. /*++
  1188. Routine Description:
  1189. This routine creates an Object Type statement.
  1190. Arguments:
  1191. Context - Supplies a pointer to an initialized AML execution context. The
  1192. next statement will be created based on the current execution offset.
  1193. The current offset of the context will be incremented beyond the portion
  1194. of this statement that was successfully parsed.
  1195. NextStatement - Supplies a pointer where the next statement will be
  1196. returned.
  1197. Return Value:
  1198. STATUS_SUCCESS always.
  1199. --*/
  1200. KSTATUS
  1201. AcpipCreateOrStatement (
  1202. PAML_EXECUTION_CONTEXT Context,
  1203. PAML_STATEMENT NextStatement
  1204. );
  1205. /*++
  1206. Routine Description:
  1207. This routine creates a statement for an Or statement.
  1208. Arguments:
  1209. Context - Supplies a pointer to an initialized AML execution context. The
  1210. next statement will be created based on the current execution offset.
  1211. The current offset of the context will be incremented beyond the portion
  1212. of this statement that was successfully parsed.
  1213. NextStatement - Supplies a pointer where the next statement will be
  1214. returned.
  1215. Return Value:
  1216. STATUS_SUCCESS always.
  1217. --*/
  1218. KSTATUS
  1219. AcpipCreateOnesStatement (
  1220. PAML_EXECUTION_CONTEXT Context,
  1221. PAML_STATEMENT NextStatement
  1222. );
  1223. /*++
  1224. Routine Description:
  1225. This routine creates a Ones statement, which is a constant of all Fs.
  1226. Arguments:
  1227. Context - Supplies a pointer to an initialized AML execution context. The
  1228. next statement will be created based on the current execution offset.
  1229. The current offset of the context will be incremented beyond the portion
  1230. of this statement that was successfully parsed.
  1231. NextStatement - Supplies a pointer where the next statement will be
  1232. returned. The caller is responsible for freeing this memory.
  1233. Return Value:
  1234. STATUS_SUCCESS always.
  1235. --*/
  1236. KSTATUS
  1237. AcpipCreateOneStatement (
  1238. PAML_EXECUTION_CONTEXT Context,
  1239. PAML_STATEMENT NextStatement
  1240. );
  1241. /*++
  1242. Routine Description:
  1243. This routine creates a statement for opcode 1, a constant 1.
  1244. Arguments:
  1245. Context - Supplies a pointer to an initialized AML execution context. The
  1246. next statement will be created based on the current execution offset.
  1247. The current offset of the context will be incremented beyond the portion
  1248. of this statement that was successfully parsed.
  1249. NextStatement - Supplies a pointer where the next statement will be
  1250. returned. The caller is responsible for freeing this memory.
  1251. Return Value:
  1252. STATUS_SUCCESS always.
  1253. --*/
  1254. KSTATUS
  1255. AcpipCreateOperationRegionStatement (
  1256. PAML_EXECUTION_CONTEXT Context,
  1257. PAML_STATEMENT NextStatement
  1258. );
  1259. /*++
  1260. Routine Description:
  1261. This routine creates an Operation Region statement.
  1262. Arguments:
  1263. Context - Supplies a pointer to an initialized AML execution context. The
  1264. next statement will be created based on the current execution offset.
  1265. The current offset of the context will be incremented beyond the portion
  1266. of this statement that was successfully parsed.
  1267. NextStatement - Supplies a pointer where the next statement will be
  1268. returned. The caller is responsible for freeing this memory.
  1269. Return Value:
  1270. Status code.
  1271. --*/
  1272. KSTATUS
  1273. AcpipCreatePackageStatement (
  1274. PAML_EXECUTION_CONTEXT Context,
  1275. PAML_STATEMENT NextStatement
  1276. );
  1277. /*++
  1278. Routine Description:
  1279. This routine creates a Package statement (basically an array of objects).
  1280. Arguments:
  1281. Context - Supplies a pointer to an initialized AML execution context. The
  1282. next statement will be created based on the current execution offset.
  1283. The current offset of the context will be incremented beyond the portion
  1284. of this statement that was successfully parsed.
  1285. NextStatement - Supplies a pointer where the next statement will be
  1286. returned. The caller is responsible for freeing this memory.
  1287. Return Value:
  1288. Status code.
  1289. --*/
  1290. KSTATUS
  1291. AcpipCreatePowerResourceStatement (
  1292. PAML_EXECUTION_CONTEXT Context,
  1293. PAML_STATEMENT NextStatement
  1294. );
  1295. /*++
  1296. Routine Description:
  1297. This routine creates a statement for a Power Resource declaration statement.
  1298. Arguments:
  1299. Context - Supplies a pointer to an initialized AML execution context. The
  1300. next statement will be created based on the current execution offset.
  1301. The current offset of the context will be incremented beyond the portion
  1302. of this statement that was successfully parsed.
  1303. NextStatement - Supplies a pointer where the next statement will be
  1304. returned.
  1305. Return Value:
  1306. Status code.
  1307. --*/
  1308. KSTATUS
  1309. AcpipCreateProcessorStatement (
  1310. PAML_EXECUTION_CONTEXT Context,
  1311. PAML_STATEMENT NextStatement
  1312. );
  1313. /*++
  1314. Routine Description:
  1315. This routine creates a statement for a Processor declaration statement.
  1316. Arguments:
  1317. Context - Supplies a pointer to an initialized AML execution context. The
  1318. next statement will be created based on the current execution offset.
  1319. The current offset of the context will be incremented beyond the portion
  1320. of this statement that was successfully parsed.
  1321. NextStatement - Supplies a pointer where the next statement will be
  1322. returned.
  1323. Return Value:
  1324. Status code.
  1325. --*/
  1326. KSTATUS
  1327. AcpipCreateReferenceOfStatement (
  1328. PAML_EXECUTION_CONTEXT Context,
  1329. PAML_STATEMENT NextStatement
  1330. );
  1331. /*++
  1332. Routine Description:
  1333. This routine creates a "Reference Of" statement.
  1334. Arguments:
  1335. Context - Supplies a pointer to an initialized AML execution context. The
  1336. next statement will be created based on the current execution offset.
  1337. The current offset of the context will be incremented beyond the portion
  1338. of this statement that was successfully parsed.
  1339. NextStatement - Supplies a pointer where the next statement will be
  1340. returned.
  1341. Return Value:
  1342. STATUS_SUCCESS always.
  1343. --*/
  1344. KSTATUS
  1345. AcpipCreateReleaseStatement (
  1346. PAML_EXECUTION_CONTEXT Context,
  1347. PAML_STATEMENT NextStatement
  1348. );
  1349. /*++
  1350. Routine Description:
  1351. This routine creates a Release (mutex) statement.
  1352. Arguments:
  1353. Context - Supplies a pointer to an initialized AML execution context. The
  1354. next statement will be created based on the current execution offset.
  1355. The current offset of the context will be incremented beyond the portion
  1356. of this statement that was successfully parsed.
  1357. NextStatement - Supplies a pointer where the next statement will be
  1358. returned.
  1359. Return Value:
  1360. STATUS_SUCCESS always.
  1361. --*/
  1362. KSTATUS
  1363. AcpipCreateResetStatement (
  1364. PAML_EXECUTION_CONTEXT Context,
  1365. PAML_STATEMENT NextStatement
  1366. );
  1367. /*++
  1368. Routine Description:
  1369. This routine creates a Reset (event) statement.
  1370. Arguments:
  1371. Context - Supplies a pointer to an initialized AML execution context. The
  1372. next statement will be created based on the current execution offset.
  1373. The current offset of the context will be incremented beyond the portion
  1374. of this statement that was successfully parsed.
  1375. NextStatement - Supplies a pointer where the next statement will be
  1376. returned.
  1377. Return Value:
  1378. STATUS_SUCCESS always.
  1379. --*/
  1380. KSTATUS
  1381. AcpipCreateReturnStatement (
  1382. PAML_EXECUTION_CONTEXT Context,
  1383. PAML_STATEMENT NextStatement
  1384. );
  1385. /*++
  1386. Routine Description:
  1387. This routine creates a Return statement.
  1388. Arguments:
  1389. Context - Supplies a pointer to an initialized AML execution context. The
  1390. next statement will be created based on the current execution offset.
  1391. The current offset of the context will be incremented beyond the portion
  1392. of this statement that was successfully parsed.
  1393. NextStatement - Supplies a pointer where the next statement will be
  1394. returned. The caller is responsible for freeing this memory.
  1395. Return Value:
  1396. STATUS_SUCCESS always.
  1397. --*/
  1398. KSTATUS
  1399. AcpipCreateRevisionStatement (
  1400. PAML_EXECUTION_CONTEXT Context,
  1401. PAML_STATEMENT NextStatement
  1402. );
  1403. /*++
  1404. Routine Description:
  1405. This routine creates a Revision statement.
  1406. Arguments:
  1407. Context - Supplies a pointer to an initialized AML execution context. The
  1408. next statement will be created based on the current execution offset.
  1409. The current offset of the context will be incremented beyond the portion
  1410. of this statement that was successfully parsed.
  1411. NextStatement - Supplies a pointer where the next statement will be
  1412. returned. The caller is responsible for freeing this memory.
  1413. Return Value:
  1414. STATUS_SUCCESS always.
  1415. --*/
  1416. KSTATUS
  1417. AcpipCreateScopeStatement (
  1418. PAML_EXECUTION_CONTEXT Context,
  1419. PAML_STATEMENT NextStatement
  1420. );
  1421. /*++
  1422. Routine Description:
  1423. This routine creates a Scope statement.
  1424. Arguments:
  1425. Context - Supplies a pointer to an initialized AML execution context. The
  1426. next statement will be created based on the current execution offset.
  1427. The current offset of the context will be incremented beyond the portion
  1428. of this statement that was successfully parsed.
  1429. NextStatement - Supplies a pointer where the next statement will be
  1430. returned.
  1431. Return Value:
  1432. Status code.
  1433. --*/
  1434. KSTATUS
  1435. AcpipCreateShiftLeftStatement (
  1436. PAML_EXECUTION_CONTEXT Context,
  1437. PAML_STATEMENT NextStatement
  1438. );
  1439. /*++
  1440. Routine Description:
  1441. This routine creates a statement for a Shift Left statement.
  1442. Arguments:
  1443. Context - Supplies a pointer to an initialized AML execution context. The
  1444. next statement will be created based on the current execution offset.
  1445. The current offset of the context will be incremented beyond the portion
  1446. of this statement that was successfully parsed.
  1447. NextStatement - Supplies a pointer where the next statement will be
  1448. returned.
  1449. Return Value:
  1450. STATUS_SUCCESS always.
  1451. --*/
  1452. KSTATUS
  1453. AcpipCreateShiftRightStatement (
  1454. PAML_EXECUTION_CONTEXT Context,
  1455. PAML_STATEMENT NextStatement
  1456. );
  1457. /*++
  1458. Routine Description:
  1459. This routine creates a statement for a Shift Right statement.
  1460. Arguments:
  1461. Context - Supplies a pointer to an initialized AML execution context. The
  1462. next statement will be created based on the current execution offset.
  1463. The current offset of the context will be incremented beyond the portion
  1464. of this statement that was successfully parsed.
  1465. NextStatement - Supplies a pointer where the next statement will be
  1466. returned.
  1467. Return Value:
  1468. STATUS_SUCCESS always.
  1469. --*/
  1470. KSTATUS
  1471. AcpipCreateSignalStatement (
  1472. PAML_EXECUTION_CONTEXT Context,
  1473. PAML_STATEMENT NextStatement
  1474. );
  1475. /*++
  1476. Routine Description:
  1477. This routine creates a Signal (event) statement.
  1478. Arguments:
  1479. Context - Supplies a pointer to an initialized AML execution context. The
  1480. next statement will be created based on the current execution offset.
  1481. The current offset of the context will be incremented beyond the portion
  1482. of this statement that was successfully parsed.
  1483. NextStatement - Supplies a pointer where the next statement will be
  1484. returned.
  1485. Return Value:
  1486. STATUS_SUCCESS always.
  1487. --*/
  1488. KSTATUS
  1489. AcpipCreateSizeOfStatement (
  1490. PAML_EXECUTION_CONTEXT Context,
  1491. PAML_STATEMENT NextStatement
  1492. );
  1493. /*++
  1494. Routine Description:
  1495. This routine creates a "SizeOf" statement.
  1496. Arguments:
  1497. Context - Supplies a pointer to an initialized AML execution context. The
  1498. next statement will be created based on the current execution offset.
  1499. The current offset of the context will be incremented beyond the portion
  1500. of this statement that was successfully parsed.
  1501. NextStatement - Supplies a pointer where the next statement will be
  1502. returned.
  1503. Return Value:
  1504. STATUS_SUCCESS on success.
  1505. Other error codes on failure.
  1506. --*/
  1507. KSTATUS
  1508. AcpipCreateSleepStatement (
  1509. PAML_EXECUTION_CONTEXT Context,
  1510. PAML_STATEMENT NextStatement
  1511. );
  1512. /*++
  1513. Routine Description:
  1514. This routine creates a Sleep statement.
  1515. Arguments:
  1516. Context - Supplies a pointer to an initialized AML execution context. The
  1517. next statement will be created based on the current execution offset.
  1518. The current offset of the context will be incremented beyond the portion
  1519. of this statement that was successfully parsed.
  1520. NextStatement - Supplies a pointer where the next statement will be
  1521. returned. The caller is responsible for freeing this memory.
  1522. Return Value:
  1523. STATUS_SUCCESS always.
  1524. --*/
  1525. KSTATUS
  1526. AcpipCreateStallStatement (
  1527. PAML_EXECUTION_CONTEXT Context,
  1528. PAML_STATEMENT NextStatement
  1529. );
  1530. /*++
  1531. Routine Description:
  1532. This routine creates a Stall statement.
  1533. Arguments:
  1534. Context - Supplies a pointer to an initialized AML execution context. The
  1535. next statement will be created based on the current execution offset.
  1536. The current offset of the context will be incremented beyond the portion
  1537. of this statement that was successfully parsed.
  1538. NextStatement - Supplies a pointer where the next statement will be
  1539. returned. The caller is responsible for freeing this memory.
  1540. Return Value:
  1541. STATUS_SUCCESS always.
  1542. --*/
  1543. KSTATUS
  1544. AcpipCreateStoreStatement (
  1545. PAML_EXECUTION_CONTEXT Context,
  1546. PAML_STATEMENT NextStatement
  1547. );
  1548. /*++
  1549. Routine Description:
  1550. This routine creates a Store statement.
  1551. Arguments:
  1552. Context - Supplies a pointer to an initialized AML execution context. The
  1553. next statement will be created based on the current execution offset.
  1554. The current offset of the context will be incremented beyond the portion
  1555. of this statement that was successfully parsed.
  1556. NextStatement - Supplies a pointer where the next statement will be
  1557. returned.
  1558. Return Value:
  1559. STATUS_SUCCESS always.
  1560. --*/
  1561. KSTATUS
  1562. AcpipCreateSubtractStatement (
  1563. PAML_EXECUTION_CONTEXT Context,
  1564. PAML_STATEMENT NextStatement
  1565. );
  1566. /*++
  1567. Routine Description:
  1568. This routine creates a Subtract statement.
  1569. Arguments:
  1570. Context - Supplies a pointer to an initialized AML execution context. The
  1571. next statement will be created based on the current execution offset.
  1572. The current offset of the context will be incremented beyond the portion
  1573. of this statement that was successfully parsed.
  1574. NextStatement - Supplies a pointer where the next statement will be
  1575. returned.
  1576. Return Value:
  1577. STATUS_SUCCESS always.
  1578. --*/
  1579. KSTATUS
  1580. AcpipCreateThermalZoneStatement (
  1581. PAML_EXECUTION_CONTEXT Context,
  1582. PAML_STATEMENT NextStatement
  1583. );
  1584. /*++
  1585. Routine Description:
  1586. This routine creates a Thermal Zone statement.
  1587. Arguments:
  1588. Context - Supplies a pointer to an initialized AML execution context. The
  1589. next statement will be created based on the current execution offset.
  1590. The current offset of the context will be incremented beyond the portion
  1591. of this statement that was successfully parsed.
  1592. NextStatement - Supplies a pointer where the next statement will be
  1593. returned. The caller is responsible for freeing this memory.
  1594. Return Value:
  1595. Status code.
  1596. --*/
  1597. KSTATUS
  1598. AcpipCreateTimerStatement (
  1599. PAML_EXECUTION_CONTEXT Context,
  1600. PAML_STATEMENT NextStatement
  1601. );
  1602. /*++
  1603. Routine Description:
  1604. This routine creates a statement for a Timer statement.
  1605. Arguments:
  1606. Context - Supplies a pointer to an initialized AML execution context. The
  1607. next statement will be created based on the current execution offset.
  1608. The current offset of the context will be incremented beyond the portion
  1609. of this statement that was successfully parsed.
  1610. NextStatement - Supplies a pointer where the next statement will be
  1611. returned.
  1612. Return Value:
  1613. STATUS_SUCCESS always.
  1614. --*/
  1615. KSTATUS
  1616. AcpipCreateToBcdStatement (
  1617. PAML_EXECUTION_CONTEXT Context,
  1618. PAML_STATEMENT NextStatement
  1619. );
  1620. /*++
  1621. Routine Description:
  1622. This routine creates a "To BCD" statement.
  1623. Arguments:
  1624. Context - Supplies a pointer to an initialized AML execution context. The
  1625. next statement will be created based on the current execution offset.
  1626. The current offset of the context will be incremented beyond the portion
  1627. of this statement that was successfully parsed.
  1628. NextStatement - Supplies a pointer where the next statement will be
  1629. returned.
  1630. Return Value:
  1631. STATUS_SUCCESS always.
  1632. --*/
  1633. KSTATUS
  1634. AcpipCreateToBufferStatement (
  1635. PAML_EXECUTION_CONTEXT Context,
  1636. PAML_STATEMENT NextStatement
  1637. );
  1638. /*++
  1639. Routine Description:
  1640. This routine creates a "To Buffer" statement.
  1641. Arguments:
  1642. Context - Supplies a pointer to an initialized AML execution context. The
  1643. next statement will be created based on the current execution offset.
  1644. The current offset of the context will be incremented beyond the portion
  1645. of this statement that was successfully parsed.
  1646. NextStatement - Supplies a pointer where the next statement will be
  1647. returned.
  1648. Return Value:
  1649. STATUS_SUCCESS always.
  1650. --*/
  1651. KSTATUS
  1652. AcpipCreateToDecimalStringStatement (
  1653. PAML_EXECUTION_CONTEXT Context,
  1654. PAML_STATEMENT NextStatement
  1655. );
  1656. /*++
  1657. Routine Description:
  1658. This routine creates a "To Decimal String" statement.
  1659. Arguments:
  1660. Context - Supplies a pointer to an initialized AML execution context. The
  1661. next statement will be created based on the current execution offset.
  1662. The current offset of the context will be incremented beyond the portion
  1663. of this statement that was successfully parsed.
  1664. NextStatement - Supplies a pointer where the next statement will be
  1665. returned.
  1666. Return Value:
  1667. STATUS_SUCCESS always.
  1668. --*/
  1669. KSTATUS
  1670. AcpipCreateToHexStringStatement (
  1671. PAML_EXECUTION_CONTEXT Context,
  1672. PAML_STATEMENT NextStatement
  1673. );
  1674. /*++
  1675. Routine Description:
  1676. This routine creates a "To Hex String" statement.
  1677. Arguments:
  1678. Context - Supplies a pointer to an initialized AML execution context. The
  1679. next statement will be created based on the current execution offset.
  1680. The current offset of the context will be incremented beyond the portion
  1681. of this statement that was successfully parsed.
  1682. NextStatement - Supplies a pointer where the next statement will be
  1683. returned.
  1684. Return Value:
  1685. STATUS_SUCCESS always.
  1686. --*/
  1687. KSTATUS
  1688. AcpipCreateToIntegerStatement (
  1689. PAML_EXECUTION_CONTEXT Context,
  1690. PAML_STATEMENT NextStatement
  1691. );
  1692. /*++
  1693. Routine Description:
  1694. This routine creates a "To Integer" statement.
  1695. Arguments:
  1696. Context - Supplies a pointer to an initialized AML execution context. The
  1697. next statement will be created based on the current execution offset.
  1698. The current offset of the context will be incremented beyond the portion
  1699. of this statement that was successfully parsed.
  1700. NextStatement - Supplies a pointer where the next statement will be
  1701. returned.
  1702. Return Value:
  1703. STATUS_SUCCESS always.
  1704. --*/
  1705. KSTATUS
  1706. AcpipCreateToStringStatement (
  1707. PAML_EXECUTION_CONTEXT Context,
  1708. PAML_STATEMENT NextStatement
  1709. );
  1710. /*++
  1711. Routine Description:
  1712. This routine creates a "To String" statement.
  1713. Arguments:
  1714. Context - Supplies a pointer to an initialized AML execution context. The
  1715. next statement will be created based on the current execution offset.
  1716. The current offset of the context will be incremented beyond the portion
  1717. of this statement that was successfully parsed.
  1718. NextStatement - Supplies a pointer where the next statement will be
  1719. returned.
  1720. Return Value:
  1721. STATUS_SUCCESS always.
  1722. --*/
  1723. KSTATUS
  1724. AcpipCreateUnloadStatement (
  1725. PAML_EXECUTION_CONTEXT Context,
  1726. PAML_STATEMENT NextStatement
  1727. );
  1728. /*++
  1729. Routine Description:
  1730. This routine creates an Unload (definition block) statement.
  1731. Arguments:
  1732. Context - Supplies a pointer to an initialized AML execution context. The
  1733. next statement will be created based on the current execution offset.
  1734. The current offset of the context will be incremented beyond the portion
  1735. of this statement that was successfully parsed.
  1736. NextStatement - Supplies a pointer where the next statement will be
  1737. returned. The caller is responsible for freeing this memory.
  1738. Return Value:
  1739. STATUS_SUCCESS always.
  1740. --*/
  1741. KSTATUS
  1742. AcpipCreateVariablePackageStatement (
  1743. PAML_EXECUTION_CONTEXT Context,
  1744. PAML_STATEMENT NextStatement
  1745. );
  1746. /*++
  1747. Routine Description:
  1748. This routine creates a Variable package statement, whose size is determined
  1749. by a TermArg rather than a constant.
  1750. Arguments:
  1751. Context - Supplies a pointer to an initialized AML execution context. The
  1752. next statement will be created based on the current execution offset.
  1753. The current offset of the context will be incremented beyond the portion
  1754. of this statement that was successfully parsed.
  1755. NextStatement - Supplies a pointer where the next statement will be
  1756. returned. The caller is responsible for freeing this memory.
  1757. Return Value:
  1758. Status code.
  1759. --*/
  1760. KSTATUS
  1761. AcpipCreateWaitStatement (
  1762. PAML_EXECUTION_CONTEXT Context,
  1763. PAML_STATEMENT NextStatement
  1764. );
  1765. /*++
  1766. Routine Description:
  1767. This routine creates an Wait (for Event) statement.
  1768. Arguments:
  1769. Context - Supplies a pointer to an initialized AML execution context. The
  1770. next statement will be created based on the current execution offset.
  1771. The current offset of the context will be incremented beyond the portion
  1772. of this statement that was successfully parsed.
  1773. NextStatement - Supplies a pointer where the next statement will be
  1774. returned.
  1775. Return Value:
  1776. STATUS_SUCCESS always.
  1777. --*/
  1778. KSTATUS
  1779. AcpipCreateWhileStatement (
  1780. PAML_EXECUTION_CONTEXT Context,
  1781. PAML_STATEMENT NextStatement
  1782. );
  1783. /*++
  1784. Routine Description:
  1785. This routine creates a While statement.
  1786. Arguments:
  1787. Context - Supplies a pointer to an initialized AML execution context. The
  1788. next statement will be created based on the current execution offset.
  1789. The current offset of the context will be incremented beyond the portion
  1790. of this statement that was successfully parsed.
  1791. NextStatement - Supplies a pointer where the next statement will be
  1792. returned.
  1793. Return Value:
  1794. Status code.
  1795. --*/
  1796. KSTATUS
  1797. AcpipCreateXorStatement (
  1798. PAML_EXECUTION_CONTEXT Context,
  1799. PAML_STATEMENT NextStatement
  1800. );
  1801. /*++
  1802. Routine Description:
  1803. This routine creates a statement for an Exclusive Or statement.
  1804. Arguments:
  1805. Context - Supplies a pointer to an initialized AML execution context. The
  1806. next statement will be created based on the current execution offset.
  1807. The current offset of the context will be incremented beyond the portion
  1808. of this statement that was successfully parsed.
  1809. NextStatement - Supplies a pointer where the next statement will be
  1810. returned.
  1811. Return Value:
  1812. STATUS_SUCCESS always.
  1813. --*/
  1814. KSTATUS
  1815. AcpipCreateZeroStatement (
  1816. PAML_EXECUTION_CONTEXT Context,
  1817. PAML_STATEMENT NextStatement
  1818. );
  1819. /*++
  1820. Routine Description:
  1821. This routine creates a statement for opcode 0, a constant 0.
  1822. Arguments:
  1823. Context - Supplies a pointer to an initialized AML execution context. The
  1824. next statement will be created based on the current execution offset.
  1825. The current offset of the context will be incremented beyond the portion
  1826. of this statement that was successfully parsed.
  1827. NextStatement - Supplies a pointer where the next statement will be
  1828. returned. The caller is responsible for freeing this memory.
  1829. Return Value:
  1830. STATUS_SUCCESS always.
  1831. --*/
  1832. KSTATUS
  1833. AcpipEvaluateAcquireStatement (
  1834. PAML_EXECUTION_CONTEXT Context,
  1835. PAML_STATEMENT Statement
  1836. );
  1837. /*++
  1838. Routine Description:
  1839. This routine evaluates an Acquire (mutex) statement.
  1840. Arguments:
  1841. Context - Supplies a pointer to the current AML execution context.
  1842. Statement - Supplies a pointer to the statement to evaluate.
  1843. Return Value:
  1844. Status code.
  1845. --*/
  1846. KSTATUS
  1847. AcpipEvaluateAliasStatement (
  1848. PAML_EXECUTION_CONTEXT Context,
  1849. PAML_STATEMENT Statement
  1850. );
  1851. /*++
  1852. Routine Description:
  1853. This routine evaluates the alias statement.
  1854. Arguments:
  1855. Context - Supplies a pointer to the current AML execution context.
  1856. Statement - Supplies a pointer to the statement to evaluate.
  1857. Return Value:
  1858. Status code.
  1859. --*/
  1860. KSTATUS
  1861. AcpipEvaluateArgumentStatement (
  1862. PAML_EXECUTION_CONTEXT Context,
  1863. PAML_STATEMENT Statement
  1864. );
  1865. /*++
  1866. Routine Description:
  1867. This routine evaluates the ArgX opcodes.
  1868. Arguments:
  1869. Context - Supplies a pointer to the current AML execution context.
  1870. Statement - Supplies a pointer to the statement to evaluate.
  1871. Return Value:
  1872. STATUS_SUCCESS always.
  1873. --*/
  1874. KSTATUS
  1875. AcpipEvaluateBankFieldStatement (
  1876. PAML_EXECUTION_CONTEXT Context,
  1877. PAML_STATEMENT Statement
  1878. );
  1879. /*++
  1880. Routine Description:
  1881. This routine evaluates a BankField (in an Operation Region) statement.
  1882. Arguments:
  1883. Context - Supplies a pointer to the current AML execution context.
  1884. Statement - Supplies a pointer to the statement to evaluate.
  1885. Return Value:
  1886. STATUS_SUCCESS always.
  1887. --*/
  1888. KSTATUS
  1889. AcpipEvaluateBreakPointStatement (
  1890. PAML_EXECUTION_CONTEXT Context,
  1891. PAML_STATEMENT Statement
  1892. );
  1893. /*++
  1894. Routine Description:
  1895. This routine evaluates the BreakPoint statement.
  1896. Arguments:
  1897. Context - Supplies a pointer to the current AML execution context.
  1898. Statement - Supplies a pointer to the statement to evaluate.
  1899. Return Value:
  1900. STATUS_SUCCESS always.
  1901. --*/
  1902. KSTATUS
  1903. AcpipEvaluateBufferStatement (
  1904. PAML_EXECUTION_CONTEXT Context,
  1905. PAML_STATEMENT Statement
  1906. );
  1907. /*++
  1908. Routine Description:
  1909. This routine evaluates a buffer declaration statement.
  1910. Arguments:
  1911. Context - Supplies a pointer to the current AML execution context.
  1912. Statement - Supplies a pointer to the statement to evaluate.
  1913. Return Value:
  1914. Status code.
  1915. --*/
  1916. KSTATUS
  1917. AcpipEvaluateConcatenateResourceTemplatesStatement (
  1918. PAML_EXECUTION_CONTEXT Context,
  1919. PAML_STATEMENT Statement
  1920. );
  1921. /*++
  1922. Routine Description:
  1923. This routine evaluates a "Concatenate Resource Templates" statement, which
  1924. concatenates two buffers that are resources templates. It automatically
  1925. strips the end tags off the two, adds it to the concatenation, and calcuates
  1926. the checksum.
  1927. Arguments:
  1928. Context - Supplies a pointer to the current AML execution context.
  1929. Statement - Supplies a pointer to the statement to evaluate.
  1930. Return Value:
  1931. Status code.
  1932. --*/
  1933. KSTATUS
  1934. AcpipEvaluateConcatenateStatement (
  1935. PAML_EXECUTION_CONTEXT Context,
  1936. PAML_STATEMENT Statement
  1937. );
  1938. /*++
  1939. Routine Description:
  1940. This routine evaluates a concatenate statement.
  1941. Arguments:
  1942. Context - Supplies a pointer to the current AML execution context.
  1943. Statement - Supplies a pointer to the statement to evaluate.
  1944. Return Value:
  1945. Status code.
  1946. --*/
  1947. KSTATUS
  1948. AcpipEvaluateConditionalReferenceOfStatement (
  1949. PAML_EXECUTION_CONTEXT Context,
  1950. PAML_STATEMENT Statement
  1951. );
  1952. /*++
  1953. Routine Description:
  1954. This routine evaluates an "Reference Of" statement.
  1955. Arguments:
  1956. Context - Supplies a pointer to the current AML execution context.
  1957. Statement - Supplies a pointer to the statement to evaluate.
  1958. Return Value:
  1959. Status code.
  1960. --*/
  1961. KSTATUS
  1962. AcpipEvaluateCopyObjectStatement (
  1963. PAML_EXECUTION_CONTEXT Context,
  1964. PAML_STATEMENT Statement
  1965. );
  1966. /*++
  1967. Routine Description:
  1968. This routine evaluates a "Copy Object" statement.
  1969. Arguments:
  1970. Context - Supplies a pointer to the current AML execution context.
  1971. Statement - Supplies a pointer to the statement to evaluate.
  1972. Return Value:
  1973. Status code.
  1974. --*/
  1975. KSTATUS
  1976. AcpipEvaluateCreateBufferFieldStatement (
  1977. PAML_EXECUTION_CONTEXT Context,
  1978. PAML_STATEMENT Statement
  1979. );
  1980. /*++
  1981. Routine Description:
  1982. This routine evaluates a CreateField (from a buffer) statement.
  1983. Arguments:
  1984. Context - Supplies a pointer to the current AML execution context.
  1985. Statement - Supplies a pointer to the statement to evaluate.
  1986. Return Value:
  1987. Status code.
  1988. --*/
  1989. KSTATUS
  1990. AcpipEvaluateCreateFixedBufferFieldStatement (
  1991. PAML_EXECUTION_CONTEXT Context,
  1992. PAML_STATEMENT Statement
  1993. );
  1994. /*++
  1995. Routine Description:
  1996. This routine evaluates a CreateBitField, CreateByteField, CreateWordField,
  1997. CreateDWordField, or CreateQWordField statement, which creates a Buffer
  1998. Field object pointing at a buffer.
  1999. Arguments:
  2000. Context - Supplies a pointer to the current AML execution context.
  2001. Statement - Supplies a pointer to the statement to evaluate.
  2002. Return Value:
  2003. Status code.
  2004. --*/
  2005. KSTATUS
  2006. AcpipEvaluateDataStatement (
  2007. PAML_EXECUTION_CONTEXT Context,
  2008. PAML_STATEMENT Statement
  2009. );
  2010. /*++
  2011. Routine Description:
  2012. This routine evaluates constant data coming from ByteData, WordData,
  2013. DWordData, QWordData, and StringData.
  2014. Arguments:
  2015. Context - Supplies a pointer to the current AML execution context.
  2016. Statement - Supplies a pointer to the statement to evaluate.
  2017. Return Value:
  2018. Status code.
  2019. --*/
  2020. KSTATUS
  2021. AcpipEvaluateDelayStatement (
  2022. PAML_EXECUTION_CONTEXT Context,
  2023. PAML_STATEMENT Statement
  2024. );
  2025. /*++
  2026. Routine Description:
  2027. This routine evaluates both the Sleep and Stall statements.
  2028. Arguments:
  2029. Context - Supplies a pointer to the current AML execution context.
  2030. Statement - Supplies a pointer to the statement to evaluate.
  2031. Return Value:
  2032. Status code.
  2033. --*/
  2034. KSTATUS
  2035. AcpipEvaluateDebugStatement (
  2036. PAML_EXECUTION_CONTEXT Context,
  2037. PAML_STATEMENT Statement
  2038. );
  2039. /*++
  2040. Routine Description:
  2041. This routine evaluates a Debug statement.
  2042. Arguments:
  2043. Context - Supplies a pointer to the current AML execution context.
  2044. Statement - Supplies a pointer to the statement to evaluate.
  2045. Return Value:
  2046. Status code.
  2047. --*/
  2048. KSTATUS
  2049. AcpipEvaluateDereferenceOfStatement (
  2050. PAML_EXECUTION_CONTEXT Context,
  2051. PAML_STATEMENT Statement
  2052. );
  2053. /*++
  2054. Routine Description:
  2055. This routine evaluates a "Dereference Of" statement.
  2056. Arguments:
  2057. Context - Supplies a pointer to the current AML execution context.
  2058. Statement - Supplies a pointer to the statement to evaluate.
  2059. Return Value:
  2060. Status code.
  2061. --*/
  2062. KSTATUS
  2063. AcpipEvaluateDeviceStatement (
  2064. PAML_EXECUTION_CONTEXT Context,
  2065. PAML_STATEMENT Statement
  2066. );
  2067. /*++
  2068. Routine Description:
  2069. This routine evaluates a Device declaration statement.
  2070. Arguments:
  2071. Context - Supplies a pointer to the current AML execution context.
  2072. Statement - Supplies a pointer to the statement to evaluate.
  2073. Return Value:
  2074. Status code.
  2075. --*/
  2076. KSTATUS
  2077. AcpipEvaluateDivideStatement (
  2078. PAML_EXECUTION_CONTEXT Context,
  2079. PAML_STATEMENT Statement
  2080. );
  2081. /*++
  2082. Routine Description:
  2083. This routine evaluates a divide statement.
  2084. Arguments:
  2085. Context - Supplies a pointer to the current AML execution context.
  2086. Statement - Supplies a pointer to the statement to evaluate.
  2087. Return Value:
  2088. Status code.
  2089. --*/
  2090. KSTATUS
  2091. AcpipEvaluateElseStatement (
  2092. PAML_EXECUTION_CONTEXT Context,
  2093. PAML_STATEMENT Statement
  2094. );
  2095. /*++
  2096. Routine Description:
  2097. This routine evaluates an Else statement.
  2098. Arguments:
  2099. Context - Supplies a pointer to the current AML execution context.
  2100. Statement - Supplies a pointer to the statement to evaluate.
  2101. Return Value:
  2102. Status code.
  2103. --*/
  2104. KSTATUS
  2105. AcpipEvaluateEventStatement (
  2106. PAML_EXECUTION_CONTEXT Context,
  2107. PAML_STATEMENT Statement
  2108. );
  2109. /*++
  2110. Routine Description:
  2111. This routine evaluates an Event (creation) statement.
  2112. Arguments:
  2113. Context - Supplies a pointer to the current AML execution context.
  2114. Statement - Supplies a pointer to the statement to evaluate.
  2115. Return Value:
  2116. Status code.
  2117. --*/
  2118. KSTATUS
  2119. AcpipEvaluateExecutingMethodStatement (
  2120. PAML_EXECUTION_CONTEXT Context,
  2121. PAML_STATEMENT Statement
  2122. );
  2123. /*++
  2124. Routine Description:
  2125. This routine evaluates an Executing Method statement. This does not
  2126. translate to a real ACPI opcode, but is a dummy object placed on the
  2127. currently-executing statement stack so that return statements know how
  2128. far to pop back up.
  2129. Arguments:
  2130. Context - Supplies a pointer to the current AML execution context.
  2131. Statement - Supplies a pointer to the statement to evaluate.
  2132. Return Value:
  2133. Status code.
  2134. --*/
  2135. KSTATUS
  2136. AcpipEvaluateFatalStatement (
  2137. PAML_EXECUTION_CONTEXT Context,
  2138. PAML_STATEMENT Statement
  2139. );
  2140. /*++
  2141. Routine Description:
  2142. This routine evaluates a fatal execution statement. This will stop the
  2143. operating system.
  2144. Arguments:
  2145. Context - Supplies a pointer to the current AML execution context.
  2146. Statement - Supplies a pointer to the statement to evaluate.
  2147. Return Value:
  2148. Status code.
  2149. --*/
  2150. KSTATUS
  2151. AcpipEvaluateFieldStatement (
  2152. PAML_EXECUTION_CONTEXT Context,
  2153. PAML_STATEMENT Statement
  2154. );
  2155. /*++
  2156. Routine Description:
  2157. This routine evaluates a Field (in an Operation Region) statement.
  2158. Arguments:
  2159. Context - Supplies a pointer to the current AML execution context.
  2160. Statement - Supplies a pointer to the statement to evaluate.
  2161. Return Value:
  2162. STATUS_SUCCESS always.
  2163. --*/
  2164. KSTATUS
  2165. AcpipEvaluateFindSetBitStatement (
  2166. PAML_EXECUTION_CONTEXT Context,
  2167. PAML_STATEMENT Statement
  2168. );
  2169. /*++
  2170. Routine Description:
  2171. This routine evaluates a find set left bit or find set right bit statement.
  2172. Arguments:
  2173. Context - Supplies a pointer to the current AML execution context.
  2174. Statement - Supplies a pointer to the statement to evaluate.
  2175. Return Value:
  2176. Status code.
  2177. --*/
  2178. KSTATUS
  2179. AcpipEvaluateIfStatement (
  2180. PAML_EXECUTION_CONTEXT Context,
  2181. PAML_STATEMENT Statement
  2182. );
  2183. /*++
  2184. Routine Description:
  2185. This routine evaluates an If statement.
  2186. Arguments:
  2187. Context - Supplies a pointer to the current AML execution context.
  2188. Statement - Supplies a pointer to the statement to evaluate.
  2189. Return Value:
  2190. Status code.
  2191. --*/
  2192. KSTATUS
  2193. AcpipEvaluateIncrementOrDecrementStatement (
  2194. PAML_EXECUTION_CONTEXT Context,
  2195. PAML_STATEMENT Statement
  2196. );
  2197. /*++
  2198. Routine Description:
  2199. This routine evaluates an Increment or Decrement statement.
  2200. Arguments:
  2201. Context - Supplies a pointer to the current AML execution context.
  2202. Statement - Supplies a pointer to the statement to evaluate.
  2203. Return Value:
  2204. Status code.
  2205. --*/
  2206. KSTATUS
  2207. AcpipEvaluateIndexFieldStatement (
  2208. PAML_EXECUTION_CONTEXT Context,
  2209. PAML_STATEMENT Statement
  2210. );
  2211. /*++
  2212. Routine Description:
  2213. This routine evaluates an IndexField (in an Operation Region) statement.
  2214. Arguments:
  2215. Context - Supplies a pointer to the current AML execution context.
  2216. Statement - Supplies a pointer to the statement to evaluate.
  2217. Return Value:
  2218. STATUS_SUCCESS always.
  2219. --*/
  2220. KSTATUS
  2221. AcpipEvaluateIndexStatement (
  2222. PAML_EXECUTION_CONTEXT Context,
  2223. PAML_STATEMENT Statement
  2224. );
  2225. /*++
  2226. Routine Description:
  2227. This routine evaluates an Index statement, which creates a reference to the
  2228. nth object in a buffer, string, or package.
  2229. Arguments:
  2230. Context - Supplies a pointer to the current AML execution context.
  2231. Statement - Supplies a pointer to the statement to evaluate.
  2232. Return Value:
  2233. Status code.
  2234. --*/
  2235. KSTATUS
  2236. AcpipEvaluateIntegerArithmeticStatement (
  2237. PAML_EXECUTION_CONTEXT Context,
  2238. PAML_STATEMENT Statement
  2239. );
  2240. /*++
  2241. Routine Description:
  2242. This routine evaluates simple arithmetic operations that take two operands
  2243. and a target.
  2244. Arguments:
  2245. Context - Supplies a pointer to the current AML execution context.
  2246. Statement - Supplies a pointer to the statement to evaluate.
  2247. Return Value:
  2248. Status code.
  2249. --*/
  2250. KSTATUS
  2251. AcpipEvaluateIntegerStatement (
  2252. PAML_EXECUTION_CONTEXT Context,
  2253. PAML_STATEMENT Statement
  2254. );
  2255. /*++
  2256. Routine Description:
  2257. This routine evaluates statements that take no arguments and generate an
  2258. integer output. This includes the constant statements Zero, One, and Ones,
  2259. as well as the AML Revision and Timer statement.
  2260. Arguments:
  2261. Context - Supplies a pointer to the current AML execution context.
  2262. Statement - Supplies a pointer to the statement to evaluate.
  2263. Return Value:
  2264. STATUS_SUCCESS almost always.
  2265. STATUS_INVALID_PARAMETER if this routine was called for the wrong statement
  2266. type (an internal error for sure).
  2267. STATUS_UNSUCCESSFUL if a namespace object could not be created.
  2268. --*/
  2269. KSTATUS
  2270. AcpipEvaluateLoadStatement (
  2271. PAML_EXECUTION_CONTEXT Context,
  2272. PAML_STATEMENT Statement
  2273. );
  2274. /*++
  2275. Routine Description:
  2276. This routine evaluates a Load statement, which adds the contents of a
  2277. memory op-region as an SSDT to the namespace.
  2278. Arguments:
  2279. Context - Supplies a pointer to the current AML execution context.
  2280. Statement - Supplies a pointer to the statement to evaluate.
  2281. Return Value:
  2282. Status code.
  2283. --*/
  2284. KSTATUS
  2285. AcpipEvaluateLocalStatement (
  2286. PAML_EXECUTION_CONTEXT Context,
  2287. PAML_STATEMENT Statement
  2288. );
  2289. /*++
  2290. Routine Description:
  2291. This routine evaluates the LocalX opcodes.
  2292. Arguments:
  2293. Context - Supplies a pointer to the current AML execution context.
  2294. Statement - Supplies a pointer to the statement to evaluate.
  2295. Return Value:
  2296. Status code.
  2297. --*/
  2298. KSTATUS
  2299. AcpipEvaluateLogicalExpressionStatement (
  2300. PAML_EXECUTION_CONTEXT Context,
  2301. PAML_STATEMENT Statement
  2302. );
  2303. /*++
  2304. Routine Description:
  2305. This routine evaluates logical binary operators (Logical and, equal,
  2306. greater, less, and or).
  2307. Arguments:
  2308. Context - Supplies a pointer to the current AML execution context.
  2309. Statement - Supplies a pointer to the statement to evaluate.
  2310. Return Value:
  2311. Status code.
  2312. --*/
  2313. KSTATUS
  2314. AcpipEvaluateLogicalNotStatement (
  2315. PAML_EXECUTION_CONTEXT Context,
  2316. PAML_STATEMENT Statement
  2317. );
  2318. /*++
  2319. Routine Description:
  2320. This routine evaluates logical NOT operator.
  2321. Arguments:
  2322. Context - Supplies a pointer to the current AML execution context.
  2323. Statement - Supplies a pointer to the statement to evaluate.
  2324. Return Value:
  2325. Status code.
  2326. --*/
  2327. KSTATUS
  2328. AcpipEvaluateMatchStatement (
  2329. PAML_EXECUTION_CONTEXT Context,
  2330. PAML_STATEMENT Statement
  2331. );
  2332. /*++
  2333. Routine Description:
  2334. This routine evaluates a Match statement, which iterates over a package
  2335. doing some simple comparisons.
  2336. Arguments:
  2337. Context - Supplies a pointer to the current AML execution context.
  2338. Statement - Supplies a pointer to the statement to evaluate.
  2339. Return Value:
  2340. Status code.
  2341. --*/
  2342. KSTATUS
  2343. AcpipEvaluateMethodStatement (
  2344. PAML_EXECUTION_CONTEXT Context,
  2345. PAML_STATEMENT Statement
  2346. );
  2347. /*++
  2348. Routine Description:
  2349. This routine evaluates a Method declaration statement.
  2350. Arguments:
  2351. Context - Supplies a pointer to the current AML execution context.
  2352. Statement - Supplies a pointer to the statement to evaluate.
  2353. Return Value:
  2354. Status code.
  2355. --*/
  2356. KSTATUS
  2357. AcpipEvaluateMidStatement (
  2358. PAML_EXECUTION_CONTEXT Context,
  2359. PAML_STATEMENT Statement
  2360. );
  2361. /*++
  2362. Routine Description:
  2363. This routine evaluates a mid statement, which splits a string up.
  2364. Arguments:
  2365. Context - Supplies a pointer to the current AML execution context.
  2366. Statement - Supplies a pointer to the statement to evaluate.
  2367. Return Value:
  2368. Status code.
  2369. --*/
  2370. KSTATUS
  2371. AcpipEvaluateMutexStatement (
  2372. PAML_EXECUTION_CONTEXT Context,
  2373. PAML_STATEMENT Statement
  2374. );
  2375. /*++
  2376. Routine Description:
  2377. This routine evaluates a Mutex (creation) statement.
  2378. Arguments:
  2379. Context - Supplies a pointer to the current AML execution context.
  2380. Statement - Supplies a pointer to the statement to evaluate.
  2381. Return Value:
  2382. Status code.
  2383. --*/
  2384. KSTATUS
  2385. AcpipEvaluateNameStatement (
  2386. PAML_EXECUTION_CONTEXT Context,
  2387. PAML_STATEMENT Statement
  2388. );
  2389. /*++
  2390. Routine Description:
  2391. This routine evaluates a Name statement, which creates a new named object
  2392. in the namespace given an existing one.
  2393. Arguments:
  2394. Context - Supplies a pointer to the current AML execution context.
  2395. Statement - Supplies a pointer to the statement to evaluate.
  2396. Return Value:
  2397. Status code.
  2398. --*/
  2399. KSTATUS
  2400. AcpipEvaluateNameStringStatement (
  2401. PAML_EXECUTION_CONTEXT Context,
  2402. PAML_STATEMENT Statement
  2403. );
  2404. /*++
  2405. Routine Description:
  2406. This routine evaluates a NameString statement, which evaluates to an
  2407. object that is expected to exist in the namespace.
  2408. Arguments:
  2409. Context - Supplies a pointer to the current AML execution context.
  2410. Statement - Supplies a pointer to the statement to evaluate.
  2411. Return Value:
  2412. Status code.
  2413. --*/
  2414. KSTATUS
  2415. AcpipEvaluateNoOpStatement (
  2416. PAML_EXECUTION_CONTEXT Context,
  2417. PAML_STATEMENT Statement
  2418. );
  2419. /*++
  2420. Routine Description:
  2421. This routine evaluates a No-Op statement, which is really quite easy since
  2422. it doesn't do anything.
  2423. Arguments:
  2424. Context - Supplies a pointer to the current AML execution context.
  2425. Statement - Supplies a pointer to the statement to evaluate.
  2426. Return Value:
  2427. STATUS_SUCCESS always.
  2428. --*/
  2429. KSTATUS
  2430. AcpipEvaluateNotifyStatement (
  2431. PAML_EXECUTION_CONTEXT Context,
  2432. PAML_STATEMENT Statement
  2433. );
  2434. /*++
  2435. Routine Description:
  2436. This routine evaluates a Notify (the operating system) statement.
  2437. Arguments:
  2438. Context - Supplies a pointer to the current AML execution context.
  2439. Statement - Supplies a pointer to the statement to evaluate.
  2440. Return Value:
  2441. Status code.
  2442. --*/
  2443. KSTATUS
  2444. AcpipEvaluateNotStatement (
  2445. PAML_EXECUTION_CONTEXT Context,
  2446. PAML_STATEMENT Statement
  2447. );
  2448. /*++
  2449. Routine Description:
  2450. This routine evaluates bitwise NOT operator.
  2451. Arguments:
  2452. Context - Supplies a pointer to the current AML execution context.
  2453. Statement - Supplies a pointer to the statement to evaluate.
  2454. Return Value:
  2455. Status code.
  2456. --*/
  2457. KSTATUS
  2458. AcpipEvaluateObjectTypeStatement (
  2459. PAML_EXECUTION_CONTEXT Context,
  2460. PAML_STATEMENT Statement
  2461. );
  2462. /*++
  2463. Routine Description:
  2464. This routine evaluates an Object Type statement.
  2465. Arguments:
  2466. Context - Supplies a pointer to the current AML execution context.
  2467. Statement - Supplies a pointer to the statement to evaluate.
  2468. Return Value:
  2469. Status code.
  2470. --*/
  2471. KSTATUS
  2472. AcpipEvaluateOperationRegionStatement (
  2473. PAML_EXECUTION_CONTEXT Context,
  2474. PAML_STATEMENT Statement
  2475. );
  2476. /*++
  2477. Routine Description:
  2478. This routine evaluates an Operation Region statement.
  2479. Arguments:
  2480. Context - Supplies a pointer to the current AML execution context.
  2481. Statement - Supplies a pointer to the statement to evaluate.
  2482. Return Value:
  2483. Status code.
  2484. --*/
  2485. KSTATUS
  2486. AcpipEvaluatePackageStatement (
  2487. PAML_EXECUTION_CONTEXT Context,
  2488. PAML_STATEMENT Statement
  2489. );
  2490. /*++
  2491. Routine Description:
  2492. This routine evaluates a Package or Variable Package statement.
  2493. Arguments:
  2494. Context - Supplies a pointer to the current AML execution context.
  2495. Statement - Supplies a pointer to the statement to evaluate.
  2496. Return Value:
  2497. Status code.
  2498. --*/
  2499. KSTATUS
  2500. AcpipEvaluatePowerResourceStatement (
  2501. PAML_EXECUTION_CONTEXT Context,
  2502. PAML_STATEMENT Statement
  2503. );
  2504. /*++
  2505. Routine Description:
  2506. This routine evaluates a Power Resource declaration statement.
  2507. Arguments:
  2508. Context - Supplies a pointer to the current AML execution context.
  2509. Statement - Supplies a pointer to the statement to evaluate.
  2510. Return Value:
  2511. Status code.
  2512. --*/
  2513. KSTATUS
  2514. AcpipEvaluateProcessorStatement (
  2515. PAML_EXECUTION_CONTEXT Context,
  2516. PAML_STATEMENT Statement
  2517. );
  2518. /*++
  2519. Routine Description:
  2520. This routine evaluates a Power Resource declaration statement.
  2521. Arguments:
  2522. Context - Supplies a pointer to the current AML execution context.
  2523. Statement - Supplies a pointer to the statement to evaluate.
  2524. Return Value:
  2525. Status code.
  2526. --*/
  2527. KSTATUS
  2528. AcpipEvaluateReferenceOfStatement (
  2529. PAML_EXECUTION_CONTEXT Context,
  2530. PAML_STATEMENT Statement
  2531. );
  2532. /*++
  2533. Routine Description:
  2534. This routine evaluates an "Reference Of" statement.
  2535. Arguments:
  2536. Context - Supplies a pointer to the current AML execution context.
  2537. Statement - Supplies a pointer to the statement to evaluate.
  2538. Return Value:
  2539. Status code.
  2540. --*/
  2541. KSTATUS
  2542. AcpipEvaluateReturnStatement (
  2543. PAML_EXECUTION_CONTEXT Context,
  2544. PAML_STATEMENT Statement
  2545. );
  2546. /*++
  2547. Routine Description:
  2548. This routine evaluates an Return statement.
  2549. Arguments:
  2550. Context - Supplies a pointer to the current AML execution context.
  2551. Statement - Supplies a pointer to the statement to evaluate.
  2552. Return Value:
  2553. Status code.
  2554. --*/
  2555. KSTATUS
  2556. AcpipEvaluateScopeStatement (
  2557. PAML_EXECUTION_CONTEXT Context,
  2558. PAML_STATEMENT Statement
  2559. );
  2560. /*++
  2561. Routine Description:
  2562. This routine evaluates a Device declaration statement.
  2563. Arguments:
  2564. Context - Supplies a pointer to the current AML execution context.
  2565. Statement - Supplies a pointer to the statement to evaluate.
  2566. Return Value:
  2567. Status code.
  2568. --*/
  2569. KSTATUS
  2570. AcpipEvaluateSizeOfStatement (
  2571. PAML_EXECUTION_CONTEXT Context,
  2572. PAML_STATEMENT Statement
  2573. );
  2574. /*++
  2575. Routine Description:
  2576. This routine evaluates a "Size Of" statement.
  2577. Arguments:
  2578. Context - Supplies a pointer to the current AML execution context.
  2579. Statement - Supplies a pointer to the statement to evaluate.
  2580. Return Value:
  2581. Status code.
  2582. --*/
  2583. KSTATUS
  2584. AcpipEvaluateStoreStatement (
  2585. PAML_EXECUTION_CONTEXT Context,
  2586. PAML_STATEMENT Statement
  2587. );
  2588. /*++
  2589. Routine Description:
  2590. This routine evaluates a Store statement.
  2591. Arguments:
  2592. Context - Supplies a pointer to the current AML execution context.
  2593. Statement - Supplies a pointer to the statement to evaluate.
  2594. Return Value:
  2595. Status code.
  2596. --*/
  2597. KSTATUS
  2598. AcpipEvaluateSyncObjectStatement (
  2599. PAML_EXECUTION_CONTEXT Context,
  2600. PAML_STATEMENT Statement
  2601. );
  2602. /*++
  2603. Routine Description:
  2604. This routine evaluates a Release (mutex), Reset (event), or Signal (event)
  2605. statement.
  2606. Arguments:
  2607. Context - Supplies a pointer to the current AML execution context.
  2608. Statement - Supplies a pointer to the statement to evaluate.
  2609. Return Value:
  2610. Status code.
  2611. --*/
  2612. KSTATUS
  2613. AcpipEvaluateThermalZoneStatement (
  2614. PAML_EXECUTION_CONTEXT Context,
  2615. PAML_STATEMENT Statement
  2616. );
  2617. /*++
  2618. Routine Description:
  2619. This routine evaluates a Thermal Zone declaration statement.
  2620. Arguments:
  2621. Context - Supplies a pointer to the current AML execution context.
  2622. Statement - Supplies a pointer to the statement to evaluate.
  2623. Return Value:
  2624. Status code.
  2625. --*/
  2626. KSTATUS
  2627. AcpipEvaluateToFormatStatement (
  2628. PAML_EXECUTION_CONTEXT Context,
  2629. PAML_STATEMENT Statement
  2630. );
  2631. /*++
  2632. Routine Description:
  2633. This routine evaluates the "To" something and "From" something statements,
  2634. including ToBCD, ToBuffer, ToDecimalString, ToHexString, ToInteger,
  2635. ToString, ToUUID, Unicode, and FromBcd.
  2636. Arguments:
  2637. Context - Supplies a pointer to the current AML execution context.
  2638. Statement - Supplies a pointer to the statement to evaluate.
  2639. Return Value:
  2640. Status code.
  2641. --*/
  2642. KSTATUS
  2643. AcpipEvaluateUnloadStatement (
  2644. PAML_EXECUTION_CONTEXT Context,
  2645. PAML_STATEMENT Statement
  2646. );
  2647. /*++
  2648. Routine Description:
  2649. This routine evaluates an Unload statement, which unloads a previously
  2650. loaded definition block.
  2651. Arguments:
  2652. Context - Supplies a pointer to the current AML execution context.
  2653. Statement - Supplies a pointer to the statement to evaluate.
  2654. Return Value:
  2655. Status code.
  2656. --*/
  2657. KSTATUS
  2658. AcpipEvaluateWaitStatement (
  2659. PAML_EXECUTION_CONTEXT Context,
  2660. PAML_STATEMENT Statement
  2661. );
  2662. /*++
  2663. Routine Description:
  2664. This routine evaluates an Wait (for Event) statement.
  2665. Arguments:
  2666. Context - Supplies a pointer to the current AML execution context.
  2667. Statement - Supplies a pointer to the statement to evaluate.
  2668. Return Value:
  2669. Status code.
  2670. --*/
  2671. KSTATUS
  2672. AcpipEvaluateWhileModifierStatement (
  2673. PAML_EXECUTION_CONTEXT Context,
  2674. PAML_STATEMENT Statement
  2675. );
  2676. /*++
  2677. Routine Description:
  2678. This routine evaluates one of the statements that modifies a While loop,
  2679. a Break or Continue.
  2680. Arguments:
  2681. Context - Supplies a pointer to the current AML execution context.
  2682. Statement - Supplies a pointer to the statement to evaluate.
  2683. Return Value:
  2684. Status code.
  2685. --*/
  2686. KSTATUS
  2687. AcpipEvaluateWhileStatement (
  2688. PAML_EXECUTION_CONTEXT Context,
  2689. PAML_STATEMENT Statement
  2690. );
  2691. /*++
  2692. Routine Description:
  2693. This routine evaluates a While statement.
  2694. Arguments:
  2695. Context - Supplies a pointer to the current AML execution context.
  2696. Statement - Supplies a pointer to the statement to evaluate.
  2697. Return Value:
  2698. Status code.
  2699. --*/
  2700. //
  2701. // Helper functions.
  2702. //
  2703. PACPI_OBJECT
  2704. AcpipConvertObjectType (
  2705. PAML_EXECUTION_CONTEXT Context,
  2706. PACPI_OBJECT Object,
  2707. ACPI_OBJECT_TYPE NewType
  2708. );
  2709. /*++
  2710. Routine Description:
  2711. This routine performs a conversion between supported ACPI object types.
  2712. Arguments:
  2713. Context - Supplies a pointer to the current execution context.
  2714. Object - Supplies a pointer to the object to convert.
  2715. NewType - Supplies the type to convert the given object to.
  2716. Return Value:
  2717. Returns a pointer to a new object (unlinked to the namespace) of the
  2718. requested type. The caller is responsible for this memory once its returned.
  2719. NULL on failure.
  2720. --*/
  2721. KSTATUS
  2722. AcpipResolveStoreDestination (
  2723. PAML_EXECUTION_CONTEXT Context,
  2724. PACPI_OBJECT Destination,
  2725. PACPI_OBJECT *ResolvedDestination
  2726. );
  2727. /*++
  2728. Routine Description:
  2729. This routine resolves a store destination to the proper ACPI object based
  2730. on its type and the statement type.
  2731. Arguments:
  2732. Context - Supplies a pointer to the current AML execution context.
  2733. Destination - Supplies a pointer to the original store destination object.
  2734. ResolvedDestination - Supplies a pointer that receives a pointer to the
  2735. resolved destination object. This may return a pointer to the
  2736. original destination, but with an extra reference. The caller is always
  2737. responsible for releasing a reference on this object.
  2738. Return Value:
  2739. Status code.
  2740. --*/
  2741. KSTATUS
  2742. AcpipConvertToDataReferenceObject (
  2743. PAML_EXECUTION_CONTEXT Context,
  2744. PACPI_OBJECT Object,
  2745. PACPI_OBJECT *ResultObject
  2746. );
  2747. /*++
  2748. Routine Description:
  2749. This routine performs a conversion of an object to a type in the set of
  2750. DataRefObject types.
  2751. Arguments:
  2752. Context - Supplies a pointer to the current execution context.
  2753. Object - Supplies a pointer to the object to convert.
  2754. ResultObject - Supplies a pointer that receives a pointer to the result
  2755. object after the conversion. If no conversion is necessary, then this
  2756. may be a pointer to the original object. If a conversion is necessary,
  2757. then this will be a pointer to a new object. Either way the caller is
  2758. responsible for releasing one reference on the result object on
  2759. success.
  2760. Return Value:
  2761. Status code.
  2762. --*/
  2763. PACPI_OBJECT
  2764. AcpipParseNameString (
  2765. PAML_EXECUTION_CONTEXT Context
  2766. );
  2767. /*++
  2768. Routine Description:
  2769. This routine parses a namespace string from the AML stream.
  2770. Arguments:
  2771. Context - Supplies a pointer to the AML execution context. The name string
  2772. will be evaluated from the current offset.
  2773. Return Value:
  2774. Returns a pointer to a string object (unconnected to any namespace) on
  2775. success.
  2776. NULL on failure. The AML stream current offset will be unchanged on failure.
  2777. --*/
  2778. KSTATUS
  2779. AcpipParseFieldList (
  2780. PAML_EXECUTION_CONTEXT Context,
  2781. AML_STATEMENT_TYPE Type,
  2782. PACPI_OBJECT OperationRegion,
  2783. PACPI_OBJECT BankRegister,
  2784. PACPI_OBJECT BankValue,
  2785. PACPI_OBJECT IndexRegister,
  2786. PACPI_OBJECT DataRegister,
  2787. ULONG EndOffset,
  2788. UCHAR InitialAccessFlags
  2789. );
  2790. /*++
  2791. Routine Description:
  2792. This routine parses a field list, used in Operation Region field list
  2793. declarations.
  2794. Arguments:
  2795. Context - Supplies a pointer to the AML execution context.
  2796. Type - Supplies the type of field to create. Valid values are
  2797. AmlStatementField, AmlStatementBankField, and AmlStatementIndexField.
  2798. OperationRegion - Supplies a pointer to the operation region these fields
  2799. belong to. NULL is only valid if the execution context is not
  2800. executing statements.
  2801. BankRegister - Supplies an optional pointer to the bank register to write
  2802. to before accessing these fields. It is expected that the Bank registers
  2803. will be non-null or the Index/Data registers, but not both.
  2804. BankValue - Supplies a pointer to the value to write to the bank register.
  2805. If the bank register is not supplied, this parameter is ignored. If the
  2806. bank register is supplied, this parameter is required.
  2807. IndexRegister - Supplies an optional pointer to the index register to write
  2808. to before accessing the corresponding data register. It is expected
  2809. that the Index/Data registers are non-null or the Bank registers, but
  2810. not both.
  2811. DataRegister - Supplies a pointer to the data register to use in
  2812. Index/Data mode. If the Index register is not supplied, this parameter
  2813. is ignored. If the index register is supplied, this parameter is
  2814. required.
  2815. EndOffset - Supplies the ending offset (exclusive) of the field list in the
  2816. AML code stream.
  2817. InitialAccessFlags - Supplies the initial attributes of the field
  2818. (until the first AccessAs modifier is parsed).
  2819. Return Value:
  2820. Status code.
  2821. --*/
  2822. ULONGLONG
  2823. AcpipParsePackageLength (
  2824. PAML_EXECUTION_CONTEXT Context
  2825. );
  2826. /*++
  2827. Routine Description:
  2828. This routine parses a package length from the AML stream.
  2829. Arguments:
  2830. Context - Supplies a pointer to the AML execution context. The name string
  2831. will be evaluated from the current offset.
  2832. Return Value:
  2833. Returns the size of the package that follows.
  2834. 0 on failure.
  2835. --*/