ACK: [RFC,PATCH 1/7 v2] fwts: Add fwts_firmware_has_features
Colin Ian King
colin.king at canonical.com
Thu May 1 08:09:51 UTC 2014
On 28/04/14 02:35, Jeremy Kerr wrote:
> 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>
>
> ---
> 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 7688d5e..ee3880d 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 fcc2e80..bf080a7 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;
> +}
>
Acked-by: Colin Ian King <colin.king at canonical.com>
More information about the fwts-devel
mailing list