Module Name: src
Committed By: msaitoh
Date: Wed Sep 27 05:43:55 UTC 2017
Modified Files:
src/usr.sbin/acpitools/acpidump: acpi.c
Log Message:
- Print SAPIC EID of Processor Local APIC/SAPIC Affinity.
- Print GIC Interrupt Translation Service(ITS) Affinity (ACPI 6.2)
- KNF
- Whilte space cleanup.
To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/usr.sbin/acpitools/acpidump/acpi.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/acpitools/acpidump/acpi.c
diff -u src/usr.sbin/acpitools/acpidump/acpi.c:1.26 src/usr.sbin/acpitools/acpidump/acpi.c:1.27
--- src/usr.sbin/acpitools/acpidump/acpi.c:1.26 Thu Sep 7 04:40:56 2017
+++ src/usr.sbin/acpitools/acpidump/acpi.c Wed Sep 27 05:43:55 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi.c,v 1.26 2017/09/07 04:40:56 msaitoh Exp $ */
+/* $NetBSD: acpi.c,v 1.27 2017/09/27 05:43:55 msaitoh Exp $ */
/*-
* Copyright (c) 1998 Doug Rabson
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: acpi.c,v 1.26 2017/09/07 04:40:56 msaitoh Exp $");
+__RCSID("$NetBSD: acpi.c,v 1.27 2017/09/27 05:43:55 msaitoh Exp $");
#include <sys/param.h>
#include <sys/endian.h>
@@ -95,9 +95,9 @@ static void acpi_handle_sbst(ACPI_TABLE_
static void acpi_handle_slit(ACPI_TABLE_HEADER *sdp);
static void acpi_handle_spcr(ACPI_TABLE_HEADER *sdp);
static void acpi_handle_spmi(ACPI_TABLE_HEADER *sdp);
-static void acpi_print_srat_cpu(uint32_t apic_id,
+static void acpi_print_srat_cpu(uint8_t type, uint32_t apic_id,
uint32_t proximity_domain,
- uint32_t flags, uint32_t clockdomain);
+ uint32_t flags, uint32_t clockdomain, uint8_t sapic_eid);
static void acpi_print_srat_memory(ACPI_SRAT_MEM_AFFINITY *mp);
static void acpi_print_srat(ACPI_SUBTABLE_HEADER *srat);
static void acpi_handle_srat(ACPI_TABLE_HEADER *sdp);
@@ -210,7 +210,7 @@ acpi_print_string(char *s, size_t length
static void
acpi_print_gas(ACPI_GENERIC_ADDRESS *gas)
{
- switch(gas->SpaceId) {
+ switch (gas->SpaceId) {
case ACPI_ADR_SPACE_SYSTEM_MEMORY:
if (gas->BitWidth <= 32)
printf("0x%08x:%u[%u] (Memory)",
@@ -1984,8 +1984,8 @@ acpi_handle_spmi(ACPI_TABLE_HEADER *sdp)
}
static void
-acpi_print_srat_cpu(uint32_t apic_id, uint32_t proximity_domain,
- uint32_t flags, uint32_t clockdomain)
+acpi_print_srat_cpu(uint8_t type, uint32_t apic_id, uint32_t proximity_domain,
+ uint32_t flags, uint32_t clockdomain, uint8_t sapic_eid)
{
printf("\tFlags={");
@@ -1994,9 +1994,14 @@ acpi_print_srat_cpu(uint32_t apic_id, ui
else
printf("DISABLED");
printf("}\n");
- printf("\tAPIC ID=%d\n", apic_id);
+ printf("\t%s ID=%d\n",
+ (type == ACPI_SRAT_TYPE_GIC_ITS_AFFINITY) ? "ITS" : "APIC",
+ apic_id);
+ if (type == ACPI_SRAT_TYPE_CPU_AFFINITY)
+ printf("\tSAPIC EID=%d\n", sapic_eid);
printf("\tProximity Domain=%d\n", proximity_domain);
- printf("\tClock Domain=%d\n", clockdomain);
+ if (type != ACPI_SRAT_TYPE_GIC_ITS_AFFINITY)
+ printf("\tClock Domain=%d\n", clockdomain);
}
static void
@@ -2023,6 +2028,7 @@ static const char *srat_types[] = {
[ACPI_SRAT_TYPE_MEMORY_AFFINITY] = "Memory",
[ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY] = "X2APIC",
[ACPI_SRAT_TYPE_GICC_AFFINITY] = "GICC",
+ [ACPI_SRAT_TYPE_GIC_ITS_AFFINITY] = "GIC ITS",
};
static void
@@ -2030,7 +2036,8 @@ acpi_print_srat(ACPI_SUBTABLE_HEADER *sr
{
ACPI_SRAT_CPU_AFFINITY *cpu;
ACPI_SRAT_X2APIC_CPU_AFFINITY *x2apic;
- ACPI_SRAT_GICC_AFFINITY *gic;
+ ACPI_SRAT_GICC_AFFINITY *gicc;
+ ACPI_SRAT_GIC_ITS_AFFINITY *gici;
if (srat->Type < __arraycount(srat_types))
printf("\tType=%s\n", srat_types[srat->Type]);
@@ -2039,25 +2046,33 @@ acpi_print_srat(ACPI_SUBTABLE_HEADER *sr
switch (srat->Type) {
case ACPI_SRAT_TYPE_CPU_AFFINITY:
cpu = (ACPI_SRAT_CPU_AFFINITY *)srat;
- acpi_print_srat_cpu(cpu->ApicId,
+ acpi_print_srat_cpu(srat->Type, cpu->ApicId,
cpu->ProximityDomainHi[2] << 24 |
cpu->ProximityDomainHi[1] << 16 |
cpu->ProximityDomainHi[0] << 0 |
cpu->ProximityDomainLo,
- cpu->Flags, cpu->ClockDomain);
+ cpu->Flags, cpu->ClockDomain, cpu->LocalSapicEid);
break;
case ACPI_SRAT_TYPE_MEMORY_AFFINITY:
acpi_print_srat_memory((ACPI_SRAT_MEM_AFFINITY *)srat);
break;
case ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY:
x2apic = (ACPI_SRAT_X2APIC_CPU_AFFINITY *)srat;
- acpi_print_srat_cpu(x2apic->ApicId, x2apic->ProximityDomain,
- x2apic->Flags, x2apic->ClockDomain);
+ acpi_print_srat_cpu(srat->Type, x2apic->ApicId,
+ x2apic->ProximityDomain,
+ x2apic->Flags, x2apic->ClockDomain, 0 /* dummy */);
break;
case ACPI_SRAT_TYPE_GICC_AFFINITY:
- gic = (ACPI_SRAT_GICC_AFFINITY *)srat;
- acpi_print_srat_cpu(gic->AcpiProcessorUid, gic->ProximityDomain,
- gic->Flags, gic->ClockDomain);
+ gicc = (ACPI_SRAT_GICC_AFFINITY *)srat;
+ acpi_print_srat_cpu(srat->Type, gicc->AcpiProcessorUid,
+ gicc->ProximityDomain,
+ gicc->Flags, gicc->ClockDomain, 0 /* dummy */);
+ break;
+ case ACPI_SRAT_TYPE_GIC_ITS_AFFINITY:
+ gici = (ACPI_SRAT_GIC_ITS_AFFINITY *)srat;
+ acpi_print_srat_cpu(srat->Type, gici->ItsId,
+ gici->ProximityDomain,
+ 0 /* dummy */, 0 /* dummy */, 0 /* dummy */);
break;
}
}
@@ -2252,7 +2267,7 @@ acpi_tcpa_evname(struct TCPAevent *event
pc_event = (struct TCPApc_event *)(event + 1);
- switch(event->event_type) {
+ switch (event->event_type) {
case PREBOOT:
case POST_CODE:
case UNUSED:
@@ -2365,7 +2380,7 @@ acpi_handle_tcpa(ACPI_TABLE_HEADER *sdp)
printf(END_COMMENT);
return;
}
- if(sdp->Revision == 1) {
+ if (sdp->Revision == 1) {
printf("\tOLD TCPA spec log found. Dumping not supported.\n");
printf(END_COMMENT);
return;
@@ -2802,7 +2817,7 @@ acpi_handle_wdat(ACPI_TABLE_HEADER *sdp)
wdat->PciFunction);
printf("\n\tTimer Counter Period=%d msec\n", wdat->TimerPeriod);
printf("\tTimer Maximum Counter Value=%d\n", wdat->MaxCount);
- printf("\tTimer Minimum Counter Value=%d\n", wdat->MinCount);
+ printf("\tTimer Minimum Counter Value=%d\n", wdat->MinCount);
printf("\tFlags={");
if (wdat->Flags & ACPI_WDAT_ENABLED)
@@ -2838,7 +2853,7 @@ acpi_handle_wddt(ACPI_TABLE_HEADER *sdp)
printf("\tAddress=");
acpi_print_gas(&wddt->Address);
printf("\n\tTimer Maximum Counter Value=%d\n", wddt->MaxCount);
- printf("\tTimer Minimum Counter Value=%d\n", wddt->MinCount);
+ printf("\tTimer Minimum Counter Value=%d\n", wddt->MinCount);
printf("\tTimer Counter Period=%d\n", wddt->Period);
#define PRINTFLAG(var, flag) printflag((var), ACPI_WDDT_## flag, #flag)