// Copyright 2014 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 D SigDefault

SigTab runtime·sigtab[] = {
	/* 0 */		0, "SIGNONE: no trap",
	/* 1 */		N+K, "SIGHUP: hangup",
	/* 2 */		N+K, "SIGINT: interrupt (rubout)",
	/* 3 */		N+T, "SIGQUIT: quit (ASCII FS)",
	/* 4 */		T, "SIGILL: illegal instruction (not reset when caught)",
	/* 5 */		T, "SIGTRAP: trace trap (not reset when caught)",
	/* 6 */		N+T, "SIGABRT: used by abort, replace SIGIOT in the future",
	/* 7 */		T, "SIGEMT: EMT instruction",
	/* 8 */		P, "SIGFPE: floating point exception",
	/* 9 */		0, "SIGKILL: kill (cannot be caught or ignored)",
	/* 10 */	P, "SIGBUS: bus error",
	/* 11 */	P, "SIGSEGV: segmentation violation",
	/* 12 */	T, "SIGSYS: bad argument to system call",
	/* 13 */	N, "SIGPIPE: write on a pipe with no one to read it",
	/* 14 */	N, "SIGALRM: alarm clock",
	/* 15 */	N+K, "SIGTERM: software termination signal from kill",
	/* 16 */	N, "SIGUSR1: user defined signal 1",
	/* 17 */	N, "SIGUSR2: user defined signal 2",
	/* 18 */	N, "SIGCLD: child status change",
	/* 18 */	N, "SIGCHLD: child status change alias (POSIX)",
	/* 19 */	N, "SIGPWR: power-fail restart",
	/* 20 */	N, "SIGWINCH: window size change",
	/* 21 */	N, "SIGURG: urgent socket condition",
	/* 22 */	N, "SIGPOLL: pollable event occured",
	/* 23 */	N+D, "SIGSTOP: stop (cannot be caught or ignored)",
	/* 24 */	0, "SIGTSTP: user stop requested from tty",
	/* 25 */	0, "SIGCONT: stopped process has been continued",
	/* 26 */	N+D, "SIGTTIN: background tty read attempted",
	/* 27 */	N+D, "SIGTTOU: background tty write attempted",
	/* 28 */	N, "SIGVTALRM: virtual timer expired",
	/* 29 */	N, "SIGPROF: profiling timer expired",
	/* 30 */	N, "SIGXCPU: exceeded cpu limit",
	/* 31 */	N, "SIGXFSZ: exceeded file size limit",
	/* 32 */	N, "SIGWAITING: reserved signal no longer used by",
	/* 33 */	N, "SIGLWP: reserved signal no longer used by",
	/* 34 */	N, "SIGFREEZE: special signal used by CPR",
	/* 35 */	N, "SIGTHAW: special signal used by CPR",
	/* 36 */	0, "SIGCANCEL: reserved signal for thread cancellation",
	/* 37 */	N, "SIGLOST: resource lost (eg, record-lock lost)",
	/* 38 */	N, "SIGXRES: resource control exceeded",
	/* 39 */	N, "SIGJVM1: reserved signal for Java Virtual Machine",
	/* 40 */	N, "SIGJVM2: reserved signal for Java Virtual Machine",

	/* TODO(aram): what should be do about these signals? D or N? is this set static? */
	/* 41 */	N, "real time signal",
	/* 42 */	N, "real time signal",
	/* 43 */	N, "real time signal",
	/* 44 */	N, "real time signal",
	/* 45 */	N, "real time signal",
	/* 46 */	N, "real time signal",
	/* 47 */	N, "real time signal",
	/* 48 */	N, "real time signal",
	/* 49 */	N, "real time signal",
	/* 50 */	N, "real time signal",
	/* 51 */	N, "real time signal",
	/* 52 */	N, "real time signal",
	/* 53 */	N, "real time signal",
	/* 54 */	N, "real time signal",
	/* 55 */	N, "real time signal",
	/* 56 */	N, "real time signal",
	/* 57 */	N, "real time signal",
	/* 58 */	N, "real time signal",
	/* 59 */	N, "real time signal",
	/* 60 */	N, "real time signal",
	/* 61 */	N, "real time signal",
	/* 62 */	N, "real time signal",
	/* 63 */	N, "real time signal",
	/* 64 */	N, "real time signal",
	/* 65 */	N, "real time signal",
	/* 66 */	N, "real time signal",
	/* 67 */	N, "real time signal",
	/* 68 */	N, "real time signal",
	/* 69 */	N, "real time signal",
	/* 70 */	N, "real time signal",
	/* 71 */	N, "real time signal",
	/* 72 */	N, "real time signal",
};

#undef N
#undef K
#undef T
#undef P
#undef D
