summaryrefslogtreecommitdiff
path: root/source/components/utilities/utdecode.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/components/utilities/utdecode.c')
-rw-r--r--source/components/utilities/utdecode.c77
1 files changed, 66 insertions, 11 deletions
diff --git a/source/components/utilities/utdecode.c b/source/components/utilities/utdecode.c
index 6c97c0c53d57..28617dd8bf47 100644
--- a/source/components/utilities/utdecode.c
+++ b/source/components/utilities/utdecode.c
@@ -527,7 +527,7 @@ AcpiUtGetMutexName (
/* Names for Notify() values, used for debug output */
-static const char *AcpiGbl_NotifyValueNames[ACPI_NOTIFY_MAX + 1] =
+static const char *AcpiGbl_GenericNotify[ACPI_NOTIFY_MAX + 1] =
{
/* 00 */ "Bus Check",
/* 01 */ "Device Check",
@@ -539,32 +539,87 @@ static const char *AcpiGbl_NotifyValueNames[ACPI_NOTIFY_MAX + 1] =
/* 07 */ "Power Fault",
/* 08 */ "Capabilities Check",
/* 09 */ "Device PLD Check",
- /* 10 */ "Reserved",
- /* 11 */ "System Locality Update",
- /* 12 */ "Shutdown Request"
+ /* 0A */ "Reserved",
+ /* 0B */ "System Locality Update",
+ /* 0C */ "Shutdown Request"
};
+static const char *AcpiGbl_DeviceNotify[4] =
+{
+ /* 80 */ "Status Change",
+ /* 81 */ "Information Change",
+ /* 82 */ "Device-Specific Change",
+ /* 83 */ "Device-Specific Change"
+};
+
+static const char *AcpiGbl_ProcessorNotify[4] =
+{
+ /* 80 */ "Performance Capability Change",
+ /* 81 */ "C-State Change",
+ /* 82 */ "Throttling Capability Change",
+ /* 83 */ "Device-Specific Change"
+};
+
+static const char *AcpiGbl_ThermalNotify[4] =
+{
+ /* 80 */ "Thermal Status Change",
+ /* 81 */ "Thermal Trip Point Change",
+ /* 82 */ "Thermal Device List Change",
+ /* 83 */ "Thermal Relationship Change"
+};
+
+
const char *
AcpiUtGetNotifyName (
- UINT32 NotifyValue)
+ UINT32 NotifyValue,
+ ACPI_OBJECT_TYPE Type)
{
+ /* 00 - 0C are common to all object types */
+
if (NotifyValue <= ACPI_NOTIFY_MAX)
{
- return (AcpiGbl_NotifyValueNames[NotifyValue]);
+ return (AcpiGbl_GenericNotify[NotifyValue]);
}
- else if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
+
+ /* 0D - 7F are reserved */
+
+ if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
{
return ("Reserved");
}
- else if (NotifyValue <= ACPI_MAX_DEVICE_SPECIFIC_NOTIFY)
+
+ /* 80 - 83 are per-object-type */
+
+ if (NotifyValue <= 0x83)
{
- return ("Device Specific");
+ switch (Type)
+ {
+ case ACPI_TYPE_ANY:
+ case ACPI_TYPE_DEVICE:
+ return (AcpiGbl_DeviceNotify [NotifyValue - 0x80]);
+
+ case ACPI_TYPE_PROCESSOR:
+ return (AcpiGbl_ProcessorNotify [NotifyValue - 0x80]);
+
+ case ACPI_TYPE_THERMAL:
+ return (AcpiGbl_ThermalNotify [NotifyValue - 0x80]);
+
+ default:
+ return ("Target object type does not support notifies");
+ }
}
- else
+
+ /* 84 - BF are device-specific */
+
+ if (NotifyValue <= ACPI_MAX_DEVICE_SPECIFIC_NOTIFY)
{
- return ("Hardware Specific");
+ return ("Device-Specific");
}
+
+ /* C0 and above are hardware-specific */
+
+ return ("Hardware-Specific");
}
#endif