// 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.

#define N SigNotify
#define K SigKill
#define T SigThrow
#define P SigPanic
#define E SigGoExit

// Incoming notes are compared against this table using strncmp, so the
// order matters: longer patterns must appear before their prefixes.
// There are #defined SIG constants in os_plan9.h 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 os_plan9.h.

SigTab runtime·sigtab[] = {
	// Traps that we cannot be recovered.
	T,	"sys: trap: debug exception",
	T,	"sys: trap: invalid opcode",

	// We can recover from some memory errors in runtime·sigpanic.
	P,	"sys: trap: fault read addr",	// SIGRFAULT
	P,	"sys: trap: fault write addr",	// SIGWFAULT

	// We can also recover from math errors.
	P,	"sys: trap: divide error",	// SIGINTDIV
	P,	"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.
	P,	"sys: trap:",	// SIGTRAP

	// Writes to a closed pipe can be handled if desired, otherwise they're ignored.
	N,	"sys: write on closed pipe",

	// Other system notes are more serious and cannot be recovered.
	T,	"sys:",

	// Issued to all other procs when calling runtime·exit.
	E,	"go: exit ",

	// Kill is sent by external programs to cause an exit.
	K,	"kill",

	// Interrupts can be handled if desired, otherwise they cause an exit.
	N+K,	"interrupt",
	N+K,	"hangup",

	// Alarms can be handled if desired, otherwise they're ignored.
	N,	"alarm",
};

#undef N
#undef K
#undef T
#undef P
#undef E
