ACK: [PATCH] fwts_devicetree: Add function for common usage
Colin Ian King
colin.king at canonical.com
Wed Sep 14 18:22:04 UTC 2016
On 14/09/16 16:59, Deb McLemore wrote:
> Move the check_property_printable to the library for common usage.
>
> Signed-off-by: Deb McLemore <debmc at linux.vnet.ibm.com>
> ---
> src/devicetree/dt_sysinfo/dt_sysinfo.c | 47 ---------------------------------
> src/lib/include/fwts_devicetree.h | 5 ++++
> src/lib/src/fwts_devicetree.c | 48 ++++++++++++++++++++++++++++++++++
> 3 files changed, 53 insertions(+), 47 deletions(-)
>
> diff --git a/src/devicetree/dt_sysinfo/dt_sysinfo.c b/src/devicetree/dt_sysinfo/dt_sysinfo.c
> index 159dfc6..0565979 100644
> --- a/src/devicetree/dt_sysinfo/dt_sysinfo.c
> +++ b/src/devicetree/dt_sysinfo/dt_sysinfo.c
> @@ -49,53 +49,6 @@ static struct reference_platform {
> FWTS_ARRAY_LEN(garrison_models)},
> };
>
> -static int check_property_printable(fwts_framework *fw,
> - const char *name,
> - const char *buf,
> - size_t len)
> -{
> - bool printable = true;
> - unsigned int i;
> -
> - /* we need at least one character plus a nul */
> - if (len < 2) {
> - fwts_failed(fw, LOG_LEVEL_LOW,
> - "DTPrintablePropertyShort",
> - "property %s is too short", name);
> - return FWTS_ERROR;
> - }
> -
> - /* check all characters are printable */
> - for (i = 0; i < len - 1; i++) {
> - printable = printable && isprint(buf[i]);
> - if (!printable)
> - break;
> - }
> -
> - if (!printable) {
> - fwts_failed(fw, LOG_LEVEL_LOW,
> - "DTPrintablePropertyInvalid",
> - "property %s contains unprintable characters",
> - name);
> - return FWTS_ERROR;
> - }
> -
> - /* check for a trailing nul */
> - if (buf[len-1] != '\0') {
> - fwts_failed(fw, LOG_LEVEL_LOW,
> - "DTPrintablePropertyNoNul",
> - "property %s isn't nul-terminated", name);
> - return FWTS_ERROR;
> - }
> -
> - fwts_log_info_verbatim(fw,
> - "DTPrintableProperty with a string"
> - " value of \"%s\" passed",
> - buf);
> -
> - return FWTS_OK;
> -}
> -
> static int dt_sysinfo_check_root_property(
> fwts_framework *fw,
> const char *name,
> diff --git a/src/lib/include/fwts_devicetree.h b/src/lib/include/fwts_devicetree.h
> index 355c0ee..a0ea9d0 100644
> --- a/src/lib/include/fwts_devicetree.h
> +++ b/src/lib/include/fwts_devicetree.h
> @@ -50,4 +50,9 @@ static inline int fwts_devicetree_read(fwts_framework *fwts
> }
> #endif
>
> +int check_property_printable(fwts_framework *fw,
> + const char *name,
> + const char *buf,
> + size_t len);
> +
> #endif
> diff --git a/src/lib/src/fwts_devicetree.c b/src/lib/src/fwts_devicetree.c
> index 94367de..d7facb0 100644
> --- a/src/lib/src/fwts_devicetree.c
> +++ b/src/lib/src/fwts_devicetree.c
> @@ -20,6 +20,7 @@
> #define _GNU_SOURCE
>
> #include <stdio.h>
> +#include <ctype.h>
>
> #include "fwts.h"
>
> @@ -63,3 +64,50 @@ int fwts_devicetree_read(fwts_framework *fwts)
> return FWTS_OK;
> }
>
> +int check_property_printable(fwts_framework *fw,
> + const char *name,
> + const char *buf,
> + size_t len)
> +{
> + bool printable = true;
> + unsigned int i;
> +
> + /* we need at least one character plus a nul */
> + if (len < 2) {
> + fwts_failed(fw, LOG_LEVEL_LOW,
> + "DTPrintablePropertyShort",
> + "property \"%s\" is too short", name);
> + return FWTS_ERROR;
> + }
> +
> + /* check all characters are printable */
> + for (i = 0; i < len - 1; i++) {
> + printable = printable && isprint(buf[i]);
> + if (!printable)
> + break;
> + }
> +
> + if (!printable) {
> + fwts_failed(fw, LOG_LEVEL_LOW,
> + "DTPrintablePropertyInvalid",
> + "property \"%s\" contains unprintable characters",
> + name);
> + return FWTS_ERROR;
> + }
> +
> + /* check for a trailing nul */
> + if (buf[len-1] != '\0') {
> + fwts_failed(fw, LOG_LEVEL_LOW,
> + "DTPrintablePropertyNoNul",
> + "property \"%s\" isn't nul-terminated", name);
> + return FWTS_ERROR;
> + }
> +
> + fwts_log_info_verbatim(fw,
> + "DTPrintableProperty \"%s\" with a string"
> + " value of \"%s\" passed",
> + name,
> + buf);
> +
> + return FWTS_OK;
> +}
>
Thanks Deb
Acked-by: Colin Ian King <colin.king at canonical.com>
More information about the fwts-devel
mailing list