X-Git-Url: https://rtime.felk.cvut.cz/gitweb/l4.git/blobdiff_plain/8fe9942cde59835eb3c3c6936d866dd3305582ef:/l4/pkg/l4sys/lib/src/errtostr.c..003b628647705666de261350195da72a38f2c4d2:/l4/pkg/l4re-core/l4sys/lib/src/errtostr.c?ds=sidebyside diff --git a/l4/pkg/l4sys/lib/src/errtostr.c b/l4/pkg/l4re-core/l4sys/lib/src/errtostr.c similarity index 84% rename from l4/pkg/l4sys/lib/src/errtostr.c rename to l4/pkg/l4re-core/l4sys/lib/src/errtostr.c index ae56987f6..d1fffe90f 100644 --- a/l4/pkg/l4sys/lib/src/errtostr.c +++ b/l4/pkg/l4re-core/l4sys/lib/src/errtostr.c @@ -58,13 +58,25 @@ static char const *const _l4sys_ipc_errortab[L4_EIPC_HI - L4_EIPC_LO] = { [L4_IPC_REMAPFAILED] = "Map operation failed (receive phase)" }; +static char const *const _l4sys_ipc_errortab2[] = { + [L4_ENOREPLY - 1000] = "Do not reply", + [L4_EMSGTOOSHORT - 1000] = "Message too short", + [L4_EMSGTOOLONG - 1000] = "Message too long", + [L4_EMSGMISSARG - 1000] = "Message is missing (an) argument(s)", +}; + L4_CV char const *l4sys_errtostr(long err) { + static_assert(L4_ENOREPLY == 1000, "L4_ENOREPLY value change"); + static_assert(L4_EMSGMISSARG == 1003, "L4_EMSGMISSARG value change"); + err = -err; if (err >= 0 && err < L4_ERRNOMAX) return _l4sys_errortab[err]; else if (err >= L4_EIPC_LO && err < L4_EIPC_HI) - return _l4sys_ipc_errortab[err-L4_EIPC_LO]; + return _l4sys_ipc_errortab[err - L4_EIPC_LO]; + else if (err >= L4_ENOREPLY && err <= L4_EMSGMISSARG) + return _l4sys_ipc_errortab2[err - 1000]; else return "bad, unknown runtime error"; }