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