[PATCH 1/2] lib: move and rename helper functions from method.c

Alex Hung alex.hung at canonical.com
Fri Sep 29 05:33:22 UTC 2017


In theory, there are no functional changes to existing code except the
helper functions are accessible from other files.

Signed-off-by: Alex Hung <alex.hung at canonical.com>
---
 src/acpi/method/method.c                | 988 ++++++++++----------------------
 src/lib/include/fwts_acpi_object_eval.h |  37 ++
 src/lib/src/fwts_acpi_object_eval.c     | 376 ++++++++++++
 3 files changed, 706 insertions(+), 695 deletions(-)

diff --git a/src/acpi/method/method.c b/src/acpi/method/method.c
index 3f1754e..613319d 100644
--- a/src/acpi/method/method.c
+++ b/src/acpi/method/method.c
@@ -257,24 +257,13 @@
  * _WED 	 N
  */
 
-/* Test types */
-#define METHOD_MANDATORY	1
-#define METHOD_OPTIONAL		2
-#define METHOD_MOBILE		4
-#define METHOD_SILENT		8
-
-#define ACPI_TYPE_INTBUF	(ACPI_TYPE_INVALID + 1)
-
-#define method_check_type(fw, name, buf, type) 			\
-	method_check_type__(fw, name, buf, type, #type)
-
 static bool fadt_mobile_platform;	/* True if a mobile platform */
 
 #define method_test_integer(name, type)				\
 static int method_test ## name(fwts_framework *fw)		\
 { 								\
 	return method_evaluate_method(fw, type, # name,		\
-		NULL, 0, method_test_integer_return, # name); 	\
+		NULL, 0, fwts_method_test_integer_return, # name); 	\
 }
 
 typedef void (*method_test_return)(fwts_framework *fw, char *name,
@@ -286,108 +275,6 @@ typedef void (*method_test_return)(fwts_framework *fw, char *name,
 
 /****************************************************************************/
 
-static bool method_type_matches(ACPI_OBJECT_TYPE t1, ACPI_OBJECT_TYPE t2)
-{
-	if (t1 == ACPI_TYPE_INTBUF &&
-	    (t2 == ACPI_TYPE_INTEGER || t2 == ACPI_TYPE_BUFFER))
-		return true;
-
-	if (t2 == ACPI_TYPE_INTBUF &&
-	    (t1 == ACPI_TYPE_INTEGER || t1 == ACPI_TYPE_BUFFER))
-		return true;
-
-	return t1 == t2;
-}
-
-/*
- *  method_passed_sane()
- *	helper function to report often used passed messages
- */
-static void method_passed_sane(
-	fwts_framework *fw,
-	const char *name,
-	const char *type)
-{
-	fwts_passed(fw, "%s correctly returned a sane looking %s.", name, type);
-}
-
-/*
- *  method_passed_sane_uint64()
- *	helper function to report often used passed uint64 values
- */
-static void method_passed_sane_uint64(
-	fwts_framework *fw,
-	const char *name,
-	const uint64_t value)
-{
-	fwts_passed(fw, "%s correctly returned sane looking "
-		"value 0x%8.8" PRIx64 ".", name, value);
-}
-
-/*
- *  method_failed_null_return()
- *	helper function to report often used failed NULL object return
- */
-static void method_failed_null_object(
-	fwts_framework *fw,
-	const char *name,
-	const char *type)
-{
-	fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodReturnNullObj",
-		"%s returned a NULL object, and did not "
-		"return %s.", name, type);
-}
-
-/*
- *  method_package_count_min()
- *	check that an ACPI package has at least 'min' elements
- */
-static int method_package_count_min(
-	fwts_framework *fw,
-	const char *name,
-	const char *objname,
-	const ACPI_OBJECT *obj,
-	const uint32_t min)
-{
-	if (obj->Package.Count < min) {
-		char tmp[128];
-
-		snprintf(tmp, sizeof(tmp), "Method%sElementCount", objname);
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
-			"%s should return package of at least %" PRIu32
-			" element%s, got %" PRIu32 " element%s instead.",
-			name, min, min == 1 ? "" : "s",
-			obj->Package.Count, obj->Package.Count == 1 ? "" : "s");
-		return FWTS_ERROR;
-	}
-	return FWTS_OK;
-}
-
-/*
- *  method_package_count_equal()
- *	check that an ACPI package has exactly 'count' elements
- */
-static int method_package_count_equal(
-	fwts_framework *fw,
-	const char *name,
-	const char *objname,
-	const ACPI_OBJECT *obj,
-	const uint32_t count)
-{
-	if (obj->Package.Count != count) {
-		char tmp[128];
-
-		snprintf(tmp, sizeof(tmp), "Method%sElementCount", objname);
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
-			"%s should return package of %" PRIu32
-			" element%s, got %" PRIu32 " element%s instead.",
-			name, count, count == 1 ? "" : "s",
-			obj->Package.Count, obj->Package.Count == 1 ? "" : "s");
-		return FWTS_ERROR;
-	}
-	return FWTS_OK;
-}
-
 /*
  *  method_init()
  *	initialize ACPI
@@ -616,34 +503,6 @@ static int method_name_check(fwts_framework *fw)
 }
 
 /*
- *  method_check_type__
- *	check returned object type
- */
-static int method_check_type__(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT_TYPE type,
-	char *type_name)
-{
-	ACPI_OBJECT *obj;
-
-	if ((buf == NULL) || (buf->Pointer == NULL)) {
-		method_failed_null_object(fw, name, type_name);
-		return FWTS_ERROR;
-	}
-
-	obj = buf->Pointer;
-
-	if (!method_type_matches(obj->Type, type)) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodReturnBadType",
-			"Method %s did not return %s.", name, type_name);
-		return FWTS_ERROR;
-	}
-	return FWTS_OK;
-}
-
-/*
  *  method_test_buffer_return
  *	check if a buffer object was returned
  */
@@ -656,272 +515,11 @@ static void method_test_buffer_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) == FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) == FWTS_OK)
 		fwts_passed(fw, "%s correctly returned a buffer of %" PRIu32 " elements.",
 			name, obj->Buffer.Length);
 }
 
