[PATCH 1/2] lib: acpi: add a marco to fwts_acpi_reserved_bits_check

Alex Hung alex.hung at canonical.com
Wed Jan 27 20:17:12 UTC 2021


Reduce two args needed for the original function.

Signed-off-by: Alex Hung <alex.hung at canonical.com>
---
 src/acpi/asf/asf.c                  |  2 +-
 src/acpi/bgrt/bgrt.c                |  2 +-
 src/acpi/drtm/drtm.c                |  2 +-
 src/acpi/einj/einj.c                |  2 +-
 src/acpi/facs/facs.c                |  4 +-
 src/acpi/gtdt/gtdt.c                | 14 ++---
 src/acpi/hest/hest.c                | 16 +++---
 src/acpi/hmat/hmat.c                |  4 +-
 src/acpi/iort/iort.c                | 14 ++---
 src/acpi/lpit/lpit.c                |  2 +-
 src/acpi/madt/madt.c                |  2 +-
 src/acpi/mchi/mchi.c                |  4 +-
 src/acpi/mpst/mpst.c                |  4 +-
 src/acpi/nfit/nfit.c                | 10 ++--
 src/acpi/pcct/pcct.c                |  8 +--
 src/acpi/pdtt/pdtt.c                |  2 +-
 src/acpi/pmtt/pmtt.c                |  2 +-
 src/acpi/pptt/pptt.c                |  8 +--
 src/acpi/sdev/sdev.c                |  4 +-
 src/acpi/spcr/spcr.c                |  4 +-
 src/acpi/spmi/spmi.c                |  4 +-
 src/acpi/srat/srat.c                | 12 ++--
 src/acpi/waet/waet.c                |  2 +-
 src/acpi/wdat/wdat.c                |  2 +-
 src/acpi/wsmt/wsmt.c                |  2 +-
 src/acpi/xenv/xenv.c                |  2 +-
 src/lib/include/fwts_acpi_tables.h  |  8 ++-
 src/lib/src/fwts_acpi_object_eval.c | 89 ++++++++++++++---------------
 src/lib/src/fwts_acpi_tables.c      |  4 +-
 29 files changed, 115 insertions(+), 120 deletions(-)

diff --git a/src/acpi/asf/asf.c b/src/acpi/asf/asf.c
index 4fa97a92..61369808 100644
--- a/src/acpi/asf/asf.c
+++ b/src/acpi/asf/asf.c
@@ -96,7 +96,7 @@ static void asf_check_info(
 			info->min_sensor_poll_wait_time);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "ASF!", "ASF_INFO Feature Flags", info->flags, sizeof(info->flags), 1, 7, passed);
+	fwts_acpi_reserved_bits_check("ASF!", "ASF_INFO Feature Flags", info->flags, 1, 7, passed);
 	fwts_acpi_reserved_zero_check(fw, "ASF!", "ASF_INFO Reserved1", info->reserved1, sizeof(info->reserved1), passed);
 	fwts_acpi_reserved_zero_check(fw, "ASF!", "ASF_INFO Reserved2", info->reserved2, sizeof(info->reserved2), passed);
 	fwts_acpi_reserved_zero_check(fw, "ASF!", "ASF_INFO Reserved3", info->reserved3, sizeof(info->reserved3), passed);
diff --git a/src/acpi/bgrt/bgrt.c b/src/acpi/bgrt/bgrt.c
index 8777bb27..8fbdf9a1 100644
--- a/src/acpi/bgrt/bgrt.c
+++ b/src/acpi/bgrt/bgrt.c
@@ -47,7 +47,7 @@ static int bgrt_test1(fwts_framework *fw)
 	fwts_log_info_simp_int(fw, "  Image Offset Y:           ", bgrt->image_offset_y);
 
 	fwts_acpi_fixed_value_check(fw, LOG_LEVEL_MEDIUM, "BGRT", "Version", bgrt->version, 1, &passed);
-	fwts_acpi_reserved_bits_check(fw, "BGRT", "BGRT Status", bgrt->status, sizeof(bgrt->status), 3, 7, &passed);
+	fwts_acpi_reserved_bits_check("BGRT", "BGRT Status", bgrt->status, 3, 7, &passed);
 	fwts_acpi_fixed_value_check(fw, LOG_LEVEL_MEDIUM, "BGRT", "Image Type", bgrt->image_type, 0, &passed);
 
 	if (passed)
diff --git a/src/acpi/drtm/drtm.c b/src/acpi/drtm/drtm.c
index ff90fc58..66b95695 100644
--- a/src/acpi/drtm/drtm.c
+++ b/src/acpi/drtm/drtm.c
@@ -54,7 +54,7 @@ static int drtm_test1(fwts_framework *fw)
 	fwts_log_info_simp_int(fw, "  Architecture_Dependent:   ", drtm->arch_dependent_address);
 	fwts_log_info_simp_int(fw, "  DRT_Flags:                ", drtm->flags);
 
-	fwts_acpi_reserved_bits_check(fw, "DRTM", "DRT_Flags", drtm->flags, sizeof(drtm->flags), 4, 31, &passed);
+	fwts_acpi_reserved_bits_check("DRTM", "DRT_Flags", drtm->flags, 4, 31, &passed);
 	fwts_log_nl(fw);
 
 	offset = sizeof(fwts_acpi_table_drtm);
diff --git a/src/acpi/einj/einj.c b/src/acpi/einj/einj.c
index 72b5cc94..415d0cec 100644
--- a/src/acpi/einj/einj.c
+++ b/src/acpi/einj/einj.c
@@ -47,7 +47,7 @@ static int einj_test1(fwts_framework *fw)
 	fwts_log_info_simp_int(fw, "  Reserved:              ", reserved);
 	fwts_log_info_simp_int(fw, "  Injection Entry Count: ", einj->count);
 
-	fwts_acpi_reserved_bits_check(fw, "EINJ", "Injection Flags", einj->flags, sizeof(einj->flags), 0, 31, &passed);
+	fwts_acpi_reserved_bits_check("EINJ", "Injection Flags", einj->flags, 0, 31, &passed);
 	fwts_acpi_reserved_zero_check(fw, "EINJ", "Reserved", reserved, sizeof(reserved), &passed);
 
 	fwts_log_nl(fw);
diff --git a/src/acpi/facs/facs.c b/src/acpi/facs/facs.c
index a2ee62ee..ac8d79b2 100644
--- a/src/acpi/facs/facs.c
+++ b/src/acpi/facs/facs.c
@@ -115,8 +115,8 @@ static int facs_test1(fwts_framework *fw)
 	}
 
 	fwts_acpi_reserved_zero_check(fw, "FACS", "Reserved", reserved, sizeof(reserved), &passed);
-	fwts_acpi_reserved_bits_check(fw, "FACS", "Flags", facs->flags, sizeof(facs->flags), 2, 31, &passed);
-	fwts_acpi_reserved_bits_check(fw, "FACS", "OSPM Flags", facs->ospm_flags, sizeof(facs->ospm_flags), 1, 31, &passed);
+	fwts_acpi_reserved_bits_check("FACS", "Flags", facs->flags, 2, 31, &passed);
+	fwts_acpi_reserved_bits_check("FACS", "OSPM Flags", facs->ospm_flags, 1, 31, &passed);
 
 	for (i = 0; i < 24; i++) {
 		if (facs->reserved2[i]) {
diff --git a/src/acpi/gtdt/gtdt.c b/src/acpi/gtdt/gtdt.c
index 1d472858..f5d78946 100644
--- a/src/acpi/gtdt/gtdt.c
+++ b/src/acpi/gtdt/gtdt.c
@@ -74,7 +74,7 @@ static int gtdt_test1(fwts_framework *fw)
 			"If not provided, this field must be 0xFFFFFFFFFFFFFFFF");
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "GTDT", "Flags", gtdt->virtual_timer_flags, sizeof(gtdt->virtual_timer_flags), 3, 31, &passed);
+	fwts_acpi_reserved_bits_check("GTDT", "Flags", gtdt->virtual_timer_flags, 3, 31, &passed);
 
 	ptr = (uint8_t *)table->data + gtdt->platform_timer_offset;
 	n = gtdt->platform_timer_count;
