X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=geekos%2Fscripts%2Fgenerrs;fp=geekos%2Fscripts%2Fgenerrs;h=1b76e819282af33f849f56f7c58745680a0f5776;hp=0000000000000000000000000000000000000000;hb=ddc16b0737cf58f7aa90a69c6652cdf4090aec51;hpb=626595465a2c6987606a6bc697df65130ad8c2d3 diff --git a/geekos/scripts/generrs b/geekos/scripts/generrs new file mode 100755 index 0000000..1b76e81 --- /dev/null +++ b/geekos/scripts/generrs @@ -0,0 +1,28 @@ +#! /usr/bin/perl + +# Script to process include/geekos/errno.h to produce a table +# of error description strings that can be compiled and +# linked into libc. + +use strict qw(refs vars); + +my @errs = (); +my @syms = (); + +$errs[0] = 'No error'; + +while (<>) { + if (m,^#define\s*(\S+)\s*(-\d+)\s*/\*\s*(.*\S)\s*\*/\s*$,) { + $errs[- $2] = $3; + $syms[- $2] = $1; + } +} + +print "const char *__strerrTable[] = {\n"; +for (my $i = 0; $i < scalar(@errs); $i++) { + print " \"", $errs[$i], "\", /* ", $syms[$i], " */\n"; +} +print "};\n"; +print "const int __strerrTableSize = sizeof(__strerrTable) / sizeof(const char *);\n"; + +# vim:ts=4