[PATCH 1/6] fwts: Add fwts_firmware_has_features
Jeremy Kerr
jk at ozlabs.org
Wed May 13 03:30:54 UTC 2015
Add a function to indicate whether a firmware has a particular feature
mask. This can be used by tests to skip running on firmware without
certain features.
Signed-off-by: Jeremy Kerr <jk at ozlabs.org>
Acked-by: Colin Ian King <colin.king at canonical.com>
Acked-by: Alex Hung <alex.hung at canonical.com>
---
src/lib/include/fwts_firmware.h | 12 ++++++++++++
src/lib/src/fwts_firmware.c | 17 +++++++++++++++++
2 files changed, 29 insertions(+)
diff --git a/src/lib/include/fwts_firmware.h b/src/lib/include/fwts_firmware.h
index 739babd..e4d4fa5 100644
--- a/src/lib/include/fwts_firmware.h
+++ b/src/lib/include/fwts_firmware.h
@@ -19,6 +19,8 @@
#ifndef __FWTS_FIRMWARE_H__
#define __FWTS_FIRMWARE_H__
+#include <stdbool.h>
+
enum {
FWTS_FIRMWARE_UNKNOWN = 0,
FWTS_FIRMWARE_BIOS = 1,
@@ -26,6 +28,16 @@ enum {
FWTS_FIRMWARE_OTHER = 100
};
+enum firmware_feature {
+ FWTS_FW_FEATURE_ACPI = 1 << 0,
+};
+
int fwts_firmware_detect(void);
+int fwts_firmware_features(void);
+
+static inline bool fwts_firmware_has_features(int features)
+{
+ return (fwts_firmware_features() & features) == features;
+}
#endif
diff --git a/src/lib/src/fwts_firmware.c b/src/lib/src/fwts_firmware.c
index 543e9ba..8e5c04e 100644
--- a/src/lib/src/fwts_firmware.c
+++ b/src/lib/src/fwts_firmware.c
@@ -36,3 +36,20 @@ int fwts_firmware_detect(void)
else
return FWTS_FIRMWARE_UEFI;
}
+
+int fwts_firmware_features(void)
+{
+ int features = 0;
+
+ /* we just have static feature definitions for now */
+ switch (fwts_firmware_detect()) {
+ case FWTS_FIRMWARE_BIOS:
+ case FWTS_FIRMWARE_UEFI:
+ features = FWTS_FW_FEATURE_ACPI;
+ break;
+ default:
+ break;
+ }
+
+ return features;
+}
More information about the fwts-devel
mailing list