From 7eb20457ff3d80cc81d54204ffd2c9edaf991905 Mon Sep 17 00:00:00 2001 From: Nicholas Noll Date: Wed, 17 Nov 2021 17:38:58 -0800 Subject: automated platform specific code parsing --- sys/src/errormsg.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 sys/src/errormsg.c (limited to 'sys/src/errormsg.c') diff --git a/sys/src/errormsg.c b/sys/src/errormsg.c new file mode 100644 index 0000000..e1d4b73 --- /dev/null +++ b/sys/src/errormsg.c @@ -0,0 +1,26 @@ +#include "internal.h" + +static const struct ErrorMessage { +#define E(n, s) char str##n[sizeof(s)]; +#include "errno.inc.h" +#undef E +} errormsg = { +#define E(n, s) s, +#include "errno.inc.h" +#undef E +}; + +static const ushort errmsgidx[] = { +#define E(n, s) [n] = offsetof(struct ErrorMessage, str##n), +#include "errno.inc.h" +#undef E +}; + +char * +sys·errormsg(int errno) +{ + if(errno >= arrlen(errmsgidx)) + errno=0; + + return (char*)(&errormsg + errmsgidx[errno]); +} -- cgit v1.2.1