mksiginfos revision 1.2
11.1Schristos#!/bin/sh - 21.2Smatt# $NetBSD: mksiginfos,v 1.2 2003/11/13 05:52:12 matt Exp $ 31.1Schristos# 41.1Schristos# Copyright (c) 2003 The NetBSD Foundation, Inc. 51.1Schristos# All rights reserved. 61.1Schristos# 71.1Schristos# This code is derived from software contributed to The NetBSD Foundation 81.1Schristos# by Christos Zoulas. 91.1Schristos# 101.1Schristos# Redistribution and use in source and binary forms, with or without 111.1Schristos# modification, are permitted provided that the following conditions 121.1Schristos# are met: 131.1Schristos# 1. Redistributions of source code must retain the above copyright 141.1Schristos# notice, this list of conditions and the following disclaimer. 151.1Schristos# 2. Redistributions in binary form must reproduce the above copyright 161.1Schristos# notice, this list of conditions and the following disclaimer in the 171.1Schristos# documentation and/or other materials provided with the distribution. 181.1Schristos# 3. All advertising materials mentioning features or use of this software 191.1Schristos# must display the following acknowledgement: 201.1Schristos# This product includes software developed by the NetBSD 211.1Schristos# Foundation, Inc. and its contributors. 221.1Schristos# 4. Neither the name of The NetBSD Foundation nor the names of its 231.1Schristos# contributors may be used to endorse or promote products derived 241.1Schristos# from this software without specific prior written permission. 251.1Schristos# 261.1Schristos# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 271.1Schristos# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 281.1Schristos# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 291.1Schristos# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 301.1Schristos# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 311.1Schristos# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 321.1Schristos# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 331.1Schristos# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 341.1Schristos# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 351.1Schristos# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 361.1Schristos# POSSIBILITY OF SUCH DAMAGE. 371.1Schristos 381.2Smatt# allow AWK to be overriden 391.2Smattawk=${AWK:-awk} 401.2Smatt 411.2Smatt$awk ' 421.1SchristosBEGIN { 431.1Schristos print "/* Automatically generated file; do not edit */"; 441.1Schristos print "#include <stdio.h>"; 451.1Schristos print "#include <signal.h>"; 461.1Schristos print "#ifndef SIGCLD"; 471.1Schristos print "#define SIGCLD SIGCHLD"; 481.1Schristos print "#endif /* SIGCLD */"; 491.1Schristos print "#ifndef SIGPOLL"; 501.1Schristos print "#define SIGPOLL SIGIO"; 511.1Schristos print "#endif /* SIGPOLL */"; 521.1Schristos print "const char *siginfocodename(int signo, int code);\n"; 531.1Schristos print "static char number[64];\n"; 541.1Schristos print "const char *siginfocodename(int signo, int code) {\n"; 551.1Schristos} 561.1Schristos/^#[ ]*define[ ]*(ILL|FPE|SEGV|BUS|TRAP|CLD)_[A-Z]*[ ]*/ { 571.1Schristos 581.1Schristos # find where the name starts 591.1Schristos for (i = 1; i <= NF; i++) 601.1Schristos if ($i ~ /define/) 611.1Schristos break; 621.1Schristos ++i; 631.1Schristos split($i, sig, "_"); 641.1Schristos printf("\tif (signo == SIG%s && code == %s)\n\t\treturn \"%s\";\n", 651.1Schristos sig[1], $i, $i); 661.1Schristos} 671.1SchristosEND { 681.1Schristos print "\n\tsnprintf(number, sizeof(number), \"%d\", code);\n"; 691.1Schristos print "\n\treturn NULL;" 701.1Schristos print "}"; 711.1Schristos} 721.1Schristos' $DESTDIR/usr/include/sys/siginfo.h 73