root/scripts/dtc/libfdt/fdt_strerror.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. fdt_strerror

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

/* [<][>][^][v][top][bottom][index][help] */