Module Name: src
Committed By: pooka
Date: Wed Dec 18 20:10:58 UTC 2013
Modified Files:
src/sys/rump/include/rump: makerumpdefs.sh
Log Message:
generate errno -> str routine (for portable programs)
To generate a diff of this commit:
cvs rdiff -u -r1.24 -r1.25 src/sys/rump/include/rump/makerumpdefs.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/rump/include/rump/makerumpdefs.sh
diff -u src/sys/rump/include/rump/makerumpdefs.sh:1.24 src/sys/rump/include/rump/makerumpdefs.sh:1.25
--- src/sys/rump/include/rump/makerumpdefs.sh:1.24 Wed Dec 11 23:13:48 2013
+++ src/sys/rump/include/rump/makerumpdefs.sh Wed Dec 18 20:10:58 2013
@@ -6,9 +6,9 @@
echo Generating rumpdefs.h
rm -f rumpdefs.h
-exec > rumpdefs.h
+exec 3>&1 > rumpdefs.h
-printf '/* $NetBSD: makerumpdefs.sh,v 1.24 2013/12/11 23:13:48 pooka Exp $ */\n\n'
+printf '/* $NetBSD: makerumpdefs.sh,v 1.25 2013/12/18 20:10:58 pooka Exp $ */\n\n'
printf '/*\n *\tAUTOMATICALLY GENERATED. DO NOT EDIT.\n */\n\n'
printf '#ifndef _RUMP_RUMPDEFS_H_\n'
printf '#define _RUMP_RUMPDEFS_H_\n\n'
@@ -123,3 +123,48 @@ fromvers ../../../sys/dirent.h
getstruct ../../../sys/dirent.h dirent
printf '\n#endif /* _RUMP_RUMPDEFS_H_ */\n'
+
+exec 1>&3
+echo Generating rumperr.h
+rm -f rumperr.h
+exec > rumperr.h
+
+printf '/* $NetBSD: makerumpdefs.sh,v 1.25 2013/12/18 20:10:58 pooka Exp $ */\n\n'
+printf '/*\n *\tAUTOMATICALLY GENERATED. DO NOT EDIT.\n */\n'
+
+fromvers ../../../sys/errno.h
+
+printf "\nstatic inline const char *\nrump_strerror(int error)\n{\n\n"
+printf "\tswitch (error) {\n\tcase 0:\n"
+printf "\t\t return \"No error: zero, zip, zilch, none!\";\n"
+awk '/^#define[ ]*E.*[0-9]/{
+ ename = $2
+ evalue = $3
+ error = 1
+ if (ename == "ELAST") {
+ printf "\tdefault:\n"
+ printf "\t\treturn \"Invalid error!\";\n\t}\n}\n"
+ error = 0
+ exit 0
+ }
+ if (preverror + 1 != evalue)
+ exit 1
+ preverror = evalue
+ printf "\tcase %d: /* (%s) */\n\t\treturn \"", evalue, ename
+ sp = ""
+ for (i = 5; i < NF; i++) {
+ printf "%s%s", sp, $i
+ sp = " "
+ }
+ printf "\";\n"
+}
+END {
+ exit error
+}' < ../../../sys/errno.h
+if [ $? -ne 0 ]; then
+ echo 'Parsing errno.h failed!' 1>&3
+ rm -f rumpdefs.h rumperr.h
+ exit 1
+fi
+
+exit 0