60 lines · 1.5 KB · C
RawDownload
// 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),	FDT_ERRTABENT(FDT_ERR_ALIGNMENT),};#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>";}