mksiginfos revision 1.1
1#!/bin/sh - 2# $NetBSD: mksiginfos,v 1.1 2003/09/19 22:49:02 christos 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 38awk ' 39BEGIN { 40 print "/* Automatically generated file; do not edit */"; 41 print "#include <stdio.h>"; 42 print "#include <signal.h>"; 43 print "#ifndef SIGCLD"; 44 print "#define SIGCLD SIGCHLD"; 45 print "#endif /* SIGCLD */"; 46 print "#ifndef SIGPOLL"; 47 print "#define SIGPOLL SIGIO"; 48 print "#endif /* SIGPOLL */"; 49 print "const char *siginfocodename(int signo, int code);\n"; 50 print "static char number[64];\n"; 51 print "const char *siginfocodename(int signo, int code) {\n"; 52} 53/^#[ ]*define[ ]*(ILL|FPE|SEGV|BUS|TRAP|CLD)_[A-Z]*[ ]*/ { 54 55 # find where the name starts 56 for (i = 1; i <= NF; i++) 57 if ($i ~ /define/) 58 break; 59 ++i; 60 split($i, sig, "_"); 61 printf("\tif (signo == SIG%s && code == %s)\n\t\treturn \"%s\";\n", 62 sig[1], $i, $i); 63} 64END { 65 print "\n\tsnprintf(number, sizeof(number), \"%d\", code);\n"; 66 print "\n\treturn NULL;" 67 print "}"; 68} 69' $DESTDIR/usr/include/sys/siginfo.h 70