[PATCH] lib: fwts_firmware: make enums into a defined type

Colin King colin.king at canonical.com
Wed Sep 6 09:08:28 UTC 2017


From: Colin Ian King <colin.king at canonical.com>

Rather than passing around firmware enums as integers, make the enums into
a defined type and use that type.

Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/lib/include/fwts_firmware.h  | 14 +++++++-------
 src/lib/include/fwts_framework.h |  9 ++++++---
 src/lib/src/fwts_firmware.c      |  8 ++++----
 src/lib/src/fwts_framework.c     |  2 +-
 4 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h
index d6608680..e1c12f09 100644
--- a/src/lib/include/fwts_firmware.h
+++ b/src/lib/include/fwts_firmware.h
@@ -21,28 +21,28 @@
 
 #include <stdbool.h>
 
-enum firmware_type {
+typedef enum {
 	FWTS_FIRMWARE_UNKNOWN = 0,
 	FWTS_FIRMWARE_BIOS = 1,
 	FWTS_FIRMWARE_UEFI = 2,
 	FWTS_FIRMWARE_OPAL = 3,
 	FWTS_FIRMWARE_OTHER = 100
-};
+} fwts_firmware_type;
 
-enum firmware_feature {
+typedef enum {
 	FWTS_FW_FEATURE_ACPI		= 0x1,
 	FWTS_FW_FEATURE_DEVICETREE	= 0x2,
 	FWTS_FW_FEATURE_IPMI		= 0x4,
 	FWTS_FW_FEATURE_ALL		= FWTS_FW_FEATURE_ACPI |
 					  FWTS_FW_FEATURE_DEVICETREE |
 					  FWTS_FW_FEATURE_IPMI
-};
+} fwts_firmware_feature;
 
-int fwts_firmware_detect(void);
+fwts_firmware_type fwts_firmware_detect(void);
 int fwts_firmware_features(void);
-const char *fwts_firmware_feature_string(const int features);
+const char *fwts_firmware_feature_string(const fwts_firmware_feature features);
 
-static inline bool fwts_firmware_has_features(const int features)
+static inline bool fwts_firmware_has_features(const fwts_firmware_feature features)
 {
 	return (fwts_firmware_features() & features) == features;
 }
diff --git a/src/lib/include/fwts_framework.h b/src/lib/include/fwts_framework.h
index bef903c8..3f15312b 100644
--- a/src/lib/include/fwts_framework.h
+++ b/src/lib/include/fwts_framework.h
@@ -32,6 +32,7 @@ typedef struct fwts_framework fwts_framework;
 #include "fwts_list.h"
 #include "fwts_acpica_mode.h"
 #include "fwts_types.h"
+#include "fwts_firmware.h"
 
 #define FWTS_FRAMEWORK_MAGIC	0x2af61aec
 
@@ -143,7 +144,7 @@ struct fwts_framework {
 	fwts_log_level failed_level;		/* Bit mask of failed levels in test run */
 	fwts_log_level filter_level;		/* --log-level option filter */
 
-	int firmware_type;			/* Type of firmware */
+	fwts_firmware_type firmware_type;	/* Type of firmware */
 	bool show_progress;			/* Show progress while running current test */
 
 	fwts_log_type	log_type;		/* Output log type, default is plain text ASCII */
@@ -190,14 +191,16 @@ typedef struct fwts_framework_test {
 	fwts_framework_ops *ops;
 	fwts_priority priority;
 	fwts_framework_flags flags;
-	int fw_features;
+	fwts_firmware_feature fw_features;
 	fwts_results results;			/* Per test results */
 	bool	    was_run;
 
 } fwts_framework_test;
 
 int  fwts_framework_args(const int argc, char **argv);
-void fwts_framework_test_add(const char *name, fwts_framework_ops *ops, const fwts_priority priority, const fwts_framework_flags flags, int fw_features);
+void fwts_framework_test_add(const char *name, fwts_framework_ops *ops,
+	const fwts_priority priority, const fwts_framework_flags flags,
+	const fwts_firmware_feature fw_features);
 int  fwts_framework_compare_test_name(void *, void *);
 void fwts_framework_show_version(FILE *fp, const char *name);
 
diff --git a/src/lib/src/fwts_firmware.c b/src/lib/src/fwts_firmware.c
index 5befa616..611ce8f8 100644
--- a/src/lib/src/fwts_firmware.c
+++ b/src/lib/src/fwts_firmware.c
@@ -23,11 +23,11 @@
 
 #include "fwts.h"
 
-static enum firmware_type firmware_type;
+static fwts_firmware_type firmware_type;
 static bool firmware_type_valid;
 
 static const struct {
-	enum firmware_feature feature;
+	fwts_firmware_feature feature;
 	const char name[16];
 } feature_names[] = {
 	{ FWTS_FW_FEATURE_ACPI,		"ACPI" },
@@ -39,7 +39,7 @@ static const struct {
  *  fwts_memory_map_entry_compare()
  *	callback used to sort memory_map entries on start address
  */
-int fwts_firmware_detect(void)
+fwts_firmware_type fwts_firmware_detect(void)
 {
 	struct stat statbuf;
 
@@ -86,7 +86,7 @@ int fwts_firmware_features(void)
 	return features;
 }
 
-const char *fwts_firmware_feature_string(const int features)
+const char *fwts_firmware_feature_string(const fwts_firmware_feature features)
 {
 	const int n = FWTS_ARRAY_LEN(feature_names);
 	const char sep[] = ", ";
diff --git a/src/lib/src/fwts_framework.c b/src/lib/src/fwts_framework.c
index 02e1cde6..c0d71521 100644
--- a/src/lib/src/fwts_framework.c
+++ b/src/lib/src/fwts_framework.c
@@ -171,7 +171,7 @@ void fwts_framework_test_add(
 	fwts_framework_ops *ops,
 	const fwts_priority priority,
 	const fwts_framework_flags flags,
-	int fw_features)
+	const fwts_firmware_feature fw_features)
 {
 	fwts_framework_test *new_test;
 
-- 
2.14.1




More information about the fwts-devel mailing list