fdt_strerror.c revision 1.1.1.3 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