fdt_strerror.c revision 9537
13395Shsul@eecs.umich.edu/* 23395Shsul@eecs.umich.edu * libfdt - Flat Device Tree manipulation 33395Shsul@eecs.umich.edu * Copyright (C) 2006 David Gibson, IBM Corporation. 43395Shsul@eecs.umich.edu * 53395Shsul@eecs.umich.edu * Redistribution and use in source and binary forms, with or 63395Shsul@eecs.umich.edu * without modification, are permitted provided that the following 73395Shsul@eecs.umich.edu * conditions are met: 83395Shsul@eecs.umich.edu * 93395Shsul@eecs.umich.edu * 1. Redistributions of source code must retain the above 103395Shsul@eecs.umich.edu * copyright notice, this list of conditions and the following 113395Shsul@eecs.umich.edu * disclaimer. 123395Shsul@eecs.umich.edu * 2. Redistributions in binary form must reproduce the above 133395Shsul@eecs.umich.edu * copyright notice, this list of conditions and the following 143395Shsul@eecs.umich.edu * disclaimer in the documentation and/or other materials 153395Shsul@eecs.umich.edu * provided with the distribution. 163395Shsul@eecs.umich.edu * 173395Shsul@eecs.umich.edu * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 183395Shsul@eecs.umich.edu * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, 193395Shsul@eecs.umich.edu * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 203395Shsul@eecs.umich.edu * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 213395Shsul@eecs.umich.edu * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 223395Shsul@eecs.umich.edu * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 233395Shsul@eecs.umich.edu * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 243395Shsul@eecs.umich.edu * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 253395Shsul@eecs.umich.edu * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 263395Shsul@eecs.umich.edu * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 273395Shsul@eecs.umich.edu * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 283395Shsul@eecs.umich.edu * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 293395Shsul@eecs.umich.edu * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 303395Shsul@eecs.umich.edu */ 313395Shsul@eecs.umich.edu#include <fdt.h> 323395Shsul@eecs.umich.edu#include <libfdt.h> 333395Shsul@eecs.umich.edu 343395Shsul@eecs.umich.edu#include "libfdt_env.h" 353395Shsul@eecs.umich.edu#include "libfdt_internal.h" 363395Shsul@eecs.umich.edu 373395Shsul@eecs.umich.edustruct fdt_errtabent { 383395Shsul@eecs.umich.edu const char *str; 393395Shsul@eecs.umich.edu}; 403395Shsul@eecs.umich.edu 413395Shsul@eecs.umich.edu#define FDT_ERRTABENT(val) \ 423395Shsul@eecs.umich.edu [(val)] = { .str = #val, } 433395Shsul@eecs.umich.edu 443395Shsul@eecs.umich.edustatic struct fdt_errtabent fdt_errtable[] = { 453395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_NOTFOUND), 463395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_EXISTS), 473395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_NOSPACE), 483395Shsul@eecs.umich.edu 493395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADOFFSET), 503395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADPATH), 513395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADSTATE), 523395Shsul@eecs.umich.edu 533395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_TRUNCATED), 543395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADMAGIC), 553395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADVERSION), 563395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADSTRUCTURE), 573395Shsul@eecs.umich.edu FDT_ERRTABENT(FDT_ERR_BADLAYOUT), 58}; 59#define FDT_ERRTABSIZE (sizeof(fdt_errtable) / sizeof(fdt_errtable[0])) 60 61const char *fdt_strerror(int errval) 62{ 63 if (errval > 0) 64 return "<valid offset/length>"; 65 else if (errval == 0) 66 return "<no error>"; 67 else if (errval > -FDT_ERRTABSIZE) { 68 const char *s = fdt_errtable[-errval].str; 69 70 if (s) 71 return s; 72 } 73 74 return "<unknown error>"; 75} 76