1 1.1.1.2 skrll /* $NetBSD: fdt_strerror.c,v 1.1.1.3 2019/12/22 12:30:36 skrll Exp $ */ 2 1.1.1.2 skrll 3 1.1.1.3 skrll // SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause) 4 1.1 macallan /* 5 1.1 macallan * libfdt - Flat Device Tree manipulation 6 1.1 macallan * Copyright (C) 2006 David Gibson, IBM Corporation. 7 1.1 macallan * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 8 1.1 macallan */ 9 1.1 macallan #include "libfdt_env.h" 10 1.1 macallan 11 1.1 macallan #include <fdt.h> 12 1.1 macallan #include <libfdt.h> 13 1.1 macallan 14 1.1 macallan #include "libfdt_internal.h" 15 1.1 macallan 16 1.1 macallan struct fdt_errtabent { 17 1.1 macallan const char *str; 18 1.1 macallan }; 19 1.1 macallan 20 1.1 macallan #define FDT_ERRTABENT(val) \ 21 1.1 macallan [(val)] = { .str = #val, } 22 1.1 macallan 23 1.1 macallan static struct fdt_errtabent fdt_errtable[] = { 24 1.1 macallan FDT_ERRTABENT(FDT_ERR_NOTFOUND), 25 1.1 macallan FDT_ERRTABENT(FDT_ERR_EXISTS), 26 1.1 macallan FDT_ERRTABENT(FDT_ERR_NOSPACE), 27 1.1 macallan 28 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADOFFSET), 29 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADPATH), 30 1.1.1.2 skrll FDT_ERRTABENT(FDT_ERR_BADPHANDLE), 31 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADSTATE), 32 1.1 macallan 33 1.1 macallan FDT_ERRTABENT(FDT_ERR_TRUNCATED), 34 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADMAGIC), 35 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADVERSION), 36 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE), 37 1.1 macallan FDT_ERRTABENT(FDT_ERR_BADLAYOUT), 38 1.1.1.2 skrll FDT_ERRTABENT(FDT_ERR_INTERNAL), 39 1.1.1.2 skrll FDT_ERRTABENT(FDT_ERR_BADNCELLS), 40 1.1.1.2 skrll FDT_ERRTABENT(FDT_ERR_BADVALUE), 41 1.1.1.2 skrll FDT_ERRTABENT(FDT_ERR_BADOVERLAY), 42 1.1.1.2 skrll FDT_ERRTABENT(FDT_ERR_NOPHANDLES), 43 1.1.1.3 skrll FDT_ERRTABENT(FDT_ERR_BADFLAGS), 44 1.1 macallan }; 45 1.1 macallan #define FDT_ERRTABSIZE (sizeof(fdt_errtable) / sizeof(fdt_errtable[0])) 46 1.1 macallan 47 1.1 macallan const char *fdt_strerror(int errval) 48 1.1 macallan { 49 1.1 macallan if (errval > 0) 50 1.1 macallan return "<valid offset/length>"; 51 1.1 macallan else if (errval == 0) 52 1.1 macallan return "<no error>"; 53 1.1 macallan else if (errval > -FDT_ERRTABSIZE) { 54 1.1 macallan const char *s = fdt_errtable[-errval].str; 55 1.1 macallan 56 1.1 macallan if (s) 57 1.1 macallan return s; 58 1.1 macallan } 59 1.1 macallan 60 1.1 macallan return "<unknown error>"; 61 1.1 macallan } 62