1e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes#!/usr/bin/awk -f 2e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# This file is part of ltrace. 3e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# Copyright (C) 1999 Juan Cespedes 4e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# 5e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# This program is free software; you can redistribute it and/or 6e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# modify it under the terms of the GNU General Public License as 7e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# published by the Free Software Foundation; either version 2 of the 8e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# License, or (at your option) any later version. 9e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# 10e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# This program is distributed in the hope that it will be useful, but 11e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# WITHOUT ANY WARRANTY; without even the implied warranty of 12e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# General Public License for more details. 14e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# 15e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# You should have received a copy of the GNU General Public License 16e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# along with this program; if not, write to the Free Software 17e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 18e99af270a60891e68d465c4cd97dbe29cd1a05e4Petr Machata# 02110-1301 USA 19e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes 20e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes# hack expression to generate arch/signalent.h from <asm/signal.h> 21e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes# It reads from stdin and writes to stdout 22e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes 23e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan CespedesBEGIN { 24e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes max=0; 25e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes} 26e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes 27e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes{ 28e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes if (($1 ~ /^#define$/) && (!SIGNAL[$3]) && ($2 ~ /^SIG[A-Z]/) \ 29e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes && ($2 !~ /^SIGRTMIN$/) && ($2 !~ /^SIGRTMAX$/) && ($2 !~ /^SIGSTKSZ$/) \ 30e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes && ($3>=0) && ($3<=1000)) { 31e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes SIGNAL[$3]=$2; 32e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes if ($3 > max) { 33e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes max=$3; 34e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes } 35e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes } 36e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes} 37e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes 38e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan CespedesEND { 39e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes for(i=0; i<=max; i++) { 40e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes if (!SIGNAL[i]) { 41e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes SIGNAL[i] = "SIG_" i; 42e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes } 43e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes pad = 16 - length(SIGNAL[i]); 44e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes if (pad<1) { 45e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes pad=1; 46e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes } 47e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes printf("\t\"%s\",%*s/* %d */\n", SIGNAL[i], pad, "", i); 48e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes } 49e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes} 50e3eb9aa37086f16c0c8c2778dcd8020a39a92564Juan Cespedes 51