diff options
Diffstat (limited to 'kern/error.c')
-rw-r--r-- | kern/error.c | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/kern/error.c b/kern/error.c index 3e50149f..f448b4d9 100644 --- a/kern/error.c +++ b/kern/error.c @@ -18,32 +18,33 @@ #include <kern/error.h> #include <kern/panic.h> -void -error_check(int error, const char *prefix) +const char * +error_str(int error) { - const char *msg; - switch (error) { case 0: - return; + return "success"; case ERROR_NOMEM: - msg = "out of memory"; - break; + return "out of memory"; case ERROR_AGAIN: - msg = "resource temporarily unavailable"; - break; + return "resource temporarily unavailable"; case ERROR_INVAL: - msg = "invalid argument"; - break; + return "invalid argument"; case ERROR_BUSY: - msg = "device or resource busy"; - break; + return "device or resource busy"; default: - msg = "unknown error"; + return "unknown error"; } +} + +void +error_check(int error, const char *prefix) +{ + if (!error) + return; panic("%s%s%s", (prefix == NULL) ? "" : prefix, (prefix == NULL) ? "" : ": ", - msg); + error_str(error)); } |