diff options
author | Alexander Motin <mav@FreeBSD.org> | 2021-01-25 21:08:06 +0000 |
---|---|---|
committer | Alexander Motin <mav@FreeBSD.org> | 2021-01-25 21:08:06 +0000 |
commit | 1b109c69ed625ebf292c1d16f7a3efcab96722e5 (patch) | |
tree | 888aef7d3760d9ffb57476ebebbe95978bedf2ff | |
parent | dcd1e41f0cbcb8f7ec5f7a891a690be959bc1ea8 (diff) | |
download | src-1b109c69ed625ebf292c1d16f7a3efcab96722e5.tar.gz src-1b109c69ed625ebf292c1d16f7a3efcab96722e5.zip |
Decode NFIT Platform Capabilities.
MFC after: 1 week
-rw-r--r-- | usr.sbin/acpi/acpidump/acpi.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/usr.sbin/acpi/acpidump/acpi.c b/usr.sbin/acpi/acpidump/acpi.c index 27fe1de0a219..c573c02b7f92 100644 --- a/usr.sbin/acpi/acpidump/acpi.c +++ b/usr.sbin/acpi/acpidump/acpi.c @@ -1562,7 +1562,8 @@ static const char *nfit_types[] = { [ACPI_NFIT_TYPE_SMBIOS] = "SMBIOS", [ACPI_NFIT_TYPE_CONTROL_REGION] = "Control Region", [ACPI_NFIT_TYPE_DATA_REGION] = "Data Region", - [ACPI_NFIT_TYPE_FLUSH_ADDRESS] = "Flush Address" + [ACPI_NFIT_TYPE_FLUSH_ADDRESS] = "Flush Address", + [ACPI_NFIT_TYPE_CAPABILITIES] = "Platform Capabilities" }; @@ -1579,6 +1580,7 @@ acpi_print_nfit(ACPI_NFIT_HEADER *nfit) ACPI_NFIT_CONTROL_REGION *ctlreg; ACPI_NFIT_DATA_REGION *datareg; ACPI_NFIT_FLUSH_ADDRESS *fladdr; + ACPI_NFIT_CAPABILITIES *caps; if (nfit->Type < nitems(nfit_types)) printf("\tType=%s\n", nfit_types[nfit->Type]); @@ -1709,6 +1711,20 @@ acpi_print_nfit(ACPI_NFIT_HEADER *nfit) printf("\tHintCount=%u\n", (u_int)fladdr->HintCount); /* XXX fladdr->HintAddress[i] output is not supported */ break; + case ACPI_NFIT_TYPE_CAPABILITIES: + caps = (ACPI_NFIT_CAPABILITIES *)nfit; + printf("\tHighestCapability=%u\n", (u_int)caps->HighestCapability); + +#define PRINTFLAG(var, flag) printflag((var), ACPI_NFIT_CAPABILITY_## flag, #flag) + + printf("\tCapabilities="); + PRINTFLAG(caps->Capabilities, CACHE_FLUSH); + PRINTFLAG(caps->Capabilities, MEM_FLUSH); + PRINTFLAG(caps->Capabilities, MEM_MIRRORING); + PRINTFLAG_END(); + +#undef PRINTFLAG + break; } } |