summaryrefslogtreecommitdiff
path: root/source/include/acexcep.h
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2008-10-09 14:37:11 -0700
committerRobert Moore <Robert.Moore@intel.com>2008-10-09 14:37:11 -0700
commitdc3e72f35a8d97c489e319d411981e62a8cee9b3 (patch)
tree0a574ca8337e1c99b7a103b9762efeec8541ecfe /source/include/acexcep.h
parentd2a82ede582bfa48583b1d658d3387c8c05bc7da (diff)
downloadacpica-dc3e72f35a8d97c489e319d411981e62a8cee9b3.tar.gz
Add a mechanism to escape infinite AML While() loops.
Add a loop counter to force exit from AML While loops if the count becomes too large. This can occur in poorly written AML when the hardware does not respond within a while loop and the loop does not implement a timeout. The maximum loop count is configurable. A new exception code is returned when a loop is broken, AE_AML_INFINITE_LOOP. Bob Moore, Alexey Starikovskiy.
Diffstat (limited to 'source/include/acexcep.h')
-rw-r--r--source/include/acexcep.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/include/acexcep.h b/source/include/acexcep.h
index d32ec4f24..ca1a51311 100644
--- a/source/include/acexcep.h
+++ b/source/include/acexcep.h
@@ -231,8 +231,9 @@
#define AE_AML_CIRCULAR_REFERENCE (ACPI_STATUS) (0x001E | AE_CODE_AML)
#define AE_AML_BAD_RESOURCE_LENGTH (ACPI_STATUS) (0x001F | AE_CODE_AML)
#define AE_AML_ILLEGAL_ADDRESS (ACPI_STATUS) (0x0020 | AE_CODE_AML)
+#define AE_AML_INFINITE_LOOP (ACPI_STATUS) (0x0021 | AE_CODE_AML)
-#define AE_CODE_AML_MAX 0x0020
+#define AE_CODE_AML_MAX 0x0021
/*
@@ -352,6 +353,7 @@ char const *AcpiGbl_ExceptionNames_Aml[] =
"AE_AML_CIRCULAR_REFERENCE",
"AE_AML_BAD_RESOURCE_LENGTH",
"AE_AML_ILLEGAL_ADDRESS",
+ "AE_AML_INFINITE_LOOP"
};
char const *AcpiGbl_ExceptionNames_Ctrl[] =