summaryrefslogtreecommitdiff
path: root/libc/error/mktab.sh
diff options
context:
space:
mode:
Diffstat (limited to 'libc/error/mktab.sh')
-rw-r--r--libc/error/mktab.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/libc/error/mktab.sh b/libc/error/mktab.sh
new file mode 100644
index 0000000..b5afcc4
--- /dev/null
+++ b/libc/error/mktab.sh
@@ -0,0 +1,25 @@
+#!/bin/sh -
+
+awk '{
+ e=$0;
+ sub("^[^ ]* ", "", e);
+ sub(" [^ ]*$", "", e);
+ n=0+$1;
+ if (!(n in errlist))
+ errlist[n] = e;
+ if(n > maxerr) maxerr=n;
+}
+END{
+ printf ("#define NR_ERRORS\t%d\n", maxerr+1);
+ printf ("int sys_nerr = NR_ERRORS;\n");
+ printf ("char *sys_errlist[NR_ERRORS] = {\n");
+
+ for(i=0; i<=maxerr; i++) {
+ if (errlist[i] == "")
+ printf(" \"Error %d\"", i);
+ else
+ printf(" \"%s\"", errlist[i]);
+ if (i != maxerr) printf(",\n"); else printf("\n");
+ }
+ printf ("};\n");
+}' < liberror.txt > error_list.h