diff options
| author | Jung-uk Kim <jkim@FreeBSD.org> | 2020-03-26 21:13:14 +0000 |
|---|---|---|
| committer | Jung-uk Kim <jkim@FreeBSD.org> | 2020-03-26 21:13:14 +0000 |
| commit | a117a0a6c82c5a5030040bd2b75704a1366741d6 (patch) | |
| tree | 29eb5a43c2eeafbdaada31b2f23a7b96f623b260 /source/components/dispatcher/dswexec.c | |
| parent | aa36cd6999384cddbfa0d030bcdd44e8bf9c7779 (diff) | |
Notes
Diffstat (limited to 'source/components/dispatcher/dswexec.c')
| -rw-r--r-- | source/components/dispatcher/dswexec.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/source/components/dispatcher/dswexec.c b/source/components/dispatcher/dswexec.c index f2925ecff00d..3fa7b95bba8e 100644 --- a/source/components/dispatcher/dswexec.c +++ b/source/components/dispatcher/dswexec.c @@ -158,7 +158,9 @@ #include "acinterp.h" #include "acnamesp.h" #include "acdebug.h" - +#ifdef ACPI_EXEC_APP +#include "aecommon.h" +#endif #define _COMPONENT ACPI_DISPATCHER ACPI_MODULE_NAME ("dswexec") @@ -504,7 +506,10 @@ AcpiDsExecEndOp ( UINT32 OpClass; ACPI_PARSE_OBJECT *NextOp; ACPI_PARSE_OBJECT *FirstArg; - +#ifdef ACPI_EXEC_APP + char *Namepath; + ACPI_OPERAND_OBJECT *ObjDesc; +#endif ACPI_FUNCTION_TRACE_PTR (DsExecEndOp, WalkState); @@ -717,6 +722,29 @@ AcpiDsExecEndOp ( } Status = AcpiDsEvalBufferFieldOperands (WalkState, Op); + if (ACPI_FAILURE (Status)) + { + break; + } + +#ifdef ACPI_EXEC_APP + /* + * AcpiExec support for namespace initialization file (initialize + * BufferFields in this code.) + */ + Namepath = AcpiNsGetExternalPathname (Op->Common.Node); + Status = AeLookupInitFileEntry (Namepath, &ObjDesc); + if (ACPI_SUCCESS (Status)) + { + Status = AcpiExWriteDataToField (ObjDesc, Op->Common.Node->Object, NULL); + if ACPI_FAILURE (Status) + { + ACPI_EXCEPTION ((AE_INFO, Status, "While writing to buffer field")); + } + } + ACPI_FREE (Namepath); + Status = AE_OK; +#endif break; |
