32 lines
939 B
Perl
Executable File
32 lines
939 B
Perl
Executable File
#!/usr/bin/perl
|
|
# SPDX-License-Identifier: MIT
|
|
#
|
|
# proc_stat_signal_decode - read /proc/stat signal status
|
|
# written by Jan Engelhardt, 2007
|
|
|
|
use strict;
|
|
my @signame = qw(HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE
|
|
ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM
|
|
PROF WINCH IO PWR SYS RTMIN RTMIN+1 RTMIN+2 RTMIN+3 RTMIN+4 RTMIN+5
|
|
RTMIN+6 RTMIN+7 RTMIN+8 RTMIN+9 RTMIN+10 RTMIN+11 RTMIN+12 RTMIN+13
|
|
RTMIN+14 RTMIN+15 RTMAX-14 RTMAX-13 RTMAX-12 RTMAX-11 RTMAX-10 RTMAX-9
|
|
RTMAX-8 RTMAX-7 RTMAX-6 RTMAX-5 RTMAX-4 RTMAX-3 RTMAX-2 RTMAX-1 RTMAX);
|
|
|
|
while (<>) {
|
|
s/^((?:Sig|Shd)\w+\s*:\s*)(\w{8})(\w{8})/"$1".&names($3, $2)/eg;
|
|
print;
|
|
}
|
|
|
|
sub names {
|
|
my $mask_lo = eval "0x".shift(@_);
|
|
my $mask_hi = eval "0x".shift(@_);
|
|
my $ret;
|
|
|
|
for (my $signal_num = 1; $signal_num <= 32; ++$signal_num) {
|
|
if ($mask_lo & (1 << ($signal_num - 1))) {
|
|
$ret .= $signame[$signal_num-1]." ";
|
|
}
|
|
}
|
|
return $ret;
|
|
}
|