On Sat, Jun 30, 2018 at 08:43:18PM +0200, Mark Kettenis wrote: > The pointer to the DSDT may be 64-bit as well. In that case the > 32-bit field will be zero and we have to use the 64-bit field. > > ok? > > > Index: acpidump.c > =================================================================== > RCS file: /cvs/src/usr.sbin/acpidump/acpidump.c,v > retrieving revision 1.18 > diff -u -p -r1.18 acpidump.c > --- acpidump.c 24 Jun 2018 10:39:59 -0000 1.18 > +++ acpidump.c 30 Jun 2018 18:41:51 -0000 > @@ -532,7 +532,10 @@ acpi_handle_facp(struct FACPbody *facp) > struct ACPIsdt *dsdp; > > acpi_print_facp(facp); > - dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->dsdt_ptr); > + if (facp->dsdt_ptr == 0) > + dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->x_dsdt); > + else > + dsdp = (struct ACPIsdt *) acpi_map_sdt(facp->dsdt_ptr); > if (acpi_checksum(dsdp, dsdp->len)) > errx(1, "DSDT is corrupt"); > acpi_handle_dsdt(dsdp); >
ok
