@@ -57,12 +57,14 @@ void LinuxSignals::Reset() {
57
57
58
58
AddSignal (5 , " SIGTRAP" , true , true , true , " trace trap (not reset when caught)" );
59
59
AddSignal (6 , " SIGABRT" , false , true , true , " abort()/IOT trap" , " SIGIOT" );
60
-
60
+ #if defined (__mips__)
61
+ AddSignal (7 , " SIGEMT" , false , true , true , " emulator trap" );
62
+ #else
61
63
AddSignal (7 , " SIGBUS" , false , true , true , " bus error" );
62
64
ADD_SIGCODE (SIGBUS, 7 , BUS_ADRALN, 1 , " illegal alignment" );
63
65
ADD_SIGCODE (SIGBUS, 7 , BUS_ADRERR, 2 , " illegal address" );
64
66
ADD_SIGCODE (SIGBUS, 7 , BUS_OBJERR, 3 , " hardware error" );
65
-
67
+ # endif
66
68
AddSignal (8 , " SIGFPE" , false , true , true , " floating point exception" );
67
69
ADD_SIGCODE (SIGFPE, 8 , FPE_INTDIV, 1 , " integer divide by zero" );
68
70
ADD_SIGCODE (SIGFPE, 8 , FPE_INTOVF, 2 , " integer overflow" );
@@ -74,8 +76,14 @@ void LinuxSignals::Reset() {
74
76
ADD_SIGCODE (SIGFPE, 8 , FPE_FLTSUB, 8 , " subscript out of range" );
75
77
76
78
AddSignal (9 , " SIGKILL" , false , true , true , " kill" );
79
+ #if defined (__mips__)
80
+ AddSignal (10 , " SIGBUS" , false , true , true , " bus error" );
81
+ ADD_SIGCODE (SIGBUS, 10 , BUS_ADRALN, 1 , " illegal alignment" );
82
+ ADD_SIGCODE (SIGBUS, 10 , BUS_ADRERR, 2 , " illegal address" );
83
+ ADD_SIGCODE (SIGBUS, 10 , BUS_OBJERR, 3 , " hardware error" );
84
+ #else
77
85
AddSignal (10 , " SIGUSR1" , false , true , true , " user defined signal 1" );
78
-
86
+ # endif
79
87
AddSignal (11 , " SIGSEGV" , false , true , true , " segmentation violation" );
80
88
ADD_SIGCODE (SIGSEGV, 11 , SEGV_MAPERR, 1 , " address not mapped to object" , SignalCodePrintOption::Address);
81
89
ADD_SIGCODE (SIGSEGV, 11 , SEGV_ACCERR, 2 , " invalid permissions for mapped object" , SignalCodePrintOption::Address);
@@ -85,11 +93,32 @@ void LinuxSignals::Reset() {
85
93
// Some platforms will occasionally send nonstandard spurious SI_KERNEL
86
94
// codes. One way to get this is via unaligned SIMD loads. Treat it as invalid address.
87
95
ADD_SIGCODE (SIGSEGV, 11 , SI_KERNEL, 0x80 , " invalid address" , SignalCodePrintOption::Address);
88
-
96
+ #if defined (__mips__)
97
+ AddSignal (12 , " SIGSYS" , false , true , true , " invalid system call" );
98
+ #else
89
99
AddSignal (12 , " SIGUSR2" , false , true , true , " user defined signal 2" );
100
+ #endif
90
101
AddSignal (13 , " SIGPIPE" , false , true , true , " write to pipe with reading end closed" );
91
102
AddSignal (14 , " SIGALRM" , false , false , false , " alarm" );
92
103
AddSignal (15 , " SIGTERM" , false , true , true , " termination requested" );
104
+ #if defined (__mips__)
105
+ AddSignal (16 , " SIGUSR1" , false , true , true , " user defined signal 1" );
106
+ AddSignal (17 , " SIGUSR2" , false , true , true , " user defined signal 2" );
107
+ AddSignal (18 , " SIGCHLD" , false , false , true , " child status has changed" , " SIGCLD" );
108
+ AddSignal (19 , " SIGPWR" , false , true , true , " power failure" );
109
+ AddSignal (20 , " SIGWINCH" , false , true , true , " window size changes" );
110
+ AddSignal (21 , " SIGURG" , false , true , true , " urgent data on socket" );
111
+ AddSignal (22 , " SIGIO" , false , true , true , " input/output ready/Pollable event" , " SIGPOLL" );
112
+ AddSignal (23 , " SIGSTOP" , true , true , true , " process stop" );
113
+ AddSignal (24 , " SIGTSTP" , false , true , true , " tty stop" );
114
+ AddSignal (25 , " SIGCONT" , false , false , true , " process continue" );
115
+ AddSignal (26 , " SIGTTIN" , false , true , true , " background tty read" );
116
+ AddSignal (27 , " SIGTTOU" , false , true , true , " background tty write" );
117
+ AddSignal (28 , " SIGVTALRM" , false , true , true , " virtual time alarm" );
118
+ AddSignal (29 , " SIGPROF" , false , false , false , " profiling time alarm" );
119
+ AddSignal (30 , " SIGXCPU" , false , true , true , " CPU resource exceeded" );
120
+ AddSignal (31 , " SIGXFSZ" , false , true , true , " file size limit exceeded" );
121
+ #else
93
122
AddSignal (16 , " SIGSTKFLT" , false , true , true , " stack fault" );
94
123
AddSignal (17 , " SIGCHLD" , false , false , true , " child status has changed" , " SIGCLD" );
95
124
AddSignal (18 , " SIGCONT" , false , false , true , " process continue" );
@@ -106,6 +135,7 @@ void LinuxSignals::Reset() {
106
135
AddSignal (29 , " SIGIO" , false , true , true , " input/output ready/Pollable event" , " SIGPOLL" );
107
136
AddSignal (30 , " SIGPWR" , false , true , true , " power failure" );
108
137
AddSignal (31 , " SIGSYS" , false , true , true , " invalid system call" );
138
+ #endif
109
139
AddSignal (32 , " SIG32" , false , false , false , " threading library internal signal 1" );
110
140
AddSignal (33 , " SIG33" , false , false , false , " threading library internal signal 2" );
111
141
AddSignal (34 , " SIGRTMIN" , false , false , false , " real time signal 0" );
0 commit comments