[PATCH 2/5] acpi: method: Add new ACPI 5.0 _PRE
Colin King
colin.king at canonical.com
Mon Jul 2 12:15:08 UTC 2012
From: Colin Ian King <colin.king at canonical.com>
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/acpi/method/method.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 06fb7de..afe6e75 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -92,6 +92,7 @@
* _PPC 8.4.4.3 N
* _PR 5.3.1 N
* _PR0 7.2.7 N
+ * _PRE 7.2.12 Y
* _PRS 6.2.11 N
* _PRW 7.2.11 N
* _PS0 7.2.2 Y
@@ -1754,6 +1755,28 @@ static int method_test_PSE(fwts_framework *fw)
return method_evaluate_method(fw, METHOD_OPTIONAL, "_PSE", arg, 1, method_test_NULL_return, NULL);
}
+static void method_test_PRE_return(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private)
+{
+ int i;
+
+ if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+ return;
+
+ /* All elements in the package must be references */
+ for (i=0; i < obj->Package.Count; i++) {
+ if (obj->Package.Elements[i].Type != ACPI_TYPE_LOCAL_REFERENCE) {
+ fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_PREElementType",
+ "_PRE package element %d was not a reference.", i);
+ fwts_tag_failed(fw, FWTS_TAG_ACPI_METHOD_RETURN);
+ }
+ }
+}
+
+static int method_test_PRE(fwts_framework *fw)
+{
+ return method_evaluate_method(fw, METHOD_OPTIONAL, "_PRE", NULL, 0, method_test_PRE_return, NULL);
+}
+
#define method_test_PSx(name) \
static int method_test ## name(fwts_framework *fw) \
{ \
@@ -2105,6 +2128,7 @@ static fwts_framework_minor_test method_tests[] = {
{ method_test_PSE, "Check _PSE (Power State for Enumeration)." },
{ method_test_PSW, "Check _PSW (Power State Wake)." },
{ method_test_IRC, "Check _IRC (In Rush Current)." },
+ { method_test_PRE, "Check _PRE (Power Resources for Enumeration)." },
/* Section 6.3 */
{ method_test_EJD, "Check _EJD (Ejection Dependent Device)." },
--
1.7.10.4
More information about the fwts-devel
mailing list