diff options
author | takawata <takawata@FreeBSD.org> | 2002-03-02 15:05:26 +0000 |
---|---|---|
committer | takawata <takawata@FreeBSD.org> | 2002-03-02 15:05:26 +0000 |
commit | 036636ab017f0c617bc601abf9fe7801a86115bc (patch) | |
tree | b0e67a283c5f5f2ec36c320f0b6c4a7b4d4875f5 /usr.sbin | |
parent | 979b31fe25cbb5a110e939e2539e9a43a5eacf2d (diff) | |
download | FreeBSD-src-036636ab017f0c617bc601abf9fe7801a86115bc.zip FreeBSD-src-036636ab017f0c617bc601abf9fe7801a86115bc.tar.gz |
Fix bug on method local named object related panic and Bankfield
operation.
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/acpi/acpidump/asl_dump.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/usr.sbin/acpi/acpidump/asl_dump.c b/usr.sbin/acpi/acpidump/asl_dump.c index 123fd5d3..2d645a1 100644 --- a/usr.sbin/acpi/acpidump/asl_dump.c +++ b/usr.sbin/acpi/acpidump/asl_dump.c @@ -202,6 +202,12 @@ print_indent(int indent) asl_env.curname = old_name; \ } while(0) +#define ASL_CREATE_LOCALNAMEOBJ(dp) do { \ + if(scope_within_method){ \ + aml_create_name(&asl_env, dp); \ + } \ +}while(0); + static void asl_dump_defscope(u_int8_t **dpp, int indent) { @@ -698,6 +704,7 @@ asl_dump_defopregion(u_int8_t **dpp, int indent) dp = *dpp; printf("OperationRegion("); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); /* Name */ printf(", %s, ", regions[*dp++]); /* Space */ asl_dump_termobj(&dp, indent); /* Offset */ @@ -734,6 +741,7 @@ asl_dump_field(u_int8_t **dpp, u_int32_t offset) case '_': case '.': case '/': + ASL_CREATE_LOCALNAMEOBJ(dp); name = asl_dump_namestring(&dp); width = asl_dump_pkglength(&dp); offset += width; @@ -867,7 +875,7 @@ asl_dump_defbankfield(u_int8_t **dpp, int indent) pkglength = asl_dump_pkglength(&dp); end = start + pkglength; - printf("Field("); + printf("BankField("); asl_dump_termobj(&dp, indent); /* Name1 */ printf(", "); asl_dump_termobj(&dp, indent); /* Name2 */ @@ -1161,6 +1169,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) break; case 0x06: /* AliasOp */ printf("Alias("); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(", "); asl_dump_termobj(&dp, indent); @@ -1168,6 +1177,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) break; case 0x08: /* NameOp */ printf("Name("); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(", "); asl_dump_termobj(&dp, indent); @@ -1190,6 +1200,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) switch (opcode) { case 0x01: /* MutexOp */ printf("Mutex("); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(", %d)", *dp++); break; @@ -1213,6 +1224,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) printf(", "); asl_dump_termobj(&dp, indent); printf(", "); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(")"); break; @@ -1507,6 +1519,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) printf(", "); asl_dump_termobj(&dp, indent); printf(", "); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(")"); break; @@ -1516,6 +1529,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) printf(", "); asl_dump_termobj(&dp, indent); printf(", "); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(")"); break; @@ -1525,6 +1539,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) printf(", "); asl_dump_termobj(&dp, indent); printf(", "); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(")"); break; @@ -1534,6 +1549,7 @@ asl_dump_termobj(u_int8_t **dpp, int indent) printf(", "); asl_dump_termobj(&dp, indent); printf(", "); + ASL_CREATE_LOCALNAMEOBJ(dp); asl_dump_termobj(&dp, indent); printf(")"); break; |