From ff8902ef1cf99259a64a4dd31e89ffccd2978ea7 Mon Sep 17 00:00:00 2001 From: Max Wash Date: Thu, 8 Jun 2023 20:46:20 +0100 Subject: [PATCH] kernel: add more status codes --- include/socks/status.h | 1 + kernel/status.c | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/socks/status.h b/include/socks/status.h index c65c0d8..363091e 100644 --- a/include/socks/status.h +++ b/include/socks/status.h @@ -12,6 +12,7 @@ typedef unsigned int kern_status_t; #define KERN_NO_ENTRY (6) #define KERN_WOULD_BLOCK (7) #define KERN_BUSY (8) +#define KERN_NO_DEVICE (9) extern const char *kern_status_string(kern_status_t status); diff --git a/kernel/status.c b/kernel/status.c index 489f18e..d2cf6b7 100644 --- a/kernel/status.c +++ b/kernel/status.c @@ -1,22 +1,22 @@ #include +#define ERROR_STRING_CASE(code) \ + case code: \ + return #code + const char *kern_status_string(kern_status_t status) { switch (status) { - case KERN_OK: - return "KERN_OK"; - case KERN_UNIMPLEMENTED: - return "KERN_UNIMPLEMENTED"; - case KERN_NAME_EXISTS: - return "KERN_NAME_EXISTS"; - case KERN_INVALID_ARGUMENT: - return "KERN_INVALID_ARGUMENT"; - case KERN_UNSUPPORTED: - return "KERN_UNSUPPORTED"; - case KERN_NO_MEMORY: - return "KERN_NO_MEMORY"; - case KERN_NO_ENTRY: - return "KERN_NO_ENTRY"; + ERROR_STRING_CASE(KERN_OK); + ERROR_STRING_CASE(KERN_UNIMPLEMENTED); + ERROR_STRING_CASE(KERN_NAME_EXISTS); + ERROR_STRING_CASE(KERN_INVALID_ARGUMENT); + ERROR_STRING_CASE(KERN_UNSUPPORTED); + ERROR_STRING_CASE(KERN_NO_MEMORY); + ERROR_STRING_CASE(KERN_NO_ENTRY); + ERROR_STRING_CASE(KERN_WOULD_BLOCK); + ERROR_STRING_CASE(KERN_BUSY); + ERROR_STRING_CASE(KERN_NO_DEVICE); default: return "UNKNOWN"; }