From: Erik M. <er...@us...> - 2001-10-15 21:24:42
|
Update of /cvsroot/blob/blob/src/lib In directory usw-pr-cvs1:/tmp/cvs-serv12525/src/lib Modified Files: error.c Log Message: - add flash erase and program errors - simplify list with error strings Index: error.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/error.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- error.c 2001/10/07 21:28:57 1.3 +++ error.c 2001/10/15 21:24:39 1.4 @@ -33,25 +33,21 @@ #include <blob/types.h> -typedef struct { - int errno; - char *string; -} error_t; - - -static error_t errors[] = { - { ENOERROR, "no error" }, - { EINVAL, "invalid argument" }, - { ENOPARAMS, "not enough parameters" }, - { EMAGIC, "magic value failed" }, - { ECOMMAND, "invalid command" }, - { ENAN, "not a number" }, - { EALIGN, "alignment error" }, - { ERANGE, "out of range" }, - { ETIMEOUT, "timeout exceeded" }, - { ETOOSHORT, "short file" }, - { ETOOLONG, "long file" }, - { EAMBIGCMD, "ambiguous command" }, +static char *error_strings[] = { + "no error", /* ENOERROR */ + "invalid argument", /* EINVAL */ + "not enough parameters", /* ENOPARAMS */ + "magic value failed", /* EMAGIC */ + "invalid command", /* ECOMMAND */ + "not a number", /* ENAN */ + "alignment error", /* EALIGN */ + "out of range", /* ERANGE */ + "timeout exceeded", /* ETIMEOUT */ + "short file", /* ETOOSHORT */ + "long file", /* ETOOLONG */ + "ambiguous command", /* EAMBIGCMD */ + "can't erase flash block", /* EFLASHERASE */ + "flash program error", /* EFLASHPGM */ }; @@ -61,18 +57,16 @@ char *strerror(int errnum) { - int i; - int num = sizeof(errors) / sizeof(error_t); + int num = sizeof(error_strings) / sizeof(char*); /* make positive if it is negative */ if(errnum < 0) errnum = -errnum; - - for(i = 0; i < num; i++) - if(errors[i].errno == errnum) - return errors[i].string; - return unknown; + if(errnum >= num) + return unknown; + else + return error_strings[errnum]; } |