Page MenuHomeFreeBSD

D46769.id143774.diff
No OneTemporary

D46769.id143774.diff

diff --git a/usr.sbin/acpi/acpidump/acpi.c b/usr.sbin/acpi/acpidump/acpi.c
--- a/usr.sbin/acpi/acpidump/acpi.c
+++ b/usr.sbin/acpi/acpidump/acpi.c
@@ -2643,6 +2643,22 @@
perror("rmdir");
}
+void
+aml_disassemble_separate(ACPI_TABLE_HEADER *rsdt, ACPI_TABLE_HEADER *dsdp)
+{
+ ACPI_TABLE_HEADER *ssdt = NULL;
+
+ aml_disassemble(NULL, dsdp);
+ if (rsdt != NULL) {
+ for (;;) {
+ ssdt = sdt_from_rsdt(rsdt, "SSDT", ssdt);
+ if(ssdt == NULL)
+ break;
+ aml_disassemble(NULL, ssdt);
+ }
+ }
+}
+
void
sdt_print_all(ACPI_TABLE_HEADER *rsdp)
{
diff --git a/usr.sbin/acpi/acpidump/acpidump.h b/usr.sbin/acpi/acpidump/acpidump.h
--- a/usr.sbin/acpi/acpidump/acpidump.h
+++ b/usr.sbin/acpi/acpidump/acpidump.h
@@ -144,6 +144,7 @@
/* Disassemble the AML in the DSDT */
void aml_disassemble(ACPI_TABLE_HEADER *, ACPI_TABLE_HEADER *);
+void aml_disassemble_separate(ACPI_TABLE_HEADER *, ACPI_TABLE_HEADER *);
/* Routines for accessing tables in physical memory */
ACPI_TABLE_RSDP *acpi_find_rsd_ptr(void);
diff --git a/usr.sbin/acpi/acpidump/acpidump.c b/usr.sbin/acpi/acpidump/acpidump.c
--- a/usr.sbin/acpi/acpidump/acpidump.c
+++ b/usr.sbin/acpi/acpidump/acpidump.c
@@ -65,7 +65,7 @@
if (argc < 2)
usage(progname);
- while ((c = getopt(argc, argv, "dhtvf:o:")) != -1) {
+ while ((c = getopt(argc, argv, "dhtvsf:o:")) != -1) {
switch (c) {
case 'd':
dflag = 1;
@@ -82,6 +82,9 @@
case 'o':
dsdt_output_file = optarg;
break;
+ case 's':
+ dflag = 2;
+ break;
case 'h':
default:
usage(progname);
@@ -136,7 +139,11 @@
if (dflag) {
if (vflag)
warnx("disassembling DSDT, iasl messages follow");
- aml_disassemble(rsdt, sdt);
+ if(dflag == 1){
+ aml_disassemble(rsdt, sdt);
+ } else {
+ aml_disassemble_separate(rsdt, sdt);
+ }
if (vflag)
warnx("iasl processing complete");
}

File Metadata

Mime Type
text/plain
Expires
Mon, Jun 22, 10:10 PM (4 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34215677
Default Alt Text
D46769.id143774.diff (1 KB)

Event Timeline