cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

fdt_strerror.c (1485B)


      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
     14struct fdt_errtabent {
     15	const char *str;
     16};
     17
     18#define FDT_ERRTABENT(val) \
     19	[(val)] = { .str = #val, }
     20
     21static 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	FDT_ERRTABENT(FDT_ERR_ALIGNMENT),
     43};
     44#define FDT_ERRTABSIZE	((int)(sizeof(fdt_errtable) / sizeof(fdt_errtable[0])))
     45
     46const char *fdt_strerror(int errval)
     47{
     48	if (errval > 0)
     49		return "<valid offset/length>";
     50	else if (errval == 0)
     51		return "<no error>";
     52	else if (-errval < FDT_ERRTABSIZE) {
     53		const char *s = fdt_errtable[-errval].str;
     54
     55		if (s)
     56			return s;
     57	}
     58
     59	return "<unknown error>";
     60}