diff options
author | Jung-uk Kim <jkim@FreeBSD.org> | 2016-05-27 21:40:35 +0000 |
---|---|---|
committer | Jung-uk Kim <jkim@FreeBSD.org> | 2016-05-27 21:40:35 +0000 |
commit | 4d46bb7749ef0cf25eb2b25f2d7324023cb754b4 (patch) | |
tree | f7064866b29ad07c184316d5bbb13a4cb187326b /source/components/disassembler/dmwalk.c | |
parent | 2331c681155dd7b2f78bd28ca0c183e2f98ff44f (diff) |
Notes
Diffstat (limited to 'source/components/disassembler/dmwalk.c')
-rw-r--r-- | source/components/disassembler/dmwalk.c | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/source/components/disassembler/dmwalk.c b/source/components/disassembler/dmwalk.c index 7465e75d3804..3c953f5465e1 100644 --- a/source/components/disassembler/dmwalk.c +++ b/source/components/disassembler/dmwalk.c @@ -462,21 +462,26 @@ AcpiDmDescendingOp ( { NextOp->Common.DisasmFlags |= ACPI_PARSEOP_PARAMETER_LIST; - /* - * A Zero predicate indicates the possibility of one or more - * External() opcodes within the If() block. - */ - if (NextOp->Common.AmlOpcode == AML_ZERO_OP) - { - NextOp2 = NextOp->Common.Next; + /* Don't emit the actual embedded externals unless asked */ - if (NextOp2 && - (NextOp2->Common.AmlOpcode == AML_EXTERNAL_OP)) + if (!AcpiGbl_DmEmitExternalOpcodes) + { + /* + * A Zero predicate indicates the possibility of one or more + * External() opcodes within the If() block. + */ + if (NextOp->Common.AmlOpcode == AML_ZERO_OP) { - /* Ignore the If 0 block and all children */ + NextOp2 = NextOp->Common.Next; + + if (NextOp2 && + (NextOp2->Common.AmlOpcode == AML_EXTERNAL_OP)) + { + /* Ignore the If 0 block and all children */ - Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; - return (AE_CTRL_DEPTH); + Op->Common.DisasmFlags |= ACPI_PARSEOP_IGNORE; + return (AE_CTRL_DEPTH); + } } } } |