-/*
- *  method_test_integer_return
- *	check if an integer object was returned
- */
-static void method_test_integer_return(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT *obj,
-	void *private)
-{
-	FWTS_UNUSED(obj);
-	FWTS_UNUSED(private);
-
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
-		fwts_passed(fw, "%s correctly returned an integer.", name);
-}
-
-/*
- *  method_test_string_return
- *	check if an string object was returned
- */
-static void method_test_string_return(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT *obj,
-	void *private)
-{
-	FWTS_UNUSED(obj);
-	FWTS_UNUSED(private);
-
-	if (method_check_type(fw, name, buf, ACPI_TYPE_STRING) == FWTS_OK)
-		fwts_passed(fw, "%s correctly returned a string.", name);
-}
-
-/*
- *  method_test_reference_return
- *	check if a reference object was returned
- */
-static void method_test_reference_return(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT *obj,
-	void *private)
-{
-	FWTS_UNUSED(obj);
-	FWTS_UNUSED(private);
-
-	if (method_check_type(fw, name, buf, ACPI_TYPE_LOCAL_REFERENCE) == FWTS_OK)
-		fwts_passed(fw, "%s correctly returned a reference.", name);
-}
-
-/*
- *  method_test_NULL_return
- *	check if no object was retuned
- */
-static void method_test_NULL_return(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT *obj,
-	void *private)
-{
-	FWTS_UNUSED(private);
-
-	/*
-	 *  In ACPICA SLACK mode null returns can be actually
-	 *  forced to return ACPI integers. Blame an errata
-	 *  and Windows compatibility for this mess.
-	 */
-	if (fw->acpica_mode & FWTS_ACPICA_MODE_SLACK) {
-		if ((buf != NULL) && (buf->Pointer != NULL)) {
-			ACPI_OBJECT *objtmp = buf->Pointer;
-			if (method_type_matches(objtmp->Type, ACPI_TYPE_INTEGER)) {
-				fwts_passed(fw, "%s returned an ACPI_TYPE_INTEGER as expected in slack mode.",
-					name);
-				return;
-			}
-		}
-	}
-
-	if (buf && buf->Length && buf->Pointer) {
-		fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodShouldReturnNothing", "%s returned values, but was expected to return nothing.", name);
-		fwts_log_info(fw, "Object returned:");
-		fwts_acpi_object_dump(fw, obj);
-		fwts_advice(fw,
-			"This probably won't cause any errors, but it should "
-			"be fixed as the AML code is not conforming to the "
-			"expected behaviour as described in the ACPI "
-			"specification.");
-	} else
-		fwts_passed(fw, "%s returned no values as expected.", name);
-}
-
-/*
- *  method_test_passed_failed_return
- *	check if 0 or 1 (false/true) integer is returned
- */
-static void method_test_passed_failed_return(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT *obj,
-	void *private)
-{
-	char *method = (char *)private;
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK) {
-		uint32_t val = (uint32_t)obj->Integer.Value;
-		if ((val == 0) || (val == 1))
-			method_passed_sane_uint64(fw, name, obj->Integer.Value);
-		else {
-			fwts_failed(fw, LOG_LEVEL_MEDIUM,
-				"MethodReturnZeroOrOne",
-				"%s returned 0x%8.8" PRIx32 ", should return 1 "
-				"(success) or 0 (failed).", method, val);
-			fwts_advice(fw,
-				"Method %s should be returning the correct "
-				"1/0 success/failed return values. "
-				"Unexpected behaviour may occur becauses of "
-				"this error, the AML code does not conform to "
-				"the ACPI specification and should be fixed.",
-				method);
-		}
-	}
-}
-
-/*
- *  method_test_polling_return
- *	check if a returned polling time is valid
- */
-static void method_test_polling_return(
-	fwts_framework *fw,
-	char *name,
-	ACPI_BUFFER *buf,
-	ACPI_OBJECT *obj,
-	void *private)
-{
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK) {
-		char *method = (char *)private;
-		if (obj->Integer.Value < 36000) {
-			fwts_passed(fw,
-				"%s correctly returned sane looking value "
-				"%f seconds", method,
-				(float)obj->Integer.Value / 10.0);
-		} else {
-			fwts_failed(fw, LOG_LEVEL_MEDIUM,
-				"MethodPollTimeTooLong",
-				"%s returned a value %f seconds > (1 hour) "
-				"which is probably incorrect.",
-				method, (float)obj->Integer.Value / 10.0);
-			fwts_advice(fw,
-				"The method is returning a polling interval "
-				"which is very long and hence most probably "
-				"incorrect.");
-		}
-	}
-}
-
-
-/*
- *  Common types that can be returned. This is not a complete
- *  list but it does cover the types we expect to return from
- *  an ACPI evaluation.
- */
-static const char *method_type_name(const ACPI_OBJECT_TYPE type)
-{
-	switch (type) {
-	case ACPI_TYPE_INTEGER:
-		return "integer";
-	case ACPI_TYPE_STRING:
-		return "string";
-	case ACPI_TYPE_BUFFER:
-		return "buffer";
-	case ACPI_TYPE_PACKAGE:
-		return "package";
-	case ACPI_TYPE_BUFFER_FIELD:
-		return "buffer_field";
-	case ACPI_TYPE_LOCAL_REFERENCE:
-		return "reference";
-	case ACPI_TYPE_INTBUF:
-		return "integer or buffer";
-	default:
-		return "unknown";
-	}
-}
-
-/*
- *  method_package_elements_all_type()
- *	sanity check fields in a package that all have
- *	the same type
- */
-static int method_package_elements_all_type(
-	fwts_framework *fw,
-	const char *name,
-	const char *objname,
-	const ACPI_OBJECT *obj,
-	const ACPI_OBJECT_TYPE type)
-{
-	uint32_t i;
-	bool failed = false;
-	char tmp[128];
-
-	for (i = 0; i < obj->Package.Count; i++) {
-		if (!method_type_matches(obj->Package.Elements[i].Type, type)) {
-			snprintf(tmp, sizeof(tmp), "Method%sElementType", objname);
-			fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
-				"%s package element %" PRIu32 " was not the expected "
-				"type '%s', was instead type '%s'.",
-				name, i,
-				method_type_name(type),
-				method_type_name(obj->Package.Elements[i].Type));
-			failed = true;
-		}
-	}
-
-	return failed ? FWTS_ERROR: FWTS_OK;
-}
-
-typedef struct {
-	ACPI_OBJECT_TYPE type;	/* Type */
-	const char 	*name;	/* Field name */
-} fwts_package_element;
-
-/*
- *  method_package_elements_type()
- *	sanity check fields in a package that all have
- *	the same type
- */
-static int method_package_elements_type(
-	fwts_framework *fw,
-	const char *name,
-	const char *objname,
-	const ACPI_OBJECT *obj,
-	const fwts_package_element *info,
-	const uint32_t count)
-{
-	uint32_t i;
-	bool failed = false;
-	char tmp[128];
-
-	if (obj->Package.Count != count)
-		return FWTS_ERROR;
-
-	for (i = 0; i < obj->Package.Count; i++) {
-		if (!method_type_matches(obj->Package.Elements[i].Type, info[i].type)) {
-			snprintf(tmp, sizeof(tmp), "Method%sElementType", objname);
-			fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
-				"%s package element %" PRIu32 " (%s) was not the expected "
-				"type '%s', was instead type '%s'.",
-				name, i, info[i].name,
-				method_type_name(info[i].type),
-				method_type_name(obj->Package.Elements[i].Type));
-			failed = true;
-		}
-	}
-
-	return failed ? FWTS_ERROR: FWTS_OK;
-}
-
 /****************************************************************************/
 
 /*
@@ -941,7 +539,7 @@ static void method_test_AEI_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
 	status = AcpiBufferToResource(obj->Buffer.Pointer, obj->Buffer.Length, &resource);
@@ -970,7 +568,7 @@ static void method_test_AEI_return(
 	} while (resource->Type != ACPI_RESOURCE_TYPE_END_TAG);
 
 	if (!failed)
-		method_passed_sane(fw, name, "buffer");
+		fwts_method_passed_sane(fw, name, "buffer");
 }
 
 static int method_test_AEI(fwts_framework *fw)
@@ -1022,7 +620,7 @@ static void check_evt_event (
 		arg_list.Count = 1;
 		arg_list.Pointer = arg;
 
-		method_evaluate_found_method(fw, path, method_test_NULL_return, NULL, &arg_list);
+		method_evaluate_found_method(fw, path, fwts_method_test_NULL_return, NULL, &arg_list);
 	}
 }
 
@@ -1038,7 +636,7 @@ static void method_test_EVT_return (
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
 	status = AcpiBufferToResource(obj->Buffer.Pointer, obj->Buffer.Length, &resource);
@@ -1093,10 +691,10 @@ static void method_test_DLM_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_DLM", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_DLM", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Could be one or more packages */
@@ -1134,7 +732,7 @@ static void method_test_DLM_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_DLM(fwts_framework *fw)
@@ -1155,7 +753,7 @@ static int method_test_PIC(fwts_framework *fw)
 	for (i = 0; i < 3; i++) {
 		arg[0].Integer.Value = i;
 		ret = method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_PIC", arg, 1, method_test_NULL_return, NULL);
+			"_PIC", arg, 1, fwts_method_test_NULL_return, NULL);
 
 		if (ret != FWTS_OK)
 			break;
@@ -1170,7 +768,7 @@ static int method_test_PIC(fwts_framework *fw)
 static int method_test_DDN(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DDN", NULL, 0, method_test_string_return, NULL);
+		"_DDN", NULL, 0, fwts_method_test_string_return, NULL);
 }
 
 static bool method_valid_HID_string(char *str)
@@ -1233,7 +831,7 @@ static void method_test_HID_return(
 	FWTS_UNUSED(private);
 
 	if (obj == NULL) {
-		method_failed_null_object(fw, name, "a buffer or integer");
+		fwts_method_failed_null_object(fw, name, "a buffer or integer");
 		return;
 	}
 
@@ -1347,7 +945,7 @@ static void method_test_CID_return(
 	FWTS_UNUSED(private);
 
 	if (obj == NULL) {
-		method_failed_null_object(fw, name, "a buffer or integer");
+		fwts_method_failed_null_object(fw, name, "a buffer or integer");
 		return;
 	}
 
@@ -1357,7 +955,7 @@ static void method_test_CID_return(
 		method_valid_CID_Type(fw, name, obj);
 		break;
 	case ACPI_TYPE_PACKAGE:
-		if (method_package_count_min(fw, name, "_CID", obj, 1) != FWTS_OK)
+		if (fwts_method_package_count_min(fw, name, "_CID", obj, 1) != FWTS_OK)
 			return;
 
 		for (i = 0; i < obj->Package.Count; i++){
@@ -1390,10 +988,10 @@ static void method_test_MLS_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_MLS", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_MLS", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Could be one or more packages */
@@ -1430,7 +1028,7 @@ static void method_test_MLS_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_MLS(fwts_framework *fw)
@@ -1441,7 +1039,7 @@ static int method_test_MLS(fwts_framework *fw)
 static int method_test_HRV(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_HRV", NULL, 0, method_test_integer_return, NULL);
+		"_HRV", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_STR(fwts_framework *fw)
@@ -1459,14 +1057,14 @@ static void method_test_PLD_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* All elements in the package must be buffers */
-	if (method_package_elements_all_type(fw, name, "_PLD", obj, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PLD", obj, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PLD(fwts_framework *fw)
@@ -1486,7 +1084,7 @@ static void method_test_SUB_return(
 	FWTS_UNUSED(private);
 
 	if (obj == NULL) {
-		method_failed_null_object(fw, name, "a buffer or integer");
+		fwts_method_failed_null_object(fw, name, "a buffer or integer");
 		return;
 	}
 
@@ -1525,7 +1123,7 @@ static int method_test_SUB(fwts_framework *fw)
 static int method_test_SUN(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_SUN", NULL, 0, method_test_integer_return, NULL);
+		"_SUN", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_UID_return(
@@ -1539,7 +1137,7 @@ static void method_test_UID_return(
 	FWTS_UNUSED(private);
 
 	if (obj == NULL) {
-		method_failed_null_object(fw, name, "a buffer or integer");
+		fwts_method_failed_null_object(fw, name, "a buffer or integer");
 		return;
 	}
 
@@ -1555,7 +1153,7 @@ static void method_test_UID_return(
 				"%s returned a NULL string.", name);
 		break;
 	case ACPI_TYPE_INTEGER:
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 		break;
 	default:
 		fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_UIDBadReturnType",
@@ -2226,7 +1824,7 @@ static void method_test_CRS_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 	if (obj->Buffer.Pointer == NULL) {
 		snprintf(tmp, sizeof(tmp), "Method%sNullBuffer", objname);
@@ -2277,10 +1875,10 @@ static void method_test_PRT_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PRT", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PRT", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	for (i = 0; i < obj->Package.Count; i++) {
@@ -2343,7 +1941,7 @@ static void method_test_PRT_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PRT(fwts_framework *fw)
@@ -2372,11 +1970,11 @@ static void method_test_FIX_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* All elements in the package must be integers */
-	if (method_package_elements_all_type(fw, name, "_FIX", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_FIX", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	/* And they need to be valid IDs */
@@ -2396,7 +1994,7 @@ static void method_test_FIX_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_FIX(fwts_framework *fw)
@@ -2419,7 +2017,7 @@ static void method_test_DSD_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Must be an even number of items in package */
@@ -2432,23 +2030,23 @@ static void method_test_DSD_return(
 	}
 	for (i = 0; i < obj->Package.Count; i += 2) {
 		/* UUID should be a buffer */
-		if (!method_type_matches(obj->Package.Elements[i].Type, ACPI_TYPE_BUFFER)) {
+		if (!fwts_method_type_matches(obj->Package.Elements[i].Type, ACPI_TYPE_BUFFER)) {
 			fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_DSDElementBuffer",
 				"%s package element %" PRIu32 " was not the expected "
 				"type '%s', was instead type '%s'.",
 				name, i,
-				method_type_name(ACPI_TYPE_BUFFER),
-				method_type_name(obj->Package.Elements[i].Type));
+				fwts_method_type_name(ACPI_TYPE_BUFFER),
+				fwts_method_type_name(obj->Package.Elements[i].Type));
 		}
 
 		/* Data should be a package */
-		if (!method_type_matches(obj->Package.Elements[i + 1].Type, ACPI_TYPE_PACKAGE)) {
+		if (!fwts_method_type_matches(obj->Package.Elements[i + 1].Type, ACPI_TYPE_PACKAGE)) {
 			fwts_failed(fw, LOG_LEVEL_MEDIUM, "Method_DSDElementPackage",
 				"%s package element %" PRIu32 " was not the expected "
 				"type '%s', was instead type '%s'.",
 				name, i + 1,
-				method_type_name(ACPI_TYPE_PACKAGE),
-				method_type_name(obj->Package.Elements[i + 1].Type));
+				fwts_method_type_name(ACPI_TYPE_PACKAGE),
+				fwts_method_type_name(obj->Package.Elements[i + 1].Type));
 		}
 	}
 }
@@ -2462,13 +2060,13 @@ static int method_test_DSD(fwts_framework *fw)
 static int method_test_DIS(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DIS", NULL, 0, method_test_NULL_return, NULL);
+		"_DIS", NULL, 0, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_GSB(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_GSB", NULL, 0, method_test_integer_return, NULL);
+		"_GSB", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_HPP_return(
@@ -2480,18 +2078,18 @@ static void method_test_HPP_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Must be 4 elements in the package */
-	if (method_package_count_equal(fw, name, "_HPP", obj, 4) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_HPP", obj, 4) != FWTS_OK)
 		return;
 
 	/* All 4 elements in the package must be integers */
-	if (method_package_elements_all_type(fw, name, "_HPP", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_HPP", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_HPP(fwts_framework *fw)
@@ -2503,7 +2101,7 @@ static int method_test_HPP(fwts_framework *fw)
 static int method_test_PXM(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PXM", NULL, 0, method_test_integer_return, NULL);
+		"_PXM", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /* Section 6.2.17 _CCA */
@@ -2511,10 +2109,10 @@ static int method_test_CCA(fwts_framework *fw)
 {
 	if (fw->flags & FWTS_FLAG_TEST_SBBR)
 		return method_evaluate_method(fw, METHOD_MANDATORY,
-			"_CCA", NULL, 0, method_test_integer_return, NULL);
+			"_CCA", NULL, 0, fwts_method_test_integer_return, NULL);
 	else
 		return method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_CCA", NULL, 0, method_test_integer_return, NULL);
+			"_CCA", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -2529,14 +2127,14 @@ static void method_test_EDL_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_EDL",
+	if (fwts_method_package_elements_all_type(fw, name, "_EDL",
 		obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_EDL(fwts_framework *fw)
@@ -2548,7 +2146,7 @@ static int method_test_EDL(fwts_framework *fw)
 static int method_test_EJD(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_EJD", NULL, 0, method_test_string_return, NULL);
+		"_EJD", NULL, 0, fwts_method_test_string_return, NULL);
 }
 
 #define method_test_EJx(name)					\
@@ -2560,7 +2158,7 @@ static int method_test ## name(fwts_framework *fw)		\
 	arg[0].Integer.Value = 1;				\
 								\
 	return method_evaluate_method(fw, METHOD_OPTIONAL,	\
-		# name, arg, 1, method_test_NULL_return, # name); \
+		# name, arg, 1, fwts_method_test_NULL_return, # name); \
 }
 
 method_test_EJx(_EJ0)
@@ -2577,13 +2175,13 @@ static int method_test_LCK(fwts_framework *fw)
 	arg[0].Integer.Value = 1;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_LCK", arg, 1, method_test_NULL_return, NULL);
+		"_LCK", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_RMV(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL, "_RMV",
-		NULL, 0, method_test_passed_failed_return, "_RMV");
+		NULL, 0, fwts_method_test_passed_failed_return, "_RMV");
 }
 
 static void method_test_STA_return(
@@ -2597,7 +2195,7 @@ static void method_test_STA_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if ((obj->Integer.Value & 3) == 2) {
@@ -2616,7 +2214,7 @@ static void method_test_STA_return(
 	}
 
 	if (!failed)
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_STA(fwts_framework *fw)
@@ -2636,13 +2234,13 @@ static int method_test_STA(fwts_framework *fw)
 static int method_test_BBN(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL, "_BBN",
-		NULL, 0, method_test_integer_return, "_BBN");
+		NULL, 0, fwts_method_test_integer_return, "_BBN");
 }
 
 static int method_test_BDN(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_MOBILE, "_BDN",
-		NULL, 0, method_test_integer_return, "_BDN");
+		NULL, 0, fwts_method_test_integer_return, "_BDN");
 }
 
 static void method_test_DEP_return(
@@ -2654,13 +2252,13 @@ static void method_test_DEP_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_DEP", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_DEP", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_DEP(fwts_framework *fw)
@@ -2684,13 +2282,13 @@ static void method_test_LSI_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_LSI", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_LSI", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_LSI(fwts_framework *fw)
@@ -2708,7 +2306,7 @@ static int method_test_DCK(fwts_framework *fw)
 		arg[0].Type = ACPI_TYPE_INTEGER;
 		arg[0].Integer.Value = i;
 		if (method_evaluate_method(fw, METHOD_MOBILE, "_DCK", arg,
-			1, method_test_passed_failed_return, "_DCK") != FWTS_OK)
+			1, fwts_method_test_passed_failed_return, "_DCK") != FWTS_OK)
 			break;
 		fwts_log_nl(fw);
 	}
@@ -2718,7 +2316,7 @@ static int method_test_DCK(fwts_framework *fw)
 static int method_test_INI(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_INI", NULL, 0, method_test_NULL_return, NULL);
+		"_INI", NULL, 0, fwts_method_test_NULL_return, NULL);
 }
 
 static void method_test_SEG_return(
@@ -2730,7 +2328,7 @@ static void method_test_SEG_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if ((obj->Integer.Value & 0xffff0000)) {
@@ -2741,7 +2339,7 @@ static void method_test_SEG_return(
 			"should in fact be zero.",
 			name, (uint64_t)obj->Integer.Value);
 	} else
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_SEG(fwts_framework *fw)
@@ -2790,13 +2388,13 @@ static int method_test_GLK(fwts_framework *fw)
 static int method_test_ON_(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_ON_", NULL, 0, method_test_NULL_return, NULL);
+		"_ON_", NULL, 0, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_OFF(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_OFF", NULL, 0, method_test_NULL_return, NULL);
+		"_OFF", NULL, 0, fwts_method_test_NULL_return, NULL);
 }
 
 
@@ -2815,7 +2413,7 @@ static int method_test_DSW(fwts_framework *fw)
 	arg[2].Integer.Value = 3;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL, "_DSW",
-		arg, 3, method_test_NULL_return, NULL);
+		arg, 3, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_PSx(fwts_framework *fw, char *name)
@@ -2833,7 +2431,7 @@ static int method_test_PSx(fwts_framework *fw, char *name)
 			"it was not found.", name);
 	}
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		name, NULL, 0, method_test_NULL_return, name);
+		name, NULL, 0, fwts_method_test_NULL_return, name);
 }
 
 static void method_test_PRW_return(
@@ -2848,10 +2446,10 @@ static void method_test_PRW_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_min(fw, name, "_PRW", obj, 2) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_PRW", obj, 2) != FWTS_OK)
 		return;
 
 	if (obj->Package.Elements[0].Type != ACPI_TYPE_INTEGER &&
@@ -2910,7 +2508,7 @@ static void method_test_PRW_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PRW(fwts_framework *fw)
@@ -2946,7 +2544,7 @@ static int method_test_PS0(fwts_framework *fw)
 		}
 	}
 	return method_evaluate_method(fw, METHOD_OPTIONAL, "_PS0",
-		 NULL, 0, method_test_NULL_return, "_PS0");
+		 NULL, 0, fwts_method_test_NULL_return, "_PS0");
 }
 
 static int method_test_PS1(fwts_framework *fw)
@@ -2967,7 +2565,7 @@ static int method_test_PS3(fwts_framework *fw)
 static int method_test_PSC(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PSC", NULL, 0, method_test_integer_return, NULL);
+		"_PSC", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_PSE(fwts_framework *fw)
@@ -2978,7 +2576,7 @@ static int method_test_PSE(fwts_framework *fw)
 	arg[0].Integer.Value = 1;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PSE", arg, 1, method_test_NULL_return, NULL);
+		"_PSE", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static void method_test_power_resources_return(
@@ -2992,14 +2590,14 @@ static void method_test_power_resources_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, objname,
+	if (fwts_method_package_elements_all_type(fw, name, objname,
 		obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 #define method_test_POWER(name)						\
@@ -3023,14 +2621,14 @@ static int method_test_PSW(fwts_framework *fw)
 	arg[0].Integer.Value = 1;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PSW", arg, 1, method_test_NULL_return, NULL);
+		"_PSW", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 #define method_test_SxD(name)						\
 static int method_test ## name(fwts_framework *fw)			\
 {									\
 	return method_evaluate_method(fw, METHOD_OPTIONAL,		\
-		# name, NULL, 0, method_test_integer_return, # name);	\
+		# name, NULL, 0, fwts_method_test_integer_return, # name);	\
 }
 
 method_test_SxD(_S1D)
@@ -3042,7 +2640,7 @@ method_test_SxD(_S4D)
 static int method_test ## name(fwts_framework *fw)			\
 {									\
 	return method_evaluate_method(fw, METHOD_OPTIONAL,		\
-		# name, NULL, 0, method_test_integer_return, # name);	\
+		# name, NULL, 0, fwts_method_test_integer_return, # name);	\
 }
 
 method_test_SxW(_S0W)
@@ -3054,7 +2652,7 @@ method_test_SxW(_S4W)
 static int method_test_RST(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_RST", NULL, 0, method_test_NULL_return, NULL);
+		"_RST", NULL, 0, fwts_method_test_NULL_return, NULL);
 }
 
 static void method_test_PRR_return(
@@ -3066,10 +2664,10 @@ static void method_test_PRR_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_PRR", obj, 1) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_PRR", obj, 1) != FWTS_OK)
 		return;
 
 	if (obj->Package.Elements[0].Type != ACPI_TYPE_LOCAL_REFERENCE) {
@@ -3080,7 +2678,7 @@ static void method_test_PRR_return(
 		return;
 	}
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PRR(fwts_framework *fw)
@@ -3092,7 +2690,7 @@ static int method_test_PRR(fwts_framework *fw)
 static int method_test_IRC(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_IRC", NULL, 0, method_test_NULL_return, NULL);
+		"_IRC", NULL, 0, fwts_method_test_NULL_return, NULL);
 }
 
 /*
@@ -3109,7 +2707,7 @@ static void method_test_Sx__return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/*
@@ -3185,7 +2783,7 @@ static void method_test_Sx__return(
 		(uint64_t)obj->Package.Elements[1].Integer.Value);
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 #define method_test_Sx_(name)						\
@@ -3205,7 +2803,7 @@ method_test_Sx_(_S5_)
 static int method_test_SWS(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_SWS", NULL, 0, method_test_integer_return, NULL);
+		"_SWS", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -3292,33 +2890,33 @@ static void method_test_CPC_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	revision = obj->Package.Elements[1].Integer.Value;
 
 	if (revision == 1) {		// acpi 5.0
 		/* Something is really wrong if we don't have any elements in _CPC */
-		if (method_package_count_equal(fw, name, "_CPC", obj, 17) != FWTS_OK)
+		if (fwts_method_package_count_equal(fw, name, "_CPC", obj, 17) != FWTS_OK)
 			return;
 
 		/* For now, just check types */
-		if (method_package_elements_type(fw, name, "_CPC", obj, elementsv1, 17) != FWTS_OK)
+		if (fwts_method_package_elements_type(fw, name, "_CPC", obj, elementsv1, 17) != FWTS_OK)
 			return;
 	} else if (revision == 2) {	// acpi 5.1 ~ acpi 6.1a
 		/* Something is really wrong if we don't have any elements in _CPC */
-		if (method_package_count_equal(fw, name, "_CPC", obj, 21) != FWTS_OK)
+		if (fwts_method_package_count_equal(fw, name, "_CPC", obj, 21) != FWTS_OK)
 			return;
 
 		/* For now, just check types */
-		if (method_package_elements_type(fw, name, "_CPC", obj, elementsv2, 21) != FWTS_OK)
+		if (fwts_method_package_elements_type(fw, name, "_CPC", obj, elementsv2, 21) != FWTS_OK)
 			return;
 	} else if (revision == 3) {	// acpi 6.2 and later
-		if (method_package_count_equal(fw, name, "_CPC", obj, 23) != FWTS_OK)
+		if (fwts_method_package_count_equal(fw, name, "_CPC", obj, 23) != FWTS_OK)
 			return;
 
 		/* For now, just check types */
-		if (method_package_elements_type(fw, name, "_CPC", obj, elementsv3, 23) != FWTS_OK)
+		if (fwts_method_package_elements_type(fw, name, "_CPC", obj, elementsv3, 23) != FWTS_OK)
 			return;
 	} else {
 		fwts_failed(fw, LOG_LEVEL_HIGH,
@@ -3329,7 +2927,7 @@ static void method_test_CPC_return(
 		return;
 	}
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_CPC(fwts_framework *fw)
@@ -3350,11 +2948,11 @@ static void method_test_CSD_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Something is really wrong if we don't have any elements in _CSD */
-	if (method_package_count_min(fw, name, "_CSD", obj, 1) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_CSD", obj, 1) != FWTS_OK)
 		return;
 
 	/* Could be one or more packages */
@@ -3363,7 +2961,7 @@ static void method_test_CSD_return(
 		uint32_t j;
 		bool elements_ok = true;
 
-		if (method_package_elements_all_type(fw, name, "_CSD",
+		if (fwts_method_package_elements_all_type(fw, name, "_CSD",
 			obj, ACPI_TYPE_PACKAGE) != FWTS_OK) {
 			failed = true;
 			continue;	/* Skip processing sub-package */
@@ -3440,7 +3038,7 @@ static void method_test_CSD_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_CSD(fwts_framework *fw)
@@ -3478,11 +3076,11 @@ static void method_test_CST_return(
 	if (obj == NULL)
 		return;
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* _CST has at least two elements */
-	if (method_package_count_min(fw, name, "_CST", obj, 2) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_CST", obj, 2) != FWTS_OK)
 		return;
 
 	/* Element 1 must be an integer */
@@ -3607,7 +3205,7 @@ static void method_test_CST_return(
 	free(cst_elements_ok);
 
 	if (!failed)
-		method_passed_sane(fw, name, "values");
+		fwts_method_passed_sane(fw, name, "values");
 }
 
 static int method_test_CST(fwts_framework *fw)
@@ -3625,18 +3223,18 @@ static void method_test_PCT_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Something is really wrong if we don't have any elements in _PCT */
-	if (method_package_count_min(fw, name, "_PCT", obj, 2) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_PCT", obj, 2) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PCT",
+	if (fwts_method_package_elements_all_type(fw, name, "_PCT",
 		obj, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PCT(fwts_framework *fw)
@@ -3662,11 +3260,11 @@ static void method_test_PSS_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Something is really wrong if we don't have any elements in _PSS */
-	if (method_package_count_min(fw, name, "_PSS", obj, 1) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_PSS", obj, 1) != FWTS_OK)
 		return;
 
 	element_ok = calloc(obj->Package.Count, sizeof(bool));
@@ -3806,7 +3404,7 @@ static void method_test_PSS_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PSS(fwts_framework *fw)
@@ -3817,13 +3415,13 @@ static int method_test_PSS(fwts_framework *fw)
 static int method_test_PPC(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PPC", NULL, 0, method_test_integer_return, NULL);
+		"_PPC", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_PPE(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PPE", NULL, 0, method_test_integer_return, NULL);
+		"_PPE", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_PSD_return(
@@ -3838,13 +3436,13 @@ static void method_test_PSD_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_PSD", obj, 1) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_PSD", obj, 1) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PSD", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PSD", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Could be one or more packages */
@@ -3884,7 +3482,7 @@ static void method_test_PSD_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PSD(fwts_framework *fw)
@@ -3896,7 +3494,7 @@ static int method_test_PSD(fwts_framework *fw)
 static int method_test_PDL(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PDL", NULL, 0, method_test_integer_return, NULL);
+		"_PDL", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 
@@ -3912,13 +3510,13 @@ static void method_test_PTC_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PTC", obj, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PTC", obj, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_PTC", obj, 2) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_PTC", obj, 2) != FWTS_OK)
 		return;
 
 	for (i = 0; i < obj->Package.Count; i++) {
@@ -3945,7 +3543,7 @@ static void method_test_PTC_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PTC(fwts_framework *fw)
@@ -3957,13 +3555,13 @@ static int method_test_PTC(fwts_framework *fw)
 static int method_test_TDL(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TDL", NULL, 0, method_test_integer_return, NULL);
+		"_TDL", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_TPC(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TPC", NULL, 0, method_test_integer_return, NULL);
+		"_TPC", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_TSD_return(
@@ -3978,10 +3576,10 @@ static void method_test_TSD_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_TSD", obj, 1) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_TSD", obj, 1) != FWTS_OK)
 		return;
 
 	/* Could be one or more packages */
@@ -4071,7 +3669,7 @@ static void method_test_TSD_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_TSD(fwts_framework *fw)
@@ -4094,11 +3692,11 @@ static void method_test_TSS_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Something is really wrong if we don't have any elements in _TSS */
-	if (method_package_count_min(fw, name, "_TSS", obj, 1) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_TSS", obj, 1) != FWTS_OK)
 		return;
 
 	tss_elements_ok = calloc(obj->Package.Count, sizeof(bool));
@@ -4199,7 +3797,7 @@ static void method_test_TSS_return(
 	free(tss_elements_ok);
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_TSS(fwts_framework *fw)
@@ -4224,10 +3822,10 @@ static void method_test_LPI_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_min(fw, name, "_LPI", obj, 3) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_LPI", obj, 3) != FWTS_OK)
 		return;
 
 	/* first 3 elements are integers, and rests are packages */
@@ -4323,7 +3921,7 @@ static void method_test_LPI_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_LPI(fwts_framework *fw)
@@ -4344,7 +3942,7 @@ static void method_test_RDI_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* First element is Revision */
@@ -4382,7 +3980,7 @@ static void method_test_RDI_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_RDI(fwts_framework *fw)
@@ -4409,13 +4007,13 @@ static void method_test_PUR_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_PUR", obj, 2) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_PUR", obj, 2) != FWTS_OK)
 		return;
 
-	if (method_package_elements_type(fw, name, "_PUR", obj, elements, 2) != FWTS_OK)
+	if (fwts_method_package_elements_type(fw, name, "_PUR", obj, elements, 2) != FWTS_OK)
 		return;
 
 	/* RevisionID */
@@ -4428,7 +4026,7 @@ static void method_test_PUR_return(
 		return;
 	}
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PUR(fwts_framework *fw)
@@ -4450,7 +4048,7 @@ static int method_test_SST(fwts_framework *fw)
 	for (i = 0; i <= 4; i++) {
 		arg[0].Integer.Value = i;
 		ret = method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_SST", arg, 1, method_test_NULL_return, NULL);
+			"_SST", arg, 1, fwts_method_test_NULL_return, NULL);
 
 		if (ret == FWTS_NOT_EXIST && (fw->flags & FWTS_FLAG_TEST_SBBR)) {
 			fwts_warning(fw, "_SST method not found. This should be treated as error "
@@ -4471,7 +4069,7 @@ static int method_test_MSG(fwts_framework *fw)
 	arg[0].Integer.Value = 0;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_MSG", arg, 1, method_test_NULL_return, NULL);
+		"_MSG", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 /*
@@ -4494,7 +4092,7 @@ static void method_test_ALR_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Could be one or more sub-packages */
@@ -4536,7 +4134,7 @@ static void method_test_ALR_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_ALR(fwts_framework *fw)
@@ -4548,7 +4146,7 @@ static int method_test_ALR(fwts_framework *fw)
 static int method_test_ALP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_ALP", NULL, 0, method_test_polling_return, "_ALP");
+		"_ALP", NULL, 0, fwts_method_test_polling_return, "_ALP");
 }
 
 
@@ -4564,8 +4162,8 @@ static void method_test_LID_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_LID(fwts_framework *fw)
@@ -4588,7 +4186,7 @@ static void method_test_GTF_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
 	if (obj->Buffer.Length % 7)
@@ -4596,7 +4194,7 @@ static void method_test_GTF_return(
 			"%s should return a buffer with size of multiple of 7.",
 			name);
 	else
-		method_passed_sane(fw, name, "buffer");
+		fwts_method_passed_sane(fw, name, "buffer");
 }
 
 static int method_test_GTF(fwts_framework *fw)
@@ -4614,7 +4212,7 @@ static void method_test_GTM_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
 	if (obj->Buffer.Length != (5 * sizeof(uint32_t)))
@@ -4622,7 +4220,7 @@ static void method_test_GTM_return(
 			"%s should return a buffer with size of 20.",
 			name);
 	else
-		method_passed_sane(fw, name, "buffer");
+		fwts_method_passed_sane(fw, name, "buffer");
 }
 
 static int method_test_GTM(fwts_framework *fw)
@@ -4655,17 +4253,17 @@ static void method_test_MBM_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_MBM", obj, 8) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_MBM", obj, 8) != FWTS_OK)
 		return;
 
 	/* For now, just check types */
-	if (method_package_elements_type(fw, name, "_MBM", obj, elements, 8) != FWTS_OK)
+	if (fwts_method_package_elements_type(fw, name, "_MBM", obj, elements, 8) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_MBM(fwts_framework *fw)
@@ -4689,13 +4287,13 @@ static void method_test_UPC_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_UPC", obj, 4) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_UPC", obj, 4) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_UPC", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_UPC", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	connector_type = obj->Package.Elements[1].Integer.Value;
@@ -4714,7 +4312,7 @@ static void method_test_UPC_return(
 		}
 	}
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_UPC(fwts_framework *fw)
@@ -4730,13 +4328,13 @@ static int method_test_UPC(fwts_framework *fw)
 static int method_test_UPD(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_UPD", NULL, 0, method_test_integer_return, NULL);
+		"_UPD", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_UPP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_UPP", NULL, 0, method_test_integer_return, NULL);
+		"_UPP", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -4751,7 +4349,7 @@ static void method_test_GCP_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (obj->Integer.Value & ~0x1ff)
@@ -4762,7 +4360,7 @@ static void method_test_GCP_return(
 			"to be set.",
 			name, (uint64_t)obj->Integer.Value);
 	else
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_GCP(fwts_framework *fw)
@@ -4780,7 +4378,7 @@ static void method_test_GRT_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) != FWTS_OK)
 		return;
 
 	if (obj->Buffer.Length != 16) {
@@ -4796,7 +4394,7 @@ static void method_test_GRT_return(
 	 * Should sanity check this, but we can't read the
 	 * the data in this emulated mode, so ignore
 	 */
-	method_passed_sane(fw, name, "buffer");
+	fwts_method_passed_sane(fw, name, "buffer");
 }
 
 static int method_test_GRT(fwts_framework *fw)
@@ -4814,7 +4412,7 @@ static void method_test_GWS_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (obj->Integer.Value & ~0x3)
@@ -4825,7 +4423,7 @@ static void method_test_GWS_return(
 			"to be set.",
 			name, (uint64_t)obj->Integer.Value);
 	else
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_GWS(fwts_framework *fw)
@@ -4848,7 +4446,7 @@ static void method_test_CWS_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (obj->Integer.Value != 0 && obj->Integer.Value != 1)
@@ -4857,7 +4455,7 @@ static void method_test_CWS_return(
 			"%s returned %" PRIu64 ", should be 0 or 1.",
 			name, (uint64_t)obj->Integer.Value);
 	else
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_CWS(fwts_framework *fw)
@@ -4888,7 +4486,7 @@ static int method_test_STP(fwts_framework *fw)
 	arg[1].Integer.Value = 0;	/* wake up instantly */
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_STP", arg, 2, method_test_passed_failed_return, "_STP");
+		"_STP", arg, 2, fwts_method_test_passed_failed_return, "_STP");
 }
 
 static int method_test_STV(fwts_framework *fw)
@@ -4901,7 +4499,7 @@ static int method_test_STV(fwts_framework *fw)
 	arg[1].Integer.Value = 100;	/* timer value */
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_STV", arg, 2, method_test_passed_failed_return, "_STV");
+		"_STV", arg, 2, fwts_method_test_passed_failed_return, "_STV");
 }
 
 static int method_test_TIP(fwts_framework *fw)
@@ -4912,7 +4510,7 @@ static int method_test_TIP(fwts_framework *fw)
 	arg[0].Integer.Value = 1;	/* DC timer */
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TIP", arg, 1, method_test_integer_return, NULL);
+		"_TIP", arg, 1, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_TIV(fwts_framework *fw)
@@ -4923,7 +4521,7 @@ static int method_test_TIV(fwts_framework *fw)
 	arg[0].Integer.Value = 1;	/* DC timer */
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TIV", arg, 1, method_test_integer_return, NULL);
+		"_TIV", arg, 1, fwts_method_test_integer_return, NULL);
 }
 
 
@@ -4947,7 +4545,7 @@ static void method_test_SBS_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	switch (obj->Integer.Value) {
@@ -4991,7 +4589,7 @@ static int method_test_BCT(fwts_framework *fw)
 	 * so anything is valid as long as it is an integer
 	 */
 	return method_evaluate_method(fw, METHOD_MOBILE,
-		"_BCT", arg, 1, method_test_integer_return, NULL);
+		"_BCT", arg, 1, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_BIF_return(
@@ -5021,13 +4619,13 @@ static void method_test_BIF_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_BIF", obj, 13) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_BIF", obj, 13) != FWTS_OK)
 		return;
 
-	if (method_package_elements_type(fw, name, "_BIF", obj, elements, 13) != FWTS_OK)
+	if (fwts_method_package_elements_type(fw, name, "_BIF", obj, elements, 13) != FWTS_OK)
 		return;
 
 	/* Sanity check each field */
@@ -5115,7 +4713,7 @@ static void method_test_BIF_return(
 			"is problematic.  This is a bug an needs to "
 			"be fixed.", name);
 	else
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_BIF(fwts_framework *fw)
@@ -5158,13 +4756,13 @@ static void method_test_BIX_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_BIX", obj, 20) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_BIX", obj, 20) != FWTS_OK)
 		return;
 
-	if (method_package_elements_type(fw, name, "_BIX", obj, elements, 20) != FWTS_OK)
+	if (fwts_method_package_elements_type(fw, name, "_BIX", obj, elements, 20) != FWTS_OK)
 		return;
 
 	/* Sanity check each field */
@@ -5267,7 +4865,7 @@ static void method_test_BIX_return(
 			"is problematic.  This is a bug an needs to "
 			"be fixed.", name);
 	else
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_BIX(fwts_framework *fw)
@@ -5283,7 +4881,7 @@ static int method_test_BMA(fwts_framework *fw)
 	arg[0].Integer.Value = 1;
 
 	return method_evaluate_method(fw, METHOD_MOBILE,
-		"_BMA", arg, 1, method_test_integer_return, NULL);
+		"_BMA", arg, 1, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_BMS(fwts_framework *fw)
@@ -5293,7 +4891,7 @@ static int method_test_BMS(fwts_framework *fw)
 	arg[0].Integer.Value = 1;
 
 	return method_evaluate_method(fw, METHOD_MOBILE,
-		"_BMS", arg, 1, method_test_integer_return, NULL);
+		"_BMS", arg, 1, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_BST_return(
@@ -5307,13 +4905,13 @@ static void method_test_BST_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_BST", obj, 4) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_BST", obj, 4) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_BST", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_BST", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	/* Sanity check each field */
@@ -5347,7 +4945,7 @@ static void method_test_BST_return(
 			"is problematic.  This is a bug an needs to "
 			"be fixed.", name);
 		else
-			method_passed_sane(fw, name, "package");
+			fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_BST(fwts_framework *fw)
@@ -5366,7 +4964,7 @@ static int method_test_BTP(fwts_framework *fw)
 		arg[0].Type = ACPI_TYPE_INTEGER;
 		arg[0].Integer.Value = values[i];
 		if (method_evaluate_method(fw, METHOD_MOBILE, "_BTP", arg, 1,
-			method_test_NULL_return, NULL) == FWTS_NOT_EXIST)
+			fwts_method_test_NULL_return, NULL) == FWTS_NOT_EXIST)
 			break;
 		fwts_log_nl(fw);
 	}
@@ -5385,10 +4983,10 @@ static void method_test_PCL_return(fwts_framework *fw,
 	FWTS_UNUSED(obj);
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PCL", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PCL", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
 	fwts_passed(fw,	"%s returned a sane package of %" PRIu32 " references.", name, obj->Package.Count);
@@ -5409,7 +5007,7 @@ static int method_test_BTH(fwts_framework *fw)
 	for (i = 0; i <= 100; i++) {
 		arg[0].Integer.Value = i;
 		ret = method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_BTH", arg, 1, method_test_NULL_return, NULL);
+			"_BTH", arg, 1, fwts_method_test_NULL_return, NULL);
 
 		if (ret != FWTS_OK)
 			break;
@@ -5427,7 +5025,7 @@ static int method_test_BTM(fwts_framework *fw)
 		arg[0].Type = ACPI_TYPE_INTEGER;
 		arg[0].Integer.Value = values[i];
 		if (method_evaluate_method(fw, METHOD_MOBILE, "_BTM", arg, 1,
-			method_test_NULL_return, NULL) == FWTS_NOT_EXIST)
+			fwts_method_test_NULL_return, NULL) == FWTS_NOT_EXIST)
 			break;
 		fwts_log_nl(fw);
 	}
@@ -5443,18 +5041,18 @@ static void method_test_BMD_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_BMD", obj, 5) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_BMD", obj, 5) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_BMD", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_BMD", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	fwts_acpi_object_dump(fw, obj);
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_BMD(fwts_framework *fw)
@@ -5473,7 +5071,7 @@ static int method_test_BMC(fwts_framework *fw)
 		arg[0].Type = ACPI_TYPE_INTEGER;
 		arg[0].Integer.Value = values[i];
 		if (method_evaluate_method(fw, METHOD_MOBILE, "_BMC", arg, 1,
-			method_test_NULL_return, NULL) == FWTS_NOT_EXIST)
+			fwts_method_test_NULL_return, NULL) == FWTS_NOT_EXIST)
 			break;
 		fwts_log_nl(fw);
 	}
@@ -5493,13 +5091,13 @@ static void method_test_PRL_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PRL", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PRL", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PRL(fwts_framework *fw)
@@ -5517,7 +5115,7 @@ static void method_test_PSR_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (obj->Integer.Value > 2) {
@@ -5527,7 +5125,7 @@ static void method_test_PSR_return(
 			"(offline) or 1 (online)",
 			name, (uint64_t)obj->Integer.Value);
 	} else
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_PSR(fwts_framework *fw)
@@ -5554,18 +5152,18 @@ static void method_test_PIF_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_PIF", obj, 6) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_PIF", obj, 6) != FWTS_OK)
 		return;
 
-	if (method_package_elements_type(fw, name, "_PIF", obj, elements, 6) != FWTS_OK)
+	if (fwts_method_package_elements_type(fw, name, "_PIF", obj, elements, 6) != FWTS_OK)
 		return;
 
 	fwts_acpi_object_dump(fw, obj);
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PIF(fwts_framework *fw)
@@ -5581,13 +5179,13 @@ static int method_test_PIF(fwts_framework *fw)
 static int method_test_GAI(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_GAI", NULL, 0, method_test_integer_return, NULL);
+		"_GAI", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_GHL(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_GHL", NULL, 0, method_test_integer_return, NULL);
+		"_GHL", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_PMC_return(
@@ -5603,10 +5201,10 @@ static void method_test_PMC_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_PMC", obj, 14) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_PMC", obj, 14) != FWTS_OK)
 		return;
 
 	/* check element types */
@@ -5681,7 +5279,7 @@ static void method_test_PMC_return(
 	/* nothing to check for elements 9~13 */
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PMC(fwts_framework *fw)
@@ -5699,13 +5297,13 @@ static void method_test_PMD_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PMD", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PMD", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PMD(fwts_framework *fw)
@@ -5717,7 +5315,7 @@ static int method_test_PMD(fwts_framework *fw)
 static int method_test_PMM(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_PMM", NULL, 0, method_test_integer_return, NULL);
+		"_PMM", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -5732,11 +5330,11 @@ static void method_test_WPC_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (obj->Integer.Value <= 0x02 || obj->Integer.Value == 0xff)
-		method_passed_sane(fw, name, "integer");
+		fwts_method_passed_sane(fw, name, "integer");
 	else
 		fwts_failed(fw, LOG_LEVEL_HIGH,
 			"Method_WPCInvalidInteger",
@@ -5753,7 +5351,7 @@ static int method_test_WPC(fwts_framework *fw)
 static int method_test_WPP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_WPP", NULL, 0, method_test_integer_return, NULL);
+		"_WPP", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -5768,13 +5366,13 @@ static void method_test_FIF_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_FIF", obj, 4) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_FIF", obj, 4) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_FIF",
+	if (fwts_method_package_elements_all_type(fw, name, "_FIF",
 		obj, ACPI_TYPE_INTEGER) != FWTS_OK) {
 		fwts_advice(fw,
 			"%s is not returning the correct "
@@ -5788,7 +5386,7 @@ static void method_test_FIF_return(
 
 	fwts_acpi_object_dump(fw, obj);
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_FIF(fwts_framework *fw)
@@ -5809,7 +5407,7 @@ static void method_test_FPS_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	if (obj->Package.Elements[0].Type == ACPI_TYPE_INTEGER) {
@@ -5872,9 +5470,9 @@ static void method_test_FPS_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_FPS(fwts_framework *fw)
@@ -5890,7 +5488,7 @@ static int method_test_FSL(fwts_framework *fw)
 	arg[0].Integer.Value = 50;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_FSL", arg, 1, method_test_NULL_return, NULL);
+		"_FSL", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static void method_test_FST_return(
@@ -5902,13 +5500,13 @@ static void method_test_FST_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_FST", obj, 3) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_FST", obj, 3) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_FST",
+	if (fwts_method_package_elements_all_type(fw, name, "_FST",
 		obj, ACPI_TYPE_INTEGER) != FWTS_OK) {
 		fwts_advice(fw,
 			"%s is not returning the correct "
@@ -5922,7 +5520,7 @@ static void method_test_FST_return(
 
 	fwts_acpi_object_dump(fw, obj);
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_FST(fwts_framework *fw)
@@ -5944,7 +5542,7 @@ static void method_test_THERM_return(
 {
 	char *method = (char*)private;
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (fwts_acpi_region_handler_called_get()) {
@@ -5954,7 +5552,7 @@ static void method_test_THERM_return(
 		 *  should not test the value being returned. In this
 		 *  case, just pass this as a valid return type.
 		 */
-		method_passed_sane(fw, name, "return type");
+		fwts_method_passed_sane(fw, name, "return type");
 	} else {
 		/*
 		 *  The evaluation probably was a hard-coded value,
@@ -6018,7 +5616,7 @@ static void method_test_MTL_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	val = (uint64_t) obj->Integer.Value;
@@ -6030,7 +5628,7 @@ static void method_test_MTL_return(
 	}
 
 	if (!failed)
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 
 	return;
 }
@@ -6053,7 +5651,7 @@ static void method_test_ART_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	if (obj->Package.Elements[0].Type == ACPI_TYPE_INTEGER) {
@@ -6128,7 +5726,7 @@ static void method_test_ART_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_ART(fwts_framework *fw)
@@ -6146,13 +5744,13 @@ static void method_test_PSL_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_PSL", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_PSL", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_PSL(fwts_framework *fw)
@@ -6173,10 +5771,10 @@ static void method_test_TRT_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_TRT", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_TRT", obj, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	/* Could be one or more packages */
@@ -6228,7 +5826,7 @@ static void method_test_TRT_return(
 	}
 
 	if (!failed)
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_TRT(fwts_framework *fw)
@@ -6240,13 +5838,13 @@ static int method_test_TRT(fwts_framework *fw)
 static int method_test_TSN(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TSN", NULL, 0, method_test_reference_return, "_TSN");
+		"_TSN", NULL, 0, fwts_method_test_reference_return, "_TSN");
 }
 
 static int method_test_TSP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TSP", NULL, 0, method_test_polling_return, "_TSP");
+		"_TSP", NULL, 0, fwts_method_test_polling_return, "_TSP");
 }
 
 static void method_test_TCx_return(
@@ -6256,8 +5854,8 @@ static void method_test_TCx_return(
 	ACPI_OBJECT *obj,
 	void *private)
 {
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
-		method_passed_sane_uint64(fw, (char*)private, obj->Integer.Value);
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
+		fwts_method_passed_sane_uint64(fw, (char*)private, obj->Integer.Value);
 }
 
 static int method_test_TC1(fwts_framework *fw)
@@ -6275,7 +5873,7 @@ static int method_test_TC2(fwts_framework *fw)
 static int method_test_TFP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TFP", NULL, 0, method_test_integer_return, NULL);
+		"_TFP", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_ACx(fwts_framework *fw)
@@ -6300,7 +5898,7 @@ static int method_test_DTI(fwts_framework *fw)
 	arg[0].Integer.Value = 2732 + 800; /* 80 degrees C */
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DTI", arg, 1, method_test_NULL_return, NULL);
+		"_DTI", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_SCP(fwts_framework *fw)
@@ -6318,7 +5916,7 @@ static int method_test_SCP(fwts_framework *fw)
 		arg[2].Integer.Value = 5;		/* Power limit */
 
 		if (method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_DTI", arg, 1, method_test_NULL_return,
+			"_DTI", arg, 1, fwts_method_test_NULL_return,
 			NULL) == FWTS_NOT_EXIST)
 			break;
 		fwts_log_nl(fw);
@@ -6331,7 +5929,7 @@ static int method_test_SCP(fwts_framework *fw)
 		arg[2].Integer.Value = 1;		/* Power limit */
 
 		if (method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_DTI", arg, 1, method_test_NULL_return,
+			"_DTI", arg, 1, fwts_method_test_NULL_return,
 			NULL) == FWTS_NOT_EXIST)
 			break;
 	}
@@ -6347,8 +5945,8 @@ static void method_test_RTV_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
-		method_passed_sane_uint64(fw, name, obj->Integer.Value);
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
+		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
 }
 
 static int method_test_RTV(fwts_framework *fw)
@@ -6364,7 +5962,7 @@ static int method_test_TPT(fwts_framework *fw)
 	arg[0].Integer.Value = 2732 + 900; /* 90 degrees C */
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TPT", arg, 1, method_test_NULL_return, NULL);
+		"_TPT", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static void method_test_TZD_return(
@@ -6376,10 +5974,10 @@ static void method_test_TZD_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_TZD", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_TZD", obj, ACPI_TYPE_LOCAL_REFERENCE) != FWTS_OK)
 		return;
 
 	fwts_passed(fw,	"%s returned a sane package of %" PRIu32 " references.", name, obj->Package.Count);
@@ -6394,13 +5992,13 @@ static int method_test_TZD(fwts_framework *fw)
 static int method_test_TZM(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TZM", NULL, 0, method_test_reference_return, "_TZM");
+		"_TZM", NULL, 0, fwts_method_test_reference_return, "_TZM");
 }
 
 static int method_test_TZP(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_TZP", NULL, 0, method_test_polling_return, "_TZP");
+		"_TZP", NULL, 0, fwts_method_test_polling_return, "_TZP");
 }
 
 /*
@@ -6443,7 +6041,7 @@ static void method_test_GPE_return(
 		}
 
 		if (!failed)
-			method_passed_sane(fw, name, "package");
+			fwts_method_passed_sane(fw, name, "package");
 
 		break;
 	default:
@@ -6462,7 +6060,7 @@ static int method_test_GPE(fwts_framework *fw)
 static int method_test_EC_(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_EC_", NULL, 0, method_test_integer_return, NULL);
+		"_EC_", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -6484,7 +6082,7 @@ static int method_test_PTS(fwts_framework *fw)
 		arg[0].Integer.Value = i;
 
 		fwts_log_info(fw, "Test _PTS(%d).", i);
-		method_evaluate_method(fw, METHOD_OPTIONAL, "_PTS", arg, 1, method_test_NULL_return, NULL);
+		method_evaluate_method(fw, METHOD_OPTIONAL, "_PTS", arg, 1, fwts_method_test_NULL_return, NULL);
 		fwts_log_nl(fw);
 	}
 	return FWTS_OK;
@@ -6505,7 +6103,7 @@ static int method_test_TTS(fwts_framework *fw)
 				"Test _TTS(%d) Transition To State S%d.", i, i);
 
 			if (method_evaluate_method(fw, METHOD_MANDATORY,
-				"_TTS", arg, 1, method_test_NULL_return,
+				"_TTS", arg, 1, fwts_method_test_NULL_return,
 				NULL) == FWTS_NOT_EXIST) {
 				fwts_advice(fw,
 					"Could not find _TTS. This method is invoked "
@@ -6535,16 +6133,16 @@ static void method_test_WAK_return(
 {
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_equal(fw, name, "_WAK", obj, 2) != FWTS_OK)
+	if (fwts_method_package_count_equal(fw, name, "_WAK", obj, 2) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_WAK", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_WAK", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
-	method_passed_sane(fw, name, "package");
+	fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_WAK(fwts_framework *fw)
@@ -6584,7 +6182,7 @@ static int method_test_DOS(fwts_framework *fw)
 	 * LCD on AC/DC power changes
  	 */
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DOS", arg, 1, method_test_NULL_return, NULL);
+		"_DOS", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static void method_test_DOD_return(
@@ -6621,7 +6219,7 @@ static void method_test_DOD_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
 	for (i = 0; i < obj->Package.Count; i++) {
@@ -6650,7 +6248,7 @@ static void method_test_DOD_return(
 			"Method _DOD did not return a package of "
 			"%" PRIu32 " integers.", obj->Package.Count);
 	else
-		method_passed_sane(fw, name, "package");
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_DOD(fwts_framework *fw)
@@ -6669,8 +6267,8 @@ static void method_test_ROM_return(
 	FWTS_UNUSED(obj);
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) == FWTS_OK)
-		method_passed_sane(fw, name, "package");
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_BUFFER) == FWTS_OK)
+		fwts_method_passed_sane(fw, name, "package");
 }
 
 static int method_test_ROM(fwts_framework *fw)
@@ -6689,7 +6287,7 @@ static int method_test_ROM(fwts_framework *fw)
 static int method_test_GPD(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_GPD", NULL, 0, method_test_integer_return, NULL);
+		"_GPD", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_SPD(fwts_framework *fw)
@@ -6702,7 +6300,7 @@ static int method_test_SPD(fwts_framework *fw)
 		arg[0].Integer.Value = i;	/* bits 00..11, post device */
 
 		if (method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_SPD", arg, 1, method_test_passed_failed_return, NULL) == FWTS_NOT_EXIST)
+			"_SPD", arg, 1, fwts_method_test_passed_failed_return, NULL) == FWTS_NOT_EXIST)
 			break;
 	}
 	return FWTS_OK;
@@ -6711,17 +6309,17 @@ static int method_test_SPD(fwts_framework *fw)
 static int method_test_VPO(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_VPO", NULL, 0, method_test_integer_return, NULL);
+		"_VPO", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_ADR(fwts_framework *fw)
 {
 	if (fw->flags & FWTS_FLAG_TEST_SBBR)
 		return method_evaluate_method(fw, METHOD_MANDATORY,
-			"_ADR", NULL, 0, method_test_integer_return, NULL);
+			"_ADR", NULL, 0, fwts_method_test_integer_return, NULL);
 	else
 		return method_evaluate_method(fw, METHOD_OPTIONAL,
-			"_ADR", NULL, 0, method_test_integer_return, NULL);
+			"_ADR", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_BCL_return(
@@ -6738,13 +6336,13 @@ static void method_test_BCL_return(
 
 	FWTS_UNUSED(private);
 
-	if (method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_PACKAGE) != FWTS_OK)
 		return;
 
-	if (method_package_count_min(fw, name, "_BCL", obj, 3) != FWTS_OK)
+	if (fwts_method_package_count_min(fw, name, "_BCL", obj, 3) != FWTS_OK)
 		return;
 
-	if (method_package_elements_all_type(fw, name, "_BCL", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
+	if (fwts_method_package_elements_all_type(fw, name, "_BCL", obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
 	if (obj->Package.Elements[0].Integer.Value <
@@ -6839,13 +6437,13 @@ static int method_test_BCM(fwts_framework *fw)
 	arg[0].Integer.Value = 0;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_BCM", arg, 1, method_test_NULL_return, NULL);
+		"_BCM", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_BQC(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_BQC", NULL, 0, method_test_integer_return, NULL);
+		"_BQC", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static void method_test_DDC_return(
@@ -6860,7 +6458,7 @@ static void method_test_DDC_return(
 	FWTS_UNUSED(buf);
 
 	if (obj == NULL) {
-		method_failed_null_object(fw, name, "a buffer or integer");
+		fwts_method_failed_null_object(fw, name, "a buffer or integer");
 		return;
 	}
 
@@ -6912,13 +6510,13 @@ static int method_test_DDC(fwts_framework *fw)
 static int method_test_DCS(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DCS", NULL, 0, method_test_integer_return, NULL);
+		"_DCS", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_DGS(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DGS", NULL, 0, method_test_integer_return, NULL);
+		"_DGS", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_DSS(fwts_framework *fw)
@@ -6929,19 +6527,19 @@ static int method_test_DSS(fwts_framework *fw)
 	arg[0].Integer.Value = 0;
 
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_DSS", arg, 1, method_test_NULL_return, NULL);
+		"_DSS", arg, 1, fwts_method_test_NULL_return, NULL);
 }
 
 static int method_test_CBA(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_CBA", NULL, 0, method_test_integer_return, NULL);
+		"_CBA", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_CDM(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_CDM", NULL, 0, method_test_integer_return, NULL);
+		"_CDM", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
@@ -6950,13 +6548,13 @@ static int method_test_CDM(fwts_framework *fw)
 static int method_test_IFT(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_IFT", NULL, 0, method_test_integer_return, NULL);
+		"_IFT", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 static int method_test_SRV(fwts_framework *fw)
 {
 	return method_evaluate_method(fw, METHOD_OPTIONAL,
-		"_SRV", NULL, 0, method_test_integer_return, NULL);
+		"_SRV", NULL, 0, fwts_method_test_integer_return, NULL);
 }
 
 /*
diff --git a/src/lib/include/fwts_acpi_object_eval.h b/src/lib/include/fwts_acpi_object_eval.h
index 289e14a..211be4a 100644
--- a/src/lib/include/fwts_acpi_object_eval.h
+++ b/src/lib/include/fwts_acpi_object_eval.h
@@ -35,4 +35,41 @@ void fwts_acpi_object_dump(fwts_framework *fw, const ACPI_OBJECT *obj);
 void fwts_acpi_object_evaluate_report_error(fwts_framework *fw, const char *name, const ACPI_STATUS status);
 ACPI_STATUS fwts_acpi_object_evaluate(fwts_framework *fw, char *name, ACPI_OBJECT_LIST *arg_list, ACPI_BUFFER *buf);
 
+/* Test types */
+#define METHOD_MANDATORY	1
+#define METHOD_OPTIONAL	2
+#define METHOD_MOBILE		4
+#define METHOD_SILENT		8
+
+#define ACPI_TYPE_INTBUF	(ACPI_TYPE_INVALID + 1)
+
+typedef void (*fwts_method_return)(fwts_framework *fw, char *name,
+	ACPI_BUFFER *ret_buff, ACPI_OBJECT *ret_obj, void *private);
+
+typedef struct {
+	ACPI_OBJECT_TYPE type;	/* Type */
+	const char 	*name;	/* Field name */
+} fwts_package_element;
+
+#define fwts_method_check_type(fw, name, buf, type) 			\
+	fwts_method_check_type__(fw, name, buf, type, #type)
+
+int fwts_method_check_type__(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT_TYPE type, char *type_name);
+const char *fwts_method_type_name(const ACPI_OBJECT_TYPE type);
+void fwts_method_passed_sane(fwts_framework *fw, const char *name, const char *type);
+void fwts_method_passed_sane_uint64(fwts_framework *fw, const char *name, const uint64_t value);
+void fwts_method_failed_null_object(fwts_framework *fw, const char *name, const char *type);
+bool fwts_method_type_matches(ACPI_OBJECT_TYPE t1, ACPI_OBJECT_TYPE t2);
+int fwts_method_package_count_min(fwts_framework *fw, const char *name, const char *objname, const ACPI_OBJECT *obj, const uint32_t min);
+int fwts_method_package_count_equal(fwts_framework *fw, const char *name, const char *objname, const ACPI_OBJECT *obj, const uint32_t count);
+int fwts_method_package_elements_all_type(fwts_framework *fw, const char *name, const char *objname, const ACPI_OBJECT *obj, const ACPI_OBJECT_TYPE type);
+int fwts_method_package_elements_type( fwts_framework *fw, const char *name, const char *objname, const ACPI_OBJECT *obj, const fwts_package_element *info, const uint32_t count);
+
+void fwts_method_test_integer_return(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private);
+void fwts_method_test_string_return(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private);
+void fwts_method_test_reference_return(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private);
+void fwts_method_test_NULL_return(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private);
+void fwts_method_test_passed_failed_return(fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private);
+void fwts_method_test_polling_return( fwts_framework *fw, char *name, ACPI_BUFFER *buf, ACPI_OBJECT *obj, void *private);
+
 #endif
diff --git a/src/lib/src/fwts_acpi_object_eval.c b/src/lib/src/fwts_acpi_object_eval.c
index d957224..d8d3292 100644
--- a/src/lib/src/fwts_acpi_object_eval.c
+++ b/src/lib/src/fwts_acpi_object_eval.c
@@ -457,4 +457,380 @@ ACPI_STATUS fwts_acpi_object_evaluate(fwts_framework *fw,
 	return AcpiEvaluateObject(NULL, name, arg_list, buf);
 }
 
+int fwts_method_check_type__(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT_TYPE type,
+	char *type_name)
+{
+	ACPI_OBJECT *obj;
+
+	if ((buf == NULL) || (buf->Pointer == NULL)) {
+		fwts_method_failed_null_object(fw, name, type_name);
+		return FWTS_ERROR;
+	}
+
+	obj = buf->Pointer;
+
+	if (!fwts_method_type_matches(obj->Type, type)) {
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodReturnBadType",
+			"Method %s did not return %s.", name, type_name);
+		return FWTS_ERROR;
+	}
+	return FWTS_OK;
+}
+
+/*
+ *  Common types that can be returned. This is not a complete
+ *  list but it does cover the types we expect to return from
+ *  an ACPI evaluation.
+ */
+const char *fwts_method_type_name(const ACPI_OBJECT_TYPE type)
+{
+	switch (type) {
+	case ACPI_TYPE_INTEGER:
+		return "integer";
+	case ACPI_TYPE_STRING:
+		return "string";
+	case ACPI_TYPE_BUFFER:
+		return "buffer";
+	case ACPI_TYPE_PACKAGE:
+		return "package";
+	case ACPI_TYPE_BUFFER_FIELD:
+		return "buffer_field";
+	case ACPI_TYPE_LOCAL_REFERENCE:
+		return "reference";
+	case ACPI_TYPE_INTBUF:
+		return "integer or buffer";
+	default:
+		return "unknown";
+	}
+}
+
+/*
+ *  method_passed_sane()
+ *	helper function to report often used passed messages
+ */
+void fwts_method_passed_sane(
+	fwts_framework *fw,
+	const char *name,
+	const char *type)
+{
+	fwts_passed(fw, "%s correctly returned a sane looking %s.", name, type);
+}
+
+/*
+ *  method_passed_sane_uint64()
+ *	helper function to report often used passed uint64 values
+ */
+void fwts_method_passed_sane_uint64(
+	fwts_framework *fw,
+	const char *name,
+	const uint64_t value)
+{
+	fwts_passed(fw, "%s correctly returned sane looking "
+		"value 0x%8.8" PRIx64 ".", name, value);
+}
+
+/*
+ *  fwts_method_failed_null_object()
+ *	helper function to report often used failed NULL object return
+ */
+void fwts_method_failed_null_object(
+	fwts_framework *fw,
+	const char *name,
+	const char *type)
+{
+	fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodReturnNullObj",
+		"%s returned a NULL object, and did not "
+		"return %s.", name, type);
+}
+
+bool fwts_method_type_matches(ACPI_OBJECT_TYPE t1, ACPI_OBJECT_TYPE t2)
+{
+	if (t1 == ACPI_TYPE_INTBUF &&
+	    (t2 == ACPI_TYPE_INTEGER || t2 == ACPI_TYPE_BUFFER))
+		return true;
+
+	if (t2 == ACPI_TYPE_INTBUF &&
+	    (t1 == ACPI_TYPE_INTEGER || t1 == ACPI_TYPE_BUFFER))
+		return true;
+
+	return t1 == t2;
+}
+
+/*
+ *  method_package_count_min()
+ *	check that an ACPI package has at least 'min' elements
+ */
+int fwts_method_package_count_min(
+	fwts_framework *fw,
+	const char *name,
+	const char *objname,
+	const ACPI_OBJECT *obj,
+	const uint32_t min)
+{
+	if (obj->Package.Count < min) {
+		char tmp[128];
+
+		snprintf(tmp, sizeof(tmp), "Method%sElementCount", objname);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
+			"%s should return package of at least %" PRIu32
+			" element%s, got %" PRIu32 " element%s instead.",
+			name, min, min == 1 ? "" : "s",
+			obj->Package.Count, obj->Package.Count == 1 ? "" : "s");
+		return FWTS_ERROR;
+	}
+	return FWTS_OK;
+}
+
+/*
+ *  method_package_count_equal()
+ *	check that an ACPI package has exactly 'count' elements
+ */
+int fwts_method_package_count_equal(
+	fwts_framework *fw,
+	const char *name,
+	const char *objname,
+	const ACPI_OBJECT *obj,
+	const uint32_t count)
+{
+	if (obj->Package.Count != count) {
+		char tmp[128];
+
+		snprintf(tmp, sizeof(tmp), "Method%sElementCount", objname);
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
+			"%s should return package of %" PRIu32
+			" element%s, got %" PRIu32 " element%s instead.",
+			name, count, count == 1 ? "" : "s",
+			obj->Package.Count, obj->Package.Count == 1 ? "" : "s");
+		return FWTS_ERROR;
+	}
+	return FWTS_OK;
+}
+
+int fwts_method_package_elements_all_type(
+	fwts_framework *fw,
+	const char *name,
+	const char *objname,
+	const ACPI_OBJECT *obj,
+	const ACPI_OBJECT_TYPE type)
+{
+	uint32_t i;
+	bool failed = false;
+	char tmp[128];
+
+	for (i = 0; i < obj->Package.Count; i++) {
+		if (!fwts_method_type_matches(obj->Package.Elements[i].Type, type)) {
+			snprintf(tmp, sizeof(tmp), "Method%sElementType", objname);
+			fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
+				"%s package element %" PRIu32 " was not the expected "
+				"type '%s', was instead type '%s'.",
+				name, i,
+				fwts_method_type_name(type),
+				fwts_method_type_name(obj->Package.Elements[i].Type));
+			failed = true;
+		}
+	}
+
+	return failed ? FWTS_ERROR: FWTS_OK;
+}
+
+/*
+ *  fwts_method_package_elements_type()
+ *	sanity check fields in a package that all have
+ *	the same type
+ */
+int fwts_method_package_elements_type(
+	fwts_framework *fw,
+	const char *name,
+	const char *objname,
+	const ACPI_OBJECT *obj,
+	const fwts_package_element *info,
+	const uint32_t count)
+{
+	uint32_t i;
+	bool failed = false;
+	char tmp[128];
+
+	if (obj->Package.Count != count)
+		return FWTS_ERROR;
+
+	for (i = 0; i < obj->Package.Count; i++) {
+		if (!fwts_method_type_matches(obj->Package.Elements[i].Type, info[i].type)) {
+			snprintf(tmp, sizeof(tmp), "Method%sElementType", objname);
+			fwts_failed(fw, LOG_LEVEL_MEDIUM, tmp,
+				"%s package element %" PRIu32 " (%s) was not the expected "
+				"type '%s', was instead type '%s'.",
+				name, i, info[i].name,
+				fwts_method_type_name(info[i].type),
+				fwts_method_type_name(obj->Package.Elements[i].Type));
+			failed = true;
+		}
+	}
+
+	return failed ? FWTS_ERROR: FWTS_OK;
+}
+
+/*
+ *  fwts_method_test_integer_return
+ *	check if an integer object was returned
+ */
+void fwts_method_test_integer_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	FWTS_UNUSED(obj);
+	FWTS_UNUSED(private);
+
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK)
+		fwts_passed(fw, "%s correctly returned an integer.", name);
+}
+
+/*
+ *  fwts_method_test_string_return
+ *	check if an string object was returned
+ */
+void fwts_method_test_string_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	FWTS_UNUSED(obj);
+	FWTS_UNUSED(private);
+
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_STRING) == FWTS_OK)
+		fwts_passed(fw, "%s correctly returned a string.", name);
+}
+
+/*
+ *  fwts_method_test_reference_return
+ *	check if a reference object was returned
+ */
+void fwts_method_test_reference_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	FWTS_UNUSED(obj);
+	FWTS_UNUSED(private);
+
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_LOCAL_REFERENCE) == FWTS_OK)
+		fwts_passed(fw, "%s correctly returned a reference.", name);
+}
+
+/*
+ *  fwts_method_test_NULL_return
+ *	check if no object was retuned
+ */
+void fwts_method_test_NULL_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	FWTS_UNUSED(private);
+
+	/*
+	 *  In ACPICA SLACK mode null returns can be actually
+	 *  forced to return ACPI integers. Blame an errata
+	 *  and Windows compatibility for this mess.
+	 */
+	if (fw->acpica_mode & FWTS_ACPICA_MODE_SLACK) {
+		if ((buf != NULL) && (buf->Pointer != NULL)) {
+			ACPI_OBJECT *objtmp = buf->Pointer;
+			if (fwts_method_type_matches(objtmp->Type, ACPI_TYPE_INTEGER)) {
+				fwts_passed(fw, "%s returned an ACPI_TYPE_INTEGER as expected in slack mode.",
+					name);
+				return;
+			}
+		}
+	}
+
+	if (buf && buf->Length && buf->Pointer) {
+		fwts_failed(fw, LOG_LEVEL_MEDIUM, "MethodShouldReturnNothing", "%s returned values, but was expected to return nothing.", name);
+		fwts_log_info(fw, "Object returned:");
+		fwts_acpi_object_dump(fw, obj);
+		fwts_advice(fw,
+			"This probably won't cause any errors, but it should "
+			"be fixed as the AML code is not conforming to the "
+			"expected behaviour as described in the ACPI "
+			"specification.");
+	} else
+		fwts_passed(fw, "%s returned no values as expected.", name);
+}
+
+/*
+ *  fwts_method_test_passed_failed_return
+ *	check if 0 or 1 (false/true) integer is returned
+ */
+void fwts_method_test_passed_failed_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	char *method = (char *)private;
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK) {
+		uint32_t val = (uint32_t)obj->Integer.Value;
+		if ((val == 0) || (val == 1))
+			fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
+		else {
+			fwts_failed(fw, LOG_LEVEL_MEDIUM,
+				"MethodReturnZeroOrOne",
+				"%s returned 0x%8.8" PRIx32 ", should return 1 "
+				"(success) or 0 (failed).", method, val);
+			fwts_advice(fw,
+				"Method %s should be returning the correct "
+				"1/0 success/failed return values. "
+				"Unexpected behaviour may occur becauses of "
+				"this error, the AML code does not conform to "
+				"the ACPI specification and should be fixed.",
+				method);
+		}
+	}
+}
+
+/*
+ *  fwts_method_test_polling_return
+ *	check if a returned polling time is valid
+ */
+void fwts_method_test_polling_return(
+	fwts_framework *fw,
+	char *name,
+	ACPI_BUFFER *buf,
+	ACPI_OBJECT *obj,
+	void *private)
+{
+	if (fwts_method_check_type(fw, name, buf, ACPI_TYPE_INTEGER) == FWTS_OK) {
+		char *method = (char *)private;
+		if (obj->Integer.Value < 36000) {
+			fwts_passed(fw,
+				"%s correctly returned sane looking value "
+				"%f seconds", method,
+				(float)obj->Integer.Value / 10.0);
+		} else {
+			fwts_failed(fw, LOG_LEVEL_MEDIUM,
+				"MethodPollTimeTooLong",
+				"%s returned a value %f seconds > (1 hour) "
+				"which is probably incorrect.",
+				method, (float)obj->Integer.Value / 10.0);
+			fwts_advice(fw,
+				"The method is returning a polling interval "
+				"which is very long and hence most probably "
+				"incorrect.");
+		}
+	}
+}
+
 #endif
-- 
2.7.4




More information about the fwts-devel mailing list