mksiginfos revision 1.2
1#!/bin/sh - 2# $NetBSD: mksiginfos,v 1.2 2003/11/13 05:52:12 matt Exp $ 3# 4# Copyright (c) 2003 The NetBSD Foundation, Inc. 5# All rights reserved. 6# 7# This code is derived from software contributed to The NetBSD Foundation 8# by Christos Zoulas. 9# 10# Redistribution and use in source and binary forms, with or without 11# modification, are permitted provided that the following conditions 12# are met: 13# 1. Redistributions of source code must retain the above copyright 14# notice, this list of conditions and the following disclaimer. 15# 2. Redistributions in binary form must reproduce the above copyright 16# notice, this list of conditions and the following disclaimer in the 17# documentation and/or other materials provided with the distribution. 18# 3. All advertising materials mentioning features or use of this software 19# must display the following acknowledgement: 20# This product includes software developed by the NetBSD 21# Foundation, Inc. and its contributors. 22# 4. Neither the name of The NetBSD Foundation nor the names of its 23# contributors may be used to endorse or promote products derived 24# from this software without specific prior written permission. 25# 26# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 27# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 28# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 29# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 30# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36# POSSIBILITY OF SUCH DAMAGE. 37 38# allow AWK to be overriden 39awk=${AWK:-awk} 40 41$awk ' 42BEGIN { 43 print "/* Automatically generated file; do not edit */"; 44 print "#include <stdio.h>"; 45 print "#include <signal.h>"; 46 print "#ifndef SIGCLD"; 47 print "#define SIGCLD SIGCHLD"; 48 print "#endif /* SIGCLD */"; 49 print "#ifndef SIGPOLL"; 50 print "#define SIGPOLL SIGIO"; 51 print "#endif /* SIGPOLL */"; 52 print "const char *siginfocodename(int signo, int code);\n"; 53 print "static char number[64];\n"; 54 print "const char *siginfocodename(int signo, int code) {\n"; 55} 56/^#[ ]*define[ ]*(ILL|FPE|SEGV|BUS|TRAP|CLD)_[A-Z]*[ ]*/ { 57 58 # find where the name starts 59 for (i = 1; i <= NF; i++) 60 if ($i ~ /define/) 61 break; 62 ++i; 63 split($i, sig, "_"); 64 printf("\tif (signo == SIG%s && code == %s)\n\t\treturn \"%s\";\n", 65 sig[1], $i, $i); 66} 67END { 68 print "\n\tsnprintf(number, sizeof(number), \"%d\", code);\n"; 69 print "\n\treturn NULL;" 70 print "}"; 71} 72' $DESTDIR/usr/include/sys/siginfo.h 73