summaryrefslogtreecommitdiffstats
path: root/contrib/top/sigconv.awk
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/top/sigconv.awk')
-rw-r--r--contrib/top/sigconv.awk53
1 files changed, 53 insertions, 0 deletions
diff --git a/contrib/top/sigconv.awk b/contrib/top/sigconv.awk
new file mode 100644
index 0000000..8c90d8d
--- /dev/null
+++ b/contrib/top/sigconv.awk
@@ -0,0 +1,53 @@
+BEGIN {
+ nsig = 0;
+ j = 0;
+ print "/* This file was automatically generated */"
+ print "/* by the awk script \"sigconv.awk\". */\n"
+ print "struct sigdesc {"
+ print " char *name;"
+ print " int number;"
+ print "};\n"
+ print "struct sigdesc sigdesc[] = {"
+ }
+
+/^#define[ \t][ \t]*SIG[A-Z]/ {
+
+ j = sprintf("%d", $3);
+ str = $2;
+
+ if (nsig < j)
+ nsig = j;
+
+ siglist[j] = sprintf("\"%s\",\t%2d,", \
+ substr(str, 4), j);
+ }
+/^#[ \t]*define[ \t][ \t]*SIG[A-Z]/ {
+
+ j = sprintf("%d", $4);
+ str = $3;
+
+ if (nsig < j)
+ nsig = j;
+
+ siglist[j] = sprintf("\"%s\",\t%2d,", \
+ substr(str, 4), j);
+ }
+/^#[ \t]*define[ \t][ \t]*_SIG[A-Z]/ {
+
+ j = sprintf("%d", $4);
+ str = $3;
+
+ if (nsig < j)
+ nsig = j;
+
+ siglist[j] = sprintf("\"%s\",\t%2d,", \
+ substr(str, 5), j);
+ }
+
+END {
+ for (n = 1; n <= nsig; n++)
+ if (siglist[n] != "")
+ printf(" %s\n", siglist[n]);
+
+ printf(" NULL,\t 0\n};\n");
+ }
OpenPOWER on IntegriCloud