]> rtime.felk.cvut.cz Git - l4.git/blobdiff - l4/pkg/l4re-core/l4sys/lib/src/errtostr.c
Update
[l4.git] / 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 ae56987f6728297ea3b6e5cd747a2c2a6d2db9d0..d1fffe90fc10d96cec064dc0b61e6cefe1aabd1d 100644 (file)
@@ -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";
 }