// Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package runtime type sigTabT struct { flags int name string } // Incoming notes are compared against this table using strncmp, so the // order matters: longer patterns must appear before their prefixes. // There are _SIG constants in os2_plan9.go for the table index of some // of these. // // If you add entries to this table, you must respect the prefix ordering // and also update the constant values is os2_plan9.go. var sigtable = [...]sigTabT{ // Traps that we cannot be recovered. {_SigThrow, "sys: trap: debug exception"}, {_SigThrow, "sys: trap: invalid opcode"}, // We can recover from some memory errors in runtime·sigpanic. {_SigPanic, "sys: trap: fault read"}, // SIGRFAULT {_SigPanic, "sys: trap: fault write"}, // SIGWFAULT // We can also recover from math errors. {_SigPanic, "sys: trap: divide error"}, // SIGINTDIV {_SigPanic, "sys: fp:"}, // SIGFLOAT // All other traps are normally handled as if they were marked SigThrow. // We mark them SigPanic here so that debug.SetPanicOnFault will work. {_SigPanic, "sys: trap:"}, // SIGTRAP // Writes to a closed pipe can be handled if desired, otherwise they're ignored. {_SigNotify, "sys: write on closed pipe"}, // Other system notes are more serious and cannot be recovered. {_SigThrow, "sys:"}, // Issued to all other procs when calling runtime·exit. {_SigGoExit, "go: exit "}, // Kill is sent by external programs to cause an exit. {_SigKill, "kill"}, // Interrupts can be handled if desired, otherwise they cause an exit. {_SigNotify + _SigKill, "interrupt"}, {_SigNotify + _SigKill, "hangup"}, // Alarms can be handled if desired, otherwise they're ignored. {_SigNotify, "alarm"}, // Aborts can be handled if desired, otherwise they cause a stack trace. {_SigNotify + _SigThrow, "abort"}, }