11.1Schristos#!/bin/sh - 21.6Sandvar# $NetBSD: mksiginfos,v 1.6 2021/09/11 20:28:06 andvar 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# 191.1Schristos# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 201.1Schristos# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 211.1Schristos# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 221.1Schristos# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 231.1Schristos# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 241.1Schristos# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 251.1Schristos# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 261.1Schristos# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 271.1Schristos# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 281.1Schristos# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 291.1Schristos# POSSIBILITY OF SUCH DAMAGE. 301.1Schristos 311.6Sandvar# allow AWK to be overridden 321.5Sapb: ${AWK:=awk} 331.2Smatt 341.5Sapb$AWK ' 351.1SchristosBEGIN { 361.1Schristos print "/* Automatically generated file; do not edit */"; 371.1Schristos print "#include <stdio.h>"; 381.1Schristos print "#include <signal.h>"; 391.1Schristos print "#ifndef SIGCLD"; 401.1Schristos print "#define SIGCLD SIGCHLD"; 411.1Schristos print "#endif /* SIGCLD */"; 421.1Schristos print "#ifndef SIGPOLL"; 431.1Schristos print "#define SIGPOLL SIGIO"; 441.1Schristos print "#endif /* SIGPOLL */"; 451.1Schristos print "const char *siginfocodename(int signo, int code);\n"; 461.1Schristos print "static char number[64];\n"; 471.1Schristos print "const char *siginfocodename(int signo, int code) {\n"; 481.1Schristos} 491.1Schristos/^#[ ]*define[ ]*(ILL|FPE|SEGV|BUS|TRAP|CLD)_[A-Z]*[ ]*/ { 501.1Schristos 511.1Schristos # find where the name starts 521.1Schristos for (i = 1; i <= NF; i++) 531.1Schristos if ($i ~ /define/) 541.1Schristos break; 551.1Schristos ++i; 561.1Schristos split($i, sig, "_"); 571.1Schristos printf("\tif (signo == SIG%s && code == %s)\n\t\treturn \"%s\";\n", 581.1Schristos sig[1], $i, $i); 591.1Schristos} 601.1SchristosEND { 611.4Schristos print "\n\tsnprintf(number, sizeof(number), \"[%d]\", code);\n"; 621.4Schristos print "\n\treturn number;" 631.1Schristos print "}"; 641.1Schristos} 651.1Schristos' $DESTDIR/usr/include/sys/siginfo.h 66