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];
}
|