mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-14 00:37:41 -04:00
With -Wsign-compare, compilers warn about a mismatching signedness in a comparison in fdt_strerror(). Force FDT_ERRTABSIZE to be signed (it's surely small enough to fit), so that the types match. Also move the minus sign to errval, as this is actually what we use in the next line. Signed-off-by: Andre Przywara <andre.przywara@arm.com> Message-Id: <20201001164630.4980-7-andre.przywara@arm.com> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
// SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
|
|
/*
|
|
* libfdt - Flat Device Tree manipulation
|
|
* Copyright (C) 2006 David Gibson, IBM Corporation.
|
|
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
#include "libfdt_env.h"
|
|
|
|
#include <fdt.h>
|
|
#include <libfdt.h>
|
|
|
|
#include "libfdt_internal.h"
|
|
|
|
struct fdt_errtabent {
|
|
const char *str;
|
|
};
|
|
|
|
#define FDT_ERRTABENT(val) \
|
|
[(val)] = { .str = #val, }
|
|
|
|
static struct fdt_errtabent fdt_errtable[] = {
|
|
FDT_ERRTABENT(FDT_ERR_NOTFOUND),
|
|
FDT_ERRTABENT(FDT_ERR_EXISTS),
|
|
FDT_ERRTABENT(FDT_ERR_NOSPACE),
|
|
|
|
FDT_ERRTABENT(FDT_ERR_BADOFFSET),
|
|
FDT_ERRTABENT(FDT_ERR_BADPATH),
|
|
FDT_ERRTABENT(FDT_ERR_BADPHANDLE),
|
|
FDT_ERRTABENT(FDT_ERR_BADSTATE),
|
|
|
|
FDT_ERRTABENT(FDT_ERR_TRUNCATED),
|
|
FDT_ERRTABENT(FDT_ERR_BADMAGIC),
|
|
FDT_ERRTABENT(FDT_ERR_BADVERSION),
|
|
FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE),
|
|
FDT_ERRTABENT(FDT_ERR_BADLAYOUT),
|
|
FDT_ERRTABENT(FDT_ERR_INTERNAL),
|
|
FDT_ERRTABENT(FDT_ERR_BADNCELLS),
|
|
FDT_ERRTABENT(FDT_ERR_BADVALUE),
|
|
FDT_ERRTABENT(FDT_ERR_BADOVERLAY),
|
|
FDT_ERRTABENT(FDT_ERR_NOPHANDLES),
|
|
FDT_ERRTABENT(FDT_ERR_BADFLAGS),
|
|
};
|
|
#define FDT_ERRTABSIZE ((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
|
|
|
|
const char *fdt_strerror(int errval)
|
|
{
|
|
if (errval > 0)
|
|
return "<valid offset/length>";
|
|
else if (errval == 0)
|
|
return "<no error>";
|
|
else if (-errval < FDT_ERRTABSIZE) {
|
|
const char *s = fdt_errtable[-errval].str;
|
|
|
|
if (s)
|
|
return s;
|
|
}
|
|
|
|
return "<unknown error>";
|
|
}
|