@@ -188,16 +188,13 @@ static int gtdt_test1(fwts_framework *fw)
 				}
 
 				snprintf(field, sizeof(field), "block %" PRIu32 " physical timer flags", i);
-				fwts_acpi_reserved_bits_check(fw, "GTDT", field, block_timer->phys_timer_flags,
-					sizeof(block_timer->phys_timer_flags), 2, 31, &passed);
+				fwts_acpi_reserved_bits_check("GTDT", field, block_timer->phys_timer_flags, 2, 31, &passed);
 
 				snprintf(field, sizeof(field), "block %" PRIu32 " virtual timer flags", i);
-				fwts_acpi_reserved_bits_check(fw, "GTDT", field, block_timer->virt_timer_flags,
-					sizeof(block_timer->virt_timer_flags), 2, 31, &passed);
+				fwts_acpi_reserved_bits_check("GTDT", field, block_timer->virt_timer_flags, 2, 31, &passed);
 
 				snprintf(field, sizeof(field), "block %" PRIu32 " common flags", i);
-				fwts_acpi_reserved_bits_check(fw, "GTDT", field, block_timer->common_flags,
-					sizeof(block_timer->common_flags), 2, 31, &passed);
+				fwts_acpi_reserved_bits_check("GTDT", field, block_timer->common_flags, 2, 31, &passed);
 			}
 			ptr += block->length;
 			break;
@@ -245,8 +242,7 @@ static int gtdt_test1(fwts_framework *fw)
 			}
 
 			snprintf(field, sizeof(field), "SBSA generic watchdog timer %" PRIu32 " flags", i);
-			fwts_acpi_reserved_bits_check(fw, "GTDT", field, watchdog->watchdog_timer_flags,
-				sizeof(watchdog->watchdog_timer_flags), 3, 31, &passed);
+			fwts_acpi_reserved_bits_check("GTDT", field, watchdog->watchdog_timer_flags, 3, 31, &passed);
 
 			ptr += watchdog->length;
 			break;
diff --git a/src/acpi/hest/hest.c b/src/acpi/hest/hest.c
index 7fad85aa..842a25c1 100644
--- a/src/acpi/hest/hest.c
+++ b/src/acpi/hest/hest.c
@@ -389,7 +389,7 @@ static void hest_check_pci_express_root_port_aer(
 	fwts_log_nl(fw);
 
 	fwts_acpi_reserved_zero_check(fw, "HEST", "PCI Express Root Port Reserved1", aer->reserved1, sizeof(aer->reserved1), passed);
-	fwts_acpi_reserved_bits_check(fw, "HEST", "PCI Express Root Port Flags", aer->flags, sizeof(aer->flags), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("HEST", "PCI Express Root Port Flags", aer->flags, 2, 7, passed);
 	fwts_acpi_reserved_zero_check(fw, "HEST", "PCI Express Root Port Reserved2", aer->reserved2, sizeof(aer->reserved2), passed);
 
 	if (aer->number_of_records_to_preallocate < 1) {
@@ -457,7 +457,7 @@ static void hest_check_pci_express_device_aer(
 	fwts_log_nl(fw);
 
 	fwts_acpi_reserved_zero_check(fw, "HEST", "PCI Express Device Reserved1", aer->reserved1, sizeof(aer->reserved1), passed);
-	fwts_acpi_reserved_bits_check(fw, "HEST", "PCI Express Device Flags", aer->flags, sizeof(aer->flags), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("HEST", "PCI Express Device Flags", aer->flags, 2, 7, passed);
 	fwts_acpi_reserved_zero_check(fw, "HEST", "PCI Express Device Reserved2", aer->reserved2, sizeof(aer->reserved2), passed);
 
 	if (aer->number_of_records_to_preallocate < 1) {
@@ -529,7 +529,7 @@ static void hest_heck_pci_express_bridge_aer(
 	fwts_log_nl(fw);
 
 	fwts_acpi_reserved_zero_check(fw, "HEST", "PCI Express Bridge Reserved1", aer->reserved1, sizeof(aer->reserved1), passed);
-	fwts_acpi_reserved_bits_check(fw, "HEST", "PCI Express Bridge Flags", aer->flags, sizeof(aer->flags), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("HEST", "PCI Express Bridge Flags", aer->flags, 2, 7, passed);
 	fwts_acpi_reserved_zero_check(fw, "HEST", "PCI Express Bridge Reserved2", aer->reserved2, sizeof(aer->reserved2), passed);
 
 	if (aer->number_of_records_to_preallocate < 1) {
@@ -649,9 +649,8 @@ static void hest_check_generic_error_source(
 			source->notification.type);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "HEST", "HEST Configuration Write Enabled",
-		source->notification.configuration_write_enable,
-		sizeof(source->notification.configuration_write_enable), 6, 31, passed);
+	fwts_acpi_reserved_bits_check("HEST", "HEST Configuration Write Enabled",
+		source->notification.configuration_write_enable, 6, 31, passed);
 
 	*length -= sizeof(fwts_acpi_table_hest_generic_hardware_error_source);
 	*data += sizeof(fwts_acpi_table_hest_generic_hardware_error_source);
@@ -764,9 +763,8 @@ static void hest_check_generic_error_source_v2(
 			source->notification.type);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "HEST", "HEST Configuration Write Enabled",
-		source->notification.configuration_write_enable,
-		sizeof(source->notification.configuration_write_enable), 6, 31, passed);
+	fwts_acpi_reserved_bits_check("HEST", "HEST Configuration Write Enabled",
+		source->notification.configuration_write_enable, 6, 31, passed);
 
 	*length -= sizeof(fwts_acpi_table_hest_generic_hardware_error_source_v2);
 	*data += sizeof(fwts_acpi_table_hest_generic_hardware_error_source_v2);
diff --git a/src/acpi/hmat/hmat.c b/src/acpi/hmat/hmat.c
index 066a484d..71b14762 100644
--- a/src/acpi/hmat/hmat.c
+++ b/src/acpi/hmat/hmat.c
@@ -41,7 +41,7 @@ static void hmat_proximity_domain_test(fwts_framework *fw, const fwts_acpi_table
 	fwts_log_info_simp_int(fw, "    Reserved:                       ", entry->reserved4);
 
 	fwts_acpi_reserved_zero_check(fw, "HMAT", "Reserved", entry->header.reserved, sizeof(entry->header.reserved), passed);
-	fwts_acpi_reserved_bits_check(fw, "HMAT", "Flags", entry->flags, sizeof(entry->flags), 1, 15, passed);
+	fwts_acpi_reserved_bits_check("HMAT", "Flags", entry->flags, 1, 15, passed);
 	fwts_acpi_reserved_zero_check(fw, "HMAT", "Reserved", entry->reserved1, sizeof(entry->reserved1), passed);
 	fwts_acpi_reserved_zero_check(fw, "HMAT", "Reserved", entry->reserved2, sizeof(entry->reserved2), passed);
 	fwts_acpi_reserved_zero_check(fw, "HMAT", "Reserved", entry->reserved3, sizeof(entry->reserved3), passed);
@@ -70,7 +70,7 @@ static void hmat_locality_test(fwts_framework *fw, const fwts_acpi_table_hmat_lo
 	fwts_log_info_simp_int(fw, "    Entry Base Unit:                ", entry->entry_base_unit);
 
 	fwts_acpi_reserved_zero_check(fw, "HMAT", "Reserved", entry->header.reserved, sizeof(entry->header.reserved), passed);
-	fwts_acpi_reserved_bits_check(fw, "HMAT", "Flags", entry->flags, sizeof(entry->flags), 6, 7, passed);
+	fwts_acpi_reserved_bits_check("HMAT", "Flags", entry->flags, 6, 7, passed);
 
 	if (entry->data_type > 5) {
 		*passed = false;
diff --git a/src/acpi/iort/iort.c b/src/acpi/iort/iort.c
index 2b7e869e..fc6203b1 100644
--- a/src/acpi/iort/iort.c
+++ b/src/acpi/iort/iort.c
@@ -166,7 +166,7 @@ static void iort_id_mappings_check(
 		}
 
 		snprintf(field, sizeof(field), "ID Mapping %" PRIu32 " flags", i);
-		fwts_acpi_reserved_bits_check(fw, "IORT", field, id_mapping->flags, sizeof(id_mapping->flags), 1, 31, passed);
+		fwts_acpi_reserved_bits_check("IORT", field, id_mapping->flags, 1, 31, passed);
 	}
 }
 
@@ -209,7 +209,7 @@ static void iort_smmu_interrupt_flags_check(
 	uint32_t flags,
 	bool *passed)
 {
-	fwts_acpi_reserved_bits_check(fw, "IORT", name, flags, sizeof(flags), 1, 31, passed);
+	fwts_acpi_reserved_bits_check("IORT", name, flags, 1, 31, passed);
 }
 
 /*
@@ -366,16 +366,14 @@ static void iort_memory_access_properties_check(
 	}
 
 	snprintf(field, sizeof(field), "%s Allocation Hints", name);
-	fwts_acpi_reserved_bits_check(fw, "IORT", field, properties->allocation_hints,
-		sizeof(properties->allocation_hints), 4, 7, passed);
+	fwts_acpi_reserved_bits_check("IORT", field, properties->allocation_hints, 4, 7, passed);
 
 	snprintf(field, sizeof(field), "%s Reserved", name);
 	fwts_acpi_reserved_zero_check(fw, "IORT", field, properties->reserved,
 		sizeof(properties->reserved), passed);
 
 	snprintf(field, sizeof(field), "%s  Memory Access Flags", name);
-	fwts_acpi_reserved_bits_check(fw, "IORT", field, properties->memory_access_flags,
-		sizeof(properties->memory_access_flags), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("IORT", field, properties->memory_access_flags, 2, 7, passed);
 
 	cca = properties->cache_coherent & 1;
 	cpm = properties->memory_access_flags & 1;
@@ -543,7 +541,7 @@ static void iort_check_smmu(
 			"a model value 0 to 5.", node->model);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "IORT", "SMMU Reserved Flags", node->flags, sizeof(node->flags), 2, 31, passed);
+	fwts_acpi_reserved_bits_check("IORT", "SMMU Reserved Flags", node->flags, 2, 31, passed);
 	fwts_log_nl(fw);
 }
 
@@ -583,7 +581,7 @@ static void iort_check_smmuv3(
 			"a model value of 0.", node->model);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "IORT", "SMMUv3 Reserved Flags", node->flags, sizeof(node->flags), 2, 31, passed);
+	fwts_acpi_reserved_bits_check("IORT", "SMMUv3 Reserved Flags", node->flags, 2, 31, passed);
 	fwts_log_nl(fw);
 }
 
diff --git a/src/acpi/lpit/lpit.c b/src/acpi/lpit/lpit.c
index 0e313682..097dadb7 100644
--- a/src/acpi/lpit/lpit.c
+++ b/src/acpi/lpit/lpit.c
@@ -81,7 +81,7 @@ static void lpit_check_type_0(
 	fwts_log_nl(fw);
 
 	fwts_acpi_reserved_zero_check(fw, "LPIT", "Native C-state based LPI structure reserved", lpi->reserved, sizeof(lpi->reserved), passed);
-	fwts_acpi_reserved_bits_check(fw, "LPIT", "LPI structure flags", lpi->flags, sizeof(lpi->flags), 2, 31, passed);
+	fwts_acpi_reserved_bits_check("LPIT", "LPI structure flags", lpi->flags, 2, 31, passed);
 
 	/* 2.2.1.2, if FFH, then it is a MSR, check GAS fields */
 	if (((lpi->flags & 2) == 0) &&
diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
index 2a18a62e..295cd012 100644
--- a/src/acpi/madt/madt.c
+++ b/src/acpi/madt/madt.c
@@ -576,7 +576,7 @@ static void check_madt_apic_flags(fwts_framework *fw, uint8_t type, uint32_t fla
 	if (madt->header.revision < 5)
 		head = 1;
 
-	fwts_acpi_reserved_bits_check(fw, "MADT", "Local APIC Flags", flags, sizeof(flags), head, 31, &passed);
+	fwts_acpi_reserved_bits_check("MADT", "Local APIC Flags", flags, head, 31, &passed);
 
 	if (passed)
 		fwts_passed(fw, "MADT %s flags field, bits %" PRIu8
diff --git a/src/acpi/mchi/mchi.c b/src/acpi/mchi/mchi.c
index fd31c3a4..45041bce 100644
--- a/src/acpi/mchi/mchi.c
+++ b/src/acpi/mchi/mchi.c
@@ -98,7 +98,7 @@ static int mchi_test1(fwts_framework *fw)
 			"255 (OEM defined)", mchi->protocol_identifier);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "MCHI", "Interrupt Type", mchi->interrupt_type, sizeof(mchi->interrupt_type), 2, 7, &passed);
+	fwts_acpi_reserved_bits_check("MCHI", "Interrupt Type", mchi->interrupt_type, 2, 7, &passed);
 
 	if (((mchi->interrupt_type & 0x01) == 0) &&
 	    (mchi->gpe != 0)) {
@@ -111,7 +111,7 @@ static int mchi_test1(fwts_framework *fw)
 			mchi->gpe);
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "MCHI", "PCI Device Flag", mchi->pci_device_flag, sizeof(mchi->pci_device_flag), 1, 7, &passed);
+	fwts_acpi_reserved_bits_check("MCHI", "PCI Device Flag", mchi->pci_device_flag, 1, 7, &passed);
 
 	if (((mchi->interrupt_type & 0x02) == 0) &&
 	    (mchi->global_system_interrupt != 0)) {
diff --git a/src/acpi/mpst/mpst.c b/src/acpi/mpst/mpst.c
index 6914842d..4bd8f14c 100644
--- a/src/acpi/mpst/mpst.c
+++ b/src/acpi/mpst/mpst.c
@@ -75,7 +75,7 @@ static int mpst_test1(fwts_framework *fw)
 		fwts_log_info_simp_int(fw, "    Number of Power States:        ", power_node->num_states);
 		fwts_log_info_simp_int(fw, "    Number of Physical Components: ", power_node->num_components);
 
-		fwts_acpi_reserved_bits_check(fw, "MPST", "Power Node Flags", power_node->flags, sizeof(power_node->flags), 3, 7, &passed);
+		fwts_acpi_reserved_bits_check("MPST", "Power Node Flags", power_node->flags, 3, 7, &passed);
 		fwts_acpi_reserved_zero_check(fw, "MPST", "Reserved", power_node->reserved, sizeof(power_node->reserved), &passed);
 
 		node_length = sizeof(fwts_acpi_table_mpst_power_node) +
@@ -161,7 +161,7 @@ static int mpst_test1(fwts_framework *fw)
 				"0x%2.2" PRIx8 " instead", (power_char->structure_id & 0xC0) >> 6);
 		}
 
-		fwts_acpi_reserved_bits_check(fw, "MPST", "Power Characteristics Flags", power_char->flags, sizeof(power_char->flags), 3, 7, &passed);
+		fwts_acpi_reserved_bits_check("MPST", "Power Characteristics Flags", power_char->flags, 3, 7, &passed);
 		fwts_acpi_reserved_zero_check(fw, "MPST", "Reserved1", power_char->reserved1, sizeof(power_char->reserved1), &passed);
 		fwts_acpi_reserved_zero_check(fw, "MPST", "Reserved2", power_char->reserved2, sizeof(power_char->reserved2), &passed);
 
diff --git a/src/acpi/nfit/nfit.c b/src/acpi/nfit/nfit.c
index fbebf39f..5c2c75fe 100644
--- a/src/acpi/nfit/nfit.c
+++ b/src/acpi/nfit/nfit.c
@@ -232,7 +232,7 @@ static int nfit_test1(fwts_framework *fw)
 				}
 			}
 
-			fwts_acpi_reserved_bits_check(fw, "NFIT", "Flags", nfit_struct->flags, sizeof(nfit_struct->flags), 3, 15, &passed);
+			fwts_acpi_reserved_bits_check("NFIT", "Flags", nfit_struct->flags, 3, 15, &passed);
 
 			if (nfit_struct->reserved != 0)
 				reserved_passed = nfit_struct->reserved;
@@ -271,7 +271,7 @@ static int nfit_test1(fwts_framework *fw)
 			fwts_log_info_simp_int(fw, "    NVDIMM State Flags:                     ", nfit_struct->flags);
 			fwts_log_info_simp_int(fw, "    Reserved:                               ", nfit_struct->reserved);
 
-			fwts_acpi_reserved_bits_check(fw, "NFIT", "NVDIMM State Flags", nfit_struct->flags, sizeof(nfit_struct->flags), 7, 15, &passed);
+			fwts_acpi_reserved_bits_check("NFIT", "NVDIMM State Flags", nfit_struct->flags, 7, 15, &passed);
 
 			if (nfit_struct->reserved != 0)
 				reserved_passed = nfit_struct->reserved;
@@ -383,7 +383,7 @@ static int nfit_test1(fwts_framework *fw)
 			if (nfit_struct->reserved != 0)
 				reserved_passed = nfit_struct->reserved;
 
-			fwts_acpi_reserved_bits_check(fw, "NFIT", "Valid", nfit_struct->valid_fields, sizeof(nfit_struct->valid_fields), 1, 7, &passed);
+			fwts_acpi_reserved_bits_check("NFIT", "Valid", nfit_struct->valid_fields, 1, 7, &passed);
 
 			if (entry->length >= sizeof(*nfit_struct)) {
 				uint64_t reserved1;
@@ -406,7 +406,7 @@ static int nfit_test1(fwts_framework *fw)
 				fwts_log_info_simp_int(fw, "    NVDIMM Control Region Flag:             ", nfit_struct->flags);
 				fwts_log_info_simp_int(fw, "    Reserved:                               ", reserved1);
 
-				fwts_acpi_reserved_bits_check(fw, "NFIT", "NVDIMM Control Region Flags", nfit_struct->flags, sizeof(nfit_struct->flags), 1, 15, &passed);
+				fwts_acpi_reserved_bits_check("NFIT", "NVDIMM Control Region Flags", nfit_struct->flags, 1, 15, &passed);
 				fwts_log_info_simp_int(fw, "    NVDIMM Control Region Structure Index:  ", nfit_struct->region_index);
 			}
 
@@ -492,7 +492,7 @@ static int nfit_test1(fwts_framework *fw)
 			fwts_log_info_simp_int(fw, "    Reserved2:                              ", nfit_struct->reserved2);
 
 			fwts_acpi_reserved_zero_check(fw, "NFIT", "Reserved1", reserved1, sizeof(reserved1), &passed);
-			fwts_acpi_reserved_bits_check(fw, "NFIT", "Capabilities", nfit_struct->cap, sizeof(nfit_struct->cap), 3, 31, &passed);
+			fwts_acpi_reserved_bits_check("NFIT", "Capabilities", nfit_struct->cap, 3, 31, &passed);
 
 			if ((nfit_struct->cap & 0x1) && !(nfit_struct->cap & 0x2)) {
 				passed = false;
diff --git a/src/acpi/pcct/pcct.c b/src/acpi/pcct/pcct.c
index 3fe3ad06..acc3fc2f 100644
--- a/src/acpi/pcct/pcct.c
+++ b/src/acpi/pcct/pcct.c
@@ -132,7 +132,7 @@ static void hw_reduced_comm_test_type1(fwts_framework *fw, fwts_acpi_table_pcct_
 	fwts_log_info_simp_int(fw, "    Max Periodic Access Rate:    ", entry->max_periodic_access_rate);
 	fwts_log_info_simp_int(fw, "    Min Request Turnaround Time: ", entry->min_request_turnaround_time);
 
-	fwts_acpi_reserved_bits_check(fw, "PCCT", "Platform Interrupt Flags", entry->platform_interrupt_flags, sizeof(uint8_t), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("PCCT", "Platform Interrupt Flags", entry->platform_interrupt_flags, 2, 7, passed);
 }
 
 static void hw_reduced_comm_test_type2(fwts_framework *fw, fwts_acpi_table_pcct_subspace_type_2 *entry, bool *passed)
@@ -154,7 +154,7 @@ static void hw_reduced_comm_test_type2(fwts_framework *fw, fwts_acpi_table_pcct_
 	fwts_log_info_simp_int(fw, "    Platform Ack Preserve:       ", entry->platform_ack_preserve);
 	fwts_log_info_simp_int(fw, "    Platform Ack Write:          ", entry->platform_ack_write);
 
-	fwts_acpi_reserved_bits_check(fw, "PCCT", "Platform Interrupt Flags", entry->platform_interrupt_flags, sizeof(uint8_t), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("PCCT", "Platform Interrupt Flags", entry->platform_interrupt_flags, 2, 7, passed);
 }
 
 static void extended_pcc_test(fwts_framework *fw, fwts_acpi_table_pcct_subspace_type_3_4 *entry, bool *passed)
@@ -187,7 +187,7 @@ static void extended_pcc_test(fwts_framework *fw, fwts_acpi_table_pcct_subspace_
 	gas_messages(fw, entry->header.type, &entry->error_status_register, passed);
 	fwts_log_info_simp_int(fw, "    Error Status Mask:           ", entry->error_status_mask);
 
-	fwts_acpi_reserved_bits_check(fw, "PCCT", "Platform Interrupt Flags", entry->platform_interrupt_flags, sizeof(uint8_t), 2, 7, passed);
+	fwts_acpi_reserved_bits_check("PCCT", "Platform Interrupt Flags", entry->platform_interrupt_flags, 2, 7, passed);
 }
 
 static void hw_registers_based_comm_test(fwts_framework *fw, fwts_acpi_table_pcct_subspace_type_5 *entry, bool *passed)
@@ -221,7 +221,7 @@ static int pcct_test1(fwts_framework *fw)
 	fwts_log_info_simp_int(fw, "  Reserved:  ", pcct->reserved);
 	fwts_log_nl(fw);
 
-	fwts_acpi_reserved_bits_check(fw, "PCCT", "Flags", pcct->flags, sizeof(pcct->flags), 1, 31, &passed);
+	fwts_acpi_reserved_bits_check("PCCT", "Flags", pcct->flags, 1, 31, &passed);
 	fwts_acpi_reserved_zero_check(fw, "PCCT", "Reserved", pcct->reserved, sizeof(pcct->reserved), &passed);
 
 	offset = sizeof(fwts_acpi_table_pcct);
diff --git a/src/acpi/pdtt/pdtt.c b/src/acpi/pdtt/pdtt.c
index 1feb0af0..5a0a0699 100644
--- a/src/acpi/pdtt/pdtt.c
+++ b/src/acpi/pdtt/pdtt.c
@@ -62,7 +62,7 @@ static int pdtt_test1(fwts_framework *fw)
 	for (i = 0; i < pdtt->trigger_count; i++) {
 		fwts_log_info_simp_int(fw, "    Sub channel ID:          ", entry->sub_channel_id);
 		fwts_log_info_simp_int(fw, "    Flags:                   ", entry->flags);
-		fwts_acpi_reserved_bits_check(fw, "PDTT", "Flags", entry->flags, sizeof(entry->flags), 3, 7, &passed);
+		fwts_acpi_reserved_bits_check("PDTT", "Flags", entry->flags, 3, 7, &passed);
 
 		if ((offset += sizeof(fwts_acpi_table_pdtt_channel)) > table->length) {
 			passed = false;
diff --git a/src/acpi/pmtt/pmtt.c b/src/acpi/pmtt/pmtt.c
index 0096873f..c4dbf878 100644
--- a/src/acpi/pmtt/pmtt.c
+++ b/src/acpi/pmtt/pmtt.c
@@ -36,7 +36,7 @@ static void pmtt_subtable_header_test(fwts_framework *fw, fwts_acpi_table_pmtt_h
 	fwts_log_info_simp_int(fw, "    Reserved:                       ", entry->reserved2);
 
 	fwts_acpi_reserved_zero_check(fw, "PMTT", "Reserved1", entry->reserved1, sizeof(entry->reserved1), passed);
-	fwts_acpi_reserved_bits_check(fw, "PMTT", "Flags", entry->flags, sizeof(entry->flags), 4, 15, passed);
+	fwts_acpi_reserved_bits_check("PMTT", "Flags", entry->flags, 4, 15, passed);
 
 	if ((entry->flags & 0x0C) == 0x0C) {
 		*passed = false;
diff --git a/src/acpi/pptt/pptt.c b/src/acpi/pptt/pptt.c
index 7b5adb27..52e892be 100644
--- a/src/acpi/pptt/pptt.c
+++ b/src/acpi/pptt/pptt.c
@@ -54,9 +54,9 @@ static void pptt_processor_test(fwts_framework *fw, const fwts_acpi_table_pptt_p
 	fwts_acpi_reserved_zero_check(fw, "PPTT", "Reserved", entry->reserved, sizeof(entry->reserved), passed);
 
 	if (rev == 1)
-		fwts_acpi_reserved_bits_check(fw, "PPTT", "Flags", entry->flags, sizeof(entry->flags), 2, 31, passed);
+		fwts_acpi_reserved_bits_check("PPTT", "Flags", entry->flags, 2, 31, passed);
 	else if (rev == 2)
-		fwts_acpi_reserved_bits_check(fw, "PPTT", "Flags", entry->flags, sizeof(entry->flags), 5, 31, passed);
+		fwts_acpi_reserved_bits_check("PPTT", "Flags", entry->flags, 5, 31, passed);
 
 }
 
@@ -76,8 +76,8 @@ static void pptt_cache_test(fwts_framework *fw, const fwts_acpi_table_pptt_cache
 	fwts_log_info_simp_int(fw, "    Line size:                      ", entry->line_size);
 
 	fwts_acpi_reserved_zero_check(fw, "PPTT", "Reserved", entry->reserved, sizeof(entry->reserved), passed);
-	fwts_acpi_reserved_bits_check(fw, "PPTT", "Flags", entry->flags, sizeof(entry->flags), 7, 31, passed);
-	fwts_acpi_reserved_bits_check(fw, "PPTT", "Attributes", entry->attributes, sizeof(entry->attributes), 5, 7, passed);
+	fwts_acpi_reserved_bits_check("PPTT", "Flags", entry->flags, 7, 31, passed);
+	fwts_acpi_reserved_bits_check("PPTT", "Attributes", entry->attributes, 5, 7, passed);
 }
 
 static void pptt_id_test(fwts_framework *fw, const fwts_acpi_table_pptt_id *entry, bool *passed)
diff --git a/src/acpi/sdev/sdev.c b/src/acpi/sdev/sdev.c
index 1f8e14ea..8e1e142b 100644
--- a/src/acpi/sdev/sdev.c
+++ b/src/acpi/sdev/sdev.c
@@ -40,7 +40,7 @@ static void sdev_acpi_namespace_device_test(fwts_framework *fw, const fwts_acpi_
 	fwts_log_info_simp_int(fw, "    Vendor Specific Data Offset:    ", entry->vendor_offset);
 	fwts_log_info_simp_int(fw, "    Vendor Specific Data Length:    ", entry->vendor_length);
 
-	fwts_acpi_reserved_bits_check(fw, "SDEV", "Flags", entry->header.flags, sizeof(entry->header.flags), 1, 15, passed);
+	fwts_acpi_reserved_bits_check("SDEV", "Flags", entry->header.flags, 1, 15, passed);
 }
 
 static void sdev_pcie_endpoint_device_test(fwts_framework *fw, const fwts_acpi_table_sdev_pcie *entry, bool *passed)
@@ -56,7 +56,7 @@ static void sdev_pcie_endpoint_device_test(fwts_framework *fw, const fwts_acpi_t
 	fwts_log_info_simp_int(fw, "    Vendor Specific Data Offset:    ", entry->vendor_offset);
 	fwts_log_info_simp_int(fw, "    Vendor Specific Data Length:    ", entry->vendor_length);
 
-	fwts_acpi_reserved_bits_check(fw, "SDEV", "Flags", entry->header.flags, sizeof(entry->header.flags), 1, 15, passed);
+	fwts_acpi_reserved_bits_check("SDEV", "Flags", entry->header.flags, 1, 15, passed);
 }
 
 static int sdev_test1(fwts_framework *fw)
diff --git a/src/acpi/spcr/spcr.c b/src/acpi/spcr/spcr.c
index 8ec10b28..db882d01 100644
--- a/src/acpi/spcr/spcr.c
+++ b/src/acpi/spcr/spcr.c
@@ -204,7 +204,7 @@ static int spcr_test1(fwts_framework *fw)
 
 	fwts_acpi_fixed_value_check(fw, LOG_LEVEL_HIGH, "SPCR", "Parity", spcr->parity, 0, &passed);
 	fwts_acpi_fixed_value_check(fw, LOG_LEVEL_HIGH, "SPCR", "Stop", spcr->stop_bits, 1, &passed);
-	fwts_acpi_reserved_bits_check(fw, "SPCR", "Flow control", spcr->flow_control, sizeof(spcr->flow_control), 3, 7, &passed);
+	fwts_acpi_reserved_bits_check("SPCR", "Flow control", spcr->flow_control, 3, 7, &passed);
 
 	reserved = false;
 	switch (spcr->terminal_type) {
@@ -271,7 +271,7 @@ static int spcr_test1(fwts_framework *fw)
 		}
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "SPCR", "PCI Flags", spcr->pci_flags, sizeof(spcr->pci_flags), 1, 31, &passed);
+	fwts_acpi_reserved_bits_check("SPCR", "PCI Flags", spcr->pci_flags, 1, 31, &passed);
 	fwts_acpi_reserved_zero_check(fw, "SPCR", "Reserved3", spcr->reserved3, sizeof(spcr->reserved3), &passed);
 
 	if (passed)
diff --git a/src/acpi/spmi/spmi.c b/src/acpi/spmi/spmi.c
index d1cba2c1..227903e4 100644
--- a/src/acpi/spmi/spmi.c
+++ b/src/acpi/spmi/spmi.c
@@ -97,7 +97,7 @@ static int spmi_test1(fwts_framework *fw)
 	}
 
 	fwts_acpi_fixed_value_check(fw, LOG_LEVEL_MEDIUM, "SPMI", "Reserved1", spmi->reserved1, 1, &passed);
-	fwts_acpi_reserved_bits_check(fw, "SPMI", "Interrupt type", spmi->interrupt_type, sizeof(spmi->interrupt_type), 2, 7, &passed);
+	fwts_acpi_reserved_bits_check("SPMI", "Interrupt type", spmi->interrupt_type, 2, 7, &passed);
 
 	/* Check for zero GPE on specific condition of interrupt type */
 	if (((spmi->interrupt_type & 1) == 0) &&
@@ -111,7 +111,7 @@ static int spmi_test1(fwts_framework *fw)
 	}
 
 	fwts_acpi_reserved_zero_check(fw, "SPMI", "Reserved2", spmi->reserved2, sizeof(spmi->reserved2), &passed);
-	fwts_acpi_reserved_bits_check(fw, "SPMI", "PCI device flag", spmi->pci_device_flag, sizeof(spmi->pci_device_flag), 1, 7, &passed);
+	fwts_acpi_reserved_bits_check("SPMI", "PCI device flag", spmi->pci_device_flag, 1, 7, &passed);
 
 	if (((spmi->interrupt_type & 2) == 0) &&
 	    (spmi->global_system_interrupt != 0)) {
diff --git a/src/acpi/srat/srat.c b/src/acpi/srat/srat.c
index 65513e37..b157e1d9 100644
--- a/src/acpi/srat/srat.c
+++ b/src/acpi/srat/srat.c
@@ -67,7 +67,7 @@ static void srat_check_local_apic_sapic_affinity(
 	fwts_log_info_simp_int(fw, "  Clock Domain              ", affinity->clock_domain);
 	fwts_log_nl(fw);
 
-	fwts_acpi_reserved_bits_check(fw, "SRAT", "Local APIC/SPAIC Affinity Flags", affinity->flags, sizeof(affinity->flags), 1, 31, passed);
+	fwts_acpi_reserved_bits_check("SRAT", "Local APIC/SPAIC Affinity Flags", affinity->flags, 1, 31, passed);
 
 	/*
 	 * Not clear of bits 0..7 of Proximity Domain are reserved or not
@@ -122,7 +122,7 @@ static void srat_check_memory_affinity(
 	fwts_log_info_simp_int(fw, "  Reserved:                 ", affinity->reserved3);
 	fwts_log_nl(fw);
 
-	fwts_acpi_reserved_bits_check(fw, "SRAT", "Memory Affinity Flags", affinity->flags, sizeof(affinity->flags), 3, 31, passed);
+	fwts_acpi_reserved_bits_check("SRAT", "Memory Affinity Flags", affinity->flags, 3, 31, passed);
 
 done:
 	*length -= sizeof(fwts_acpi_table_memory_affinity);
@@ -175,7 +175,7 @@ static void srat_check_local_x2apic_affinity(
 		*passed = false;
 	}
 
-	fwts_acpi_reserved_bits_check(fw, "SRAT", "Local x2APIC Affinity Flags", affinity->flags, sizeof(affinity->flags), 1, 31, passed);
+	fwts_acpi_reserved_bits_check("SRAT", "Local x2APIC Affinity Flags", affinity->flags, 1, 31, passed);
 
 	/*
 	 *  Clock domain probably needs deeper sanity checking, for now
@@ -221,7 +221,7 @@ static void srat_check_gicc_affinity(
 	fwts_log_info_simp_int(fw, "  Clock Domain              ", affinity->clock_domain);
 	fwts_log_nl(fw);
 
-	fwts_acpi_reserved_bits_check(fw, "SRAT", "GICC Affinity Flags", affinity->flags, sizeof(affinity->flags), 1, 31, passed);
+	fwts_acpi_reserved_bits_check("SRAT", "GICC Affinity Flags", affinity->flags, 1, 31, passed);
 
 	/*
 	 *  Clock domain probably needs deeper sanity checking, for now
@@ -320,7 +320,7 @@ static void srat_check_initiator_affinity(
 	fwts_log_nl(fw);
 
 	fwts_acpi_reserved_zero_check(fw, "SRAT", "Initiator Affinity Reserved", affinity->reserved1, sizeof(affinity->reserved1), passed);
-	fwts_acpi_reserved_bits_check(fw, "SRAT", "Initiator Affinity Device Handle Type", affinity->device_handle_type, sizeof(affinity->device_handle_type), 1, 7, passed);
+	fwts_acpi_reserved_bits_check("SRAT", "Initiator Affinity Device Handle Type", affinity->device_handle_type, 1, 7, passed);
 	if (affinity->device_handle_type == 0)
 		h_reserved = affinity->device_handle[12];
 	else if (affinity->device_handle_type == 1) {
@@ -329,7 +329,7 @@ static void srat_check_initiator_affinity(
 			h_reserved += affinity->device_handle[i];
 	}
 	fwts_acpi_reserved_zero_check(fw, "SRAT", "Initiator Affinity Device Handle Reserve", h_reserved, sizeof(uint32_t), passed);
-	fwts_acpi_reserved_bits_check(fw, "SRAT", "Initiator Affinity Flags", affinity->flags, sizeof(affinity->flags), 2, 31, passed);
+	fwts_acpi_reserved_bits_check("SRAT", "Initiator Affinity Flags", affinity->flags, 2, 31, passed);
 	fwts_acpi_reserved_zero_check(fw, "SRAT", "Initiator Affinity Reserved", affinity->reserved2, sizeof(affinity->reserved2), passed);
 
 done:
diff --git a/src/acpi/waet/waet.c b/src/acpi/waet/waet.c
index 8da30cb1..b324d9fd 100644
--- a/src/acpi/waet/waet.c
+++ b/src/acpi/waet/waet.c
@@ -53,7 +53,7 @@ static int waet_test1(fwts_framework *fw)
 	fwts_log_info_verbatim(fw, "    Bit [1] PM Timer Good:  %1" PRIu32, (waet->flags >> 1) & 1);
 	fwts_log_nl(fw);
 
-	fwts_acpi_reserved_bits_check(fw, "WAET", "Emulated Device Flags", waet->flags, sizeof(waet->flags), 2, 31, &passed);
+	fwts_acpi_reserved_bits_check("WAET", "Emulated Device Flags", waet->flags, 2, 31, &passed);
 
 done:
 	if (passed)
diff --git a/src/acpi/wdat/wdat.c b/src/acpi/wdat/wdat.c
index 0a270128..01ea5be6 100644
--- a/src/acpi/wdat/wdat.c
+++ b/src/acpi/wdat/wdat.c
@@ -102,7 +102,7 @@ static int wdat_test1(fwts_framework *fw)
 	 * this does sanity check that somebody has not set these
 	 * bits accidentally.  This is a LOW issue.
 	 */
-	fwts_acpi_reserved_bits_check(fw, "WDAT", "Watchdog Flags", wdat->watchdog_flags, sizeof(wdat->watchdog_flags), 1, 6, &passed);
+	fwts_acpi_reserved_bits_check("WDAT", "Watchdog Flags", wdat->watchdog_flags, 1, 6, &passed);
 
 	total_length = sizeof(fwts_acpi_table_wdat) +
 		(wdat->number_of_entries * sizeof(fwts_acpi_table_wdat_instr_entries));
diff --git a/src/acpi/wsmt/wsmt.c b/src/acpi/wsmt/wsmt.c
index 573c13d1..2b728e89 100644
--- a/src/acpi/wsmt/wsmt.c
+++ b/src/acpi/wsmt/wsmt.c
@@ -41,7 +41,7 @@ static int wsmt_test1(fwts_framework *fw)
 	fwts_log_info_verbatim(fw, "WSMT Windows SMM Security Mitigations Table:");
 	fwts_log_info_simp_int(fw, "  Protection Flags:      ", wsmt->protection_flags);
 
-	fwts_acpi_reserved_bits_check(fw, "WSMT", "Protection Flags", wsmt->protection_flags, sizeof(wsmt->protection_flags), 3, 31, &passed);
+	fwts_acpi_reserved_bits_check("WSMT", "Protection Flags", wsmt->protection_flags, 3, 31, &passed);
 
 	if ((wsmt->protection_flags & 0x2) && !(wsmt->protection_flags & 0x1)) {
 		passed = false;
diff --git a/src/acpi/xenv/xenv.c b/src/acpi/xenv/xenv.c
index fc558f36..dcd3f760 100644
--- a/src/acpi/xenv/xenv.c
+++ b/src/acpi/xenv/xenv.c
@@ -51,7 +51,7 @@ static int xenv_test1(fwts_framework *fw)
 	fwts_log_info_simp_int(fw, "  Evtchn Intr:                     ", xenv->evtchn_intr);
 	fwts_log_info_simp_int(fw, "  Evtchn Intr Flags:               ",  xenv->evtchn_intr_flags);
 
-	fwts_acpi_reserved_bits_check(fw, "XENV", "Evtchn Intr Flags", xenv->evtchn_intr_flags, sizeof(xenv->evtchn_intr_flags), 2, 7, &passed);
+	fwts_acpi_reserved_bits_check("XENV", "Evtchn Intr Flags", xenv->evtchn_intr_flags, 2, 7, &passed);
 
 	if (passed)
 		fwts_passed(fw, "No issues found in XENV table.");
diff --git a/src/lib/include/fwts_acpi_tables.h b/src/lib/include/fwts_acpi_tables.h
index fcfb9198..46fa53bc 100644
--- a/src/lib/include/fwts_acpi_tables.h
+++ b/src/lib/include/fwts_acpi_tables.h
@@ -26,7 +26,11 @@
 
 #define ACPI_MAX_TABLES		(128)
 
-#define fwts_acpi_revision_check(table, actual, must_be, passed) fwts_acpi_fixed_value_check(fw, LOG_LEVEL_HIGH, table, "Revision", actual, must_be, passed)
+#define fwts_acpi_revision_check(table, actual, must_be, passed) \
+	fwts_acpi_fixed_value_check(fw, LOG_LEVEL_HIGH, table, "Revision", actual, must_be, passed)
+
+#define fwts_acpi_reserved_bits_check(table, field, value, min, max, passed) \
+	fwts_acpi_reserved_bits_check_(fw, table, field, value, sizeof(value), min, max, passed)
 
 typedef enum {
 	FWTS_ACPI_TABLE_FROM_FIRMWARE,	/* directly from firmware */
@@ -65,7 +69,7 @@ fwts_bool fwts_acpi_is_reduced_hardware(fwts_framework *fw);
 
 void fwts_acpi_reserved_zero_check(fwts_framework *fw, const char *table, const char *field, uint64_t value, uint8_t size, bool *passed);
 void fwts_acpi_reserved_zero_array_check(fwts_framework *fw, const char *table, const char *field, uint8_t* data, uint8_t length, bool *passed);
-void fwts_acpi_reserved_bits_check(fwts_framework *fw, const char *table, const char *field, uint64_t value, uint8_t size, uint8_t min, uint8_t max, bool *passed);
+void fwts_acpi_reserved_bits_check_(fwts_framework *fw, const char *table, const char *field, uint64_t value, uint8_t size, uint8_t min, uint8_t max, bool *passed);
 void fwts_acpi_reserved_type_check(fwts_framework *fw, const char *table, uint8_t value, uint8_t min, uint8_t reserved, bool *passed);
 bool fwts_acpi_table_length_check(fwts_framework *fw, const char *table, uint32_t length, uint32_t size);
 bool fwts_acpi_structure_length_check(fwts_framework *fw, const char *table, uint8_t subtable_type, uint32_t subtable_length, uint32_t size);
diff --git a/src/lib/src/fwts_acpi_object_eval.c b/src/lib/src/fwts_acpi_object_eval.c
index 17e42ca0..cffa7d0a 100644
--- a/src/lib/src/fwts_acpi_object_eval.c
+++ b/src/lib/src/fwts_acpi_object_eval.c
@@ -1954,7 +1954,7 @@ void fwts_method_test_CRS_large_resource_items(
 		fwts_method_test_CRS_large_size(fw, name, objname, data, length, 17, 65535, passed);
 		if (!*passed)	/* Too short, abort */
 			break;
-		fwts_acpi_reserved_bits_check(fw, "_CRS", "Flags[low]", data[4], sizeof(data[4]), 1, 7, passed);
+		fwts_acpi_reserved_bits_check("_CRS", "Flags[low]", data[4], 1, 7, passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Flags[high]", data[5], sizeof(data[5]), passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Resource Source Index", data[11], sizeof(data[11]), passed);
 		break;
@@ -1967,7 +1967,7 @@ void fwts_method_test_CRS_large_resource_items(
 		if (!*passed)	/* Too short, abort */
 			break;
 
-		fwts_acpi_reserved_bits_check(fw, "_CRS", "Flags[low]", data[4], sizeof(data[4]), 2, 7, passed);
+		fwts_acpi_reserved_bits_check("_CRS", "Flags[low]", data[4], 2, 7, passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Flags[high]", data[5], sizeof(data[5]), passed);
 
 		if (data[6] > 0xd && data[6] < 0x80) {
@@ -1990,7 +1990,7 @@ void fwts_method_test_CRS_large_resource_items(
 		if (!*passed)	/* Too short, abort */
 			break;
 
-		fwts_acpi_reserved_bits_check(fw, "_CRS", "Flags[low]", data[4], sizeof(data[4]), 1, 7, passed);
+		fwts_acpi_reserved_bits_check("_CRS", "Flags[low]", data[4], 1, 7, passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Flags[high]", data[5], sizeof(data[5]), passed);
 
 		break;
@@ -1999,7 +1999,7 @@ void fwts_method_test_CRS_large_resource_items(
 		if (!*passed)	/* Too short, abort */
 			break;
 
-		fwts_acpi_reserved_bits_check(fw, "_CRS", "Flags[low]", data[4], sizeof(data[4]), 2, 7, passed);
+		fwts_acpi_reserved_bits_check("_CRS", "Flags[low]", data[4], 2, 7, passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Flags[high]", data[5], sizeof(data[5]), passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Resource Source Index", data[8], sizeof(data[8]), passed);
 		break;
@@ -2008,7 +2008,7 @@ void fwts_method_test_CRS_large_resource_items(
 		if (!*passed)	/* Too short, abort */
 			break;
 
-		fwts_acpi_reserved_bits_check(fw, "_CRS", "Flags[low]", data[4], sizeof(data[4]), 2, 7, passed);
+		fwts_acpi_reserved_bits_check("_CRS", "Flags[low]", data[4], 2, 7, passed);
 		fwts_acpi_reserved_zero_check(fw, "_CRS", "Flags[high]", data[5], sizeof(data[5]), passed);
 
 		if (data[6] > 0xd && data[6] < 0x80) {
@@ -2436,11 +2436,11 @@ void fwts_method_test_BMD_return(
 	if (fwts_method_package_elements_all_type(fw, name, obj, ACPI_TYPE_INTEGER) != FWTS_OK)
 		return;
 
-	fwts_acpi_reserved_bits_check(fw, "_BMD", "Status Flags",
-		obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 7, 31, &failed);
+	fwts_acpi_reserved_bits_check("_BMD", "Status Flags",
+		obj->Package.Elements[0].Integer.Value, 7, 31, &failed);
 
-	fwts_acpi_reserved_bits_check(fw, "_BMD", "Capability Flags",
-		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 6, 31, &failed);
+	fwts_acpi_reserved_bits_check("_BMD", "Capability Flags",
+		obj->Package.Elements[1].Integer.Value, 6, 31, &failed);
 
 	if (!failed)
 		fwts_method_passed_sane(fw, name, "package");
@@ -2501,8 +2501,8 @@ void fwts_method_test_NBS_return(
 	ret = (nbs_return_t *) obj->Buffer.Pointer;
 	check_nvdimm_status(fw, name, ret->status, &passed);
 	check_nvdimm_extended_status(fw, name, ret->extended_status, 0, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NBS", "Validation Flags",
-		ret->validation_flags, sizeof(uint16_t), 1, 15, &passed);
+	fwts_acpi_reserved_bits_check("_NBS", "Validation Flags",
+		ret->validation_flags, 1, 15, &passed);
 
 	if (passed)
 		fwts_method_passed_sane(fw, name, "buffer");
@@ -2529,19 +2529,19 @@ void fwts_method_test_NCH_return(
 	ret = (nch_return_t *) obj->Buffer.Pointer;
 	check_nvdimm_status(fw, name, ret->status, &passed);
 	check_nvdimm_extended_status(fw, name, ret->extended_status, 0, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NCH", "Validation Flags",
-		ret->extended_status, sizeof(uint16_t), 2, 15, &passed);
+	fwts_acpi_reserved_bits_check("_NCH", "Validation Flags",
+		ret->extended_status, 2, 15, &passed);
 
 	/* Health Status Flags [2..7], [11.15], [19..31] are reserved */
-	fwts_acpi_reserved_bits_check(fw, "_NCH", "Health Status Flags",
-		ret->health_status_flags, sizeof(uint32_t), 2, 7, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NCH", "Health Status Flags",
-		ret->health_status_flags, sizeof(uint32_t), 11, 15, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NCH", "Health Status Flags",
-		ret->health_status_flags, sizeof(uint32_t), 19, 31, &passed);
+	fwts_acpi_reserved_bits_check("_NCH", "Health Status Flags",
+		ret->health_status_flags, 2, 7, &passed);
+	fwts_acpi_reserved_bits_check("_NCH", "Health Status Flags",
+		ret->health_status_flags, 11, 15, &passed);
+	fwts_acpi_reserved_bits_check("_NCH", "Health Status Flags",
+		ret->health_status_flags, 19, 31, &passed);
 
-	fwts_acpi_reserved_bits_check(fw, "_NCH", "Health Status Attributes",
-		ret->health_status_attributes, sizeof(uint32_t), 1, 31, &passed);
+	fwts_acpi_reserved_bits_check("_NCH", "Health Status Attributes",
+		ret->health_status_attributes, 1, 31, &passed);
 
 	if (passed)
 		fwts_method_passed_sane(fw, name, "buffer");
@@ -2570,15 +2570,15 @@ void fwts_method_test_NIC_return(
 	check_nvdimm_extended_status(fw, name, ret->extended_status, 0, &passed);
 
 	/* Health Error Injection Capabilities [2..7], [11.15], [19..31] are reserved */
-	fwts_acpi_reserved_bits_check(fw, "_NIC", "Health Error Injection Capabilities",
-		ret->health_error_injection, sizeof(uint32_t), 2, 7, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NIC", "Health Error Injection Capabilities",
-		ret->health_error_injection, sizeof(uint32_t), 11, 15, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NIC", "Health Error Injection Capabilities",
-		ret->health_error_injection, sizeof(uint32_t), 19, 31, &passed);
+	fwts_acpi_reserved_bits_check("_NIC", "Health Error Injection Capabilities",
+		ret->health_error_injection, 2, 7, &passed);
+	fwts_acpi_reserved_bits_check("_NIC", "Health Error Injection Capabilities",
+		ret->health_error_injection, 11, 15, &passed);
+	fwts_acpi_reserved_bits_check("_NIC", "Health Error Injection Capabilities",
+		ret->health_error_injection, 19, 31, &passed);
 
-	fwts_acpi_reserved_bits_check(fw, "_NIC", "Health Status Attributes Capabilities",
-		ret->health_status_attributes, sizeof(uint32_t), 1, 31, &passed);
+	fwts_acpi_reserved_bits_check("_NIC", "Health Status Attributes Capabilities",
+		ret->health_status_attributes, 1, 31, &passed);
 
 	if (passed)
 		fwts_method_passed_sane(fw, name, "buffer");
@@ -2631,19 +2631,19 @@ void fwts_method_test_NIG_return(
 	ret = (nig_return_t *) obj->Buffer.Pointer;
 	check_nvdimm_status(fw, name, ret->status, &passed);
 	check_nvdimm_extended_status(fw, name,  ret->extended_status, 0, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NIG", "Validation Flags",
-		ret->validation_flags, sizeof(uint16_t), 2, 15, &passed);
+	fwts_acpi_reserved_bits_check("_NIG", "Validation Flags",
+		ret->validation_flags, 2, 15, &passed);
 
 	/* Injected Health Status Errors [2..7], [11.15], [19..31] are reserved */
-	fwts_acpi_reserved_bits_check(fw, "_NIG", "Injected Health Status Errors",
-		ret->health_status_errors, sizeof(uint32_t), 2, 7, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NIG", "Injected Health Status Errors",
-		ret->health_status_errors, sizeof(uint32_t), 11, 15, &passed);
-	fwts_acpi_reserved_bits_check(fw, "_NIG", "Injected Health Status Errors",
-		ret->health_status_errors, sizeof(uint32_t), 19, 31, &passed);
+	fwts_acpi_reserved_bits_check("_NIG", "Injected Health Status Errors",
+		ret->health_status_errors, 2, 7, &passed);
+	fwts_acpi_reserved_bits_check("_NIG", "Injected Health Status Errors",
+		ret->health_status_errors, 11, 15, &passed);
+	fwts_acpi_reserved_bits_check("_NIG", "Injected Health Status Errors",
+		ret->health_status_errors, 19, 31, &passed);
 
-	fwts_acpi_reserved_bits_check(fw, "_NIG", "Health Status Attributes of Injected Errors",
-		ret->health_status_attributes, sizeof(uint32_t), 1, 31, &passed);
+	fwts_acpi_reserved_bits_check("_NIG", "Health Status Attributes of Injected Errors",
+		ret->health_status_attributes, 1, 31, &passed);
 
 	if (passed)
 		fwts_method_passed_sane(fw, name, "buffer");
@@ -2670,8 +2670,7 @@ void fwts_method_test_STA_return(
 			"but not present, which is impossible.", name);
 		passed = false;
 	}
-	fwts_acpi_reserved_bits_check(fw, "_STA", "Reserved Bits",
-		obj->Integer.Value, sizeof(uint32_t), 5, 31, &passed);
+	fwts_acpi_reserved_bits_check("_STA", "Reserved Bits", obj->Integer.Value, 5, 31, &passed);
 
 	if (passed)
 		fwts_method_passed_sane_uint64(fw, name, obj->Integer.Value);
@@ -3034,8 +3033,8 @@ void fwts_method_test_BST_return(
 
 	/* Sanity check each field */
 	/* Battery State */
-	fwts_acpi_reserved_bits_check(fw, "_BST", "Battery State",
-			obj->Package.Elements[0].Integer.Value, sizeof(uint32_t), 3, 31, &failed);
+	fwts_acpi_reserved_bits_check("_BST", "Battery State",
+			obj->Package.Elements[0].Integer.Value, 3, 31, &failed);
 	/* Ensure bits 0 (discharging) and 1 (charging) are not both set, see 10.2.2.6 */
 	if (((obj->Package.Elements[0].Integer.Value) & 3) == 3) {
 		fwts_failed(fw, LOG_LEVEL_CRITICAL,
@@ -3087,8 +3086,8 @@ void fwts_method_test_BPC_return(
 	if (fwts_method_test_revision(fw, name, obj->Package.Elements[0].Integer.Value, 1) != FWTS_OK)
 		passed = false;
 
-	fwts_acpi_reserved_bits_check(fw, "_BPC", "Power Threshold Support Capability",
-		obj->Package.Elements[1].Integer.Value, sizeof(uint32_t), 2, 31, &passed);
+	fwts_acpi_reserved_bits_check("_BPC", "Power Threshold Support Capability",
+		obj->Package.Elements[1].Integer.Value, 2, 31, &passed);
 
 	if (!passed)
 		fwts_advice(fw,
diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
index ae3b732f..11789bba 100644
--- a/src/lib/src/fwts_acpi_tables.c
+++ b/src/lib/src/fwts_acpi_tables.c
@@ -1536,10 +1536,10 @@ void fwts_acpi_fixed_value_check(
 }
 
 /*
- *  fwts_acpi_reserved_bits_check()
+ *  fwts_acpi_reserved_bits_check_()
  *  verify whether the reserved bits are zero
  */
-void fwts_acpi_reserved_bits_check(
+void fwts_acpi_reserved_bits_check_(
 	fwts_framework *fw,
 	const char *table,
 	const char *field,
-- 
2.25.1




More information about the fwts-devel mailing list