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

// +build mips mipsle mips64 mips64le
// +build linux

package runtime

var sigtable = [...]sigTabT{
	/*  0 */ {0, "SIGNONE: no trap"},
	/*  1 */ {_SigNotify + _SigKill, "SIGHUP: terminal line hangup"},
	/*  2 */ {_SigNotify + _SigKill, "SIGINT: interrupt"},
	/*  3 */ {_SigNotify + _SigThrow, "SIGQUIT: quit"},
	/*  4 */ {_SigThrow + _SigUnblock, "SIGILL: illegal instruction"},
	/*  5 */ {_SigThrow + _SigUnblock, "SIGTRAP: trace trap"},
	/*  6 */ {_SigNotify + _SigThrow, "SIGABRT: abort"},
	/*  7 */ {_SigThrow, "SIGEMT"},
	/*  8 */ {_SigPanic + _SigUnblock, "SIGFPE: floating-point exception"},
	/*  9 */ {0, "SIGKILL: kill"},
	/*  10 */ {_SigPanic + _SigUnblock, "SIGBUS: bus error"},
	/*  11 */ {_SigPanic + _SigUnblock, "SIGSEGV: segmentation violation"},
	/*  12 */ {_SigThrow, "SIGSYS: bad system call"},
	/*  13 */ {_SigNotify, "SIGPIPE: write to broken pipe"},
	/*  14 */ {_SigNotify, "SIGALRM: alarm clock"},
	/*  15 */ {_SigNotify + _SigKill, "SIGTERM: termination"},
	/*  16 */ {_SigNotify, "SIGUSR1: user-defined signal 1"},
	/*  17 */ {_SigNotify, "SIGUSR2: user-defined signal 2"},
	/*  18 */ {_SigNotify + _SigUnblock + _SigIgn, "SIGCHLD: child status has changed"},
	/*  19 */ {_SigNotify, "SIGPWR: power failure restart"},
	/*  20 */ {_SigNotify + _SigIgn, "SIGWINCH: window size change"},
	/*  21 */ {_SigNotify + _SigIgn, "SIGURG: urgent condition on socket"},
	/*  22 */ {_SigNotify, "SIGIO: i/o now possible"},
	/*  23 */ {0, "SIGSTOP: stop, unblockable"},
	/*  24 */ {_SigNotify + _SigDefault + _SigIgn, "SIGTSTP: keyboard stop"},
	/*  25 */ {_SigNotify + _SigDefault + _SigIgn, "SIGCONT: continue"},
	/*  26 */ {_SigNotify + _SigDefault + _SigIgn, "SIGTTIN: background read from tty"},
	/*  27 */ {_SigNotify + _SigDefault + _SigIgn, "SIGTTOU: background write to tty"},
	/*  28 */ {_SigNotify, "SIGVTALRM: virtual alarm clock"},
	/*  29 */ {_SigNotify + _SigUnblock, "SIGPROF: profiling alarm clock"},
	/*  30 */ {_SigNotify, "SIGXCPU: cpu limit exceeded"},
	/*  31 */ {_SigNotify, "SIGXFSZ: file size limit exceeded"},
	/*  32 */ {_SigSetStack + _SigUnblock, "signal 32"}, /* SIGCANCEL; see issue 6997 */
	/*  33 */ {_SigSetStack + _SigUnblock, "signal 33"}, /* SIGSETXID; see issues 3871, 9400, 12498 */
	/*  34 */ {_SigSetStack + _SigUnblock, "signal 34"}, /* musl SIGSYNCCALL; see issue 39343 */
	/*  35 */ {_SigNotify, "signal 35"},
	/*  36 */ {_SigNotify, "signal 36"},
	/*  37 */ {_SigNotify, "signal 37"},
	/*  38 */ {_SigNotify, "signal 38"},
	/*  39 */ {_SigNotify, "signal 39"},
	/*  40 */ {_SigNotify, "signal 40"},
	/*  41 */ {_SigNotify, "signal 41"},
	/*  42 */ {_SigNotify, "signal 42"},
	/*  43 */ {_SigNotify, "signal 43"},
	/*  44 */ {_SigNotify, "signal 44"},
	/*  45 */ {_SigNotify, "signal 45"},
	/*  46 */ {_SigNotify, "signal 46"},
	/*  47 */ {_SigNotify, "signal 47"},
	/*  48 */ {_SigNotify, "signal 48"},
	/*  49 */ {_SigNotify, "signal 49"},
	/*  50 */ {_SigNotify, "signal 50"},
	/*  51 */ {_SigNotify, "signal 51"},
	/*  52 */ {_SigNotify, "signal 52"},
	/*  53 */ {_SigNotify, "signal 53"},
	/*  54 */ {_SigNotify, "signal 54"},
	/*  55 */ {_SigNotify, "signal 55"},
	/*  56 */ {_SigNotify, "signal 56"},
	/*  57 */ {_SigNotify, "signal 57"},
	/*  58 */ {_SigNotify, "signal 58"},
	/*  59 */ {_SigNotify, "signal 59"},
	/*  60 */ {_SigNotify, "signal 60"},
	/*  61 */ {_SigNotify, "signal 61"},
	/*  62 */ {_SigNotify, "signal 62"},
	/*  63 */ {_SigNotify, "signal 63"},
	/*  64 */ {_SigNotify, "signal 64"},
	/*  65 */ {_SigNotify, "signal 65"},
	/*  66 */ {_SigNotify, "signal 66"},
	/*  67 */ {_SigNotify, "signal 67"},
	/*  68 */ {_SigNotify, "signal 68"},
	/*  69 */ {_SigNotify, "signal 69"},
	/*  70 */ {_SigNotify, "signal 70"},
	/*  71 */ {_SigNotify, "signal 71"},
	/*  72 */ {_SigNotify, "signal 72"},
	/*  73 */ {_SigNotify, "signal 73"},
	/*  74 */ {_SigNotify, "signal 74"},
	/*  75 */ {_SigNotify, "signal 75"},
	/*  76 */ {_SigNotify, "signal 76"},
	/*  77 */ {_SigNotify, "signal 77"},
	/*  78 */ {_SigNotify, "signal 78"},
	/*  79 */ {_SigNotify, "signal 79"},
	/*  80 */ {_SigNotify, "signal 80"},
	/*  81 */ {_SigNotify, "signal 81"},
	/*  82 */ {_SigNotify, "signal 82"},
	/*  83 */ {_SigNotify, "signal 83"},
	/*  84 */ {_SigNotify, "signal 84"},
	/*  85 */ {_SigNotify, "signal 85"},
	/*  86 */ {_SigNotify, "signal 86"},
	/*  87 */ {_SigNotify, "signal 87"},
	/*  88 */ {_SigNotify, "signal 88"},
	/*  89 */ {_SigNotify, "signal 89"},
	/*  90 */ {_SigNotify, "signal 90"},
	/*  91 */ {_SigNotify, "signal 91"},
	/*  92 */ {_SigNotify, "signal 92"},
	/*  93 */ {_SigNotify, "signal 93"},
	/*  94 */ {_SigNotify, "signal 94"},
	/*  95 */ {_SigNotify, "signal 95"},
	/*  96 */ {_SigNotify, "signal 96"},
	/*  97 */ {_SigNotify, "signal 97"},
	/*  98 */ {_SigNotify, "signal 98"},
	/*  99 */ {_SigNotify, "signal 99"},
	/* 100 */ {_SigNotify, "signal 100"},
	/* 101 */ {_SigNotify, "signal 101"},
	/* 102 */ {_SigNotify, "signal 102"},
	/* 103 */ {_SigNotify, "signal 103"},
	/* 104 */ {_SigNotify, "signal 104"},
	/* 105 */ {_SigNotify, "signal 105"},
	/* 106 */ {_SigNotify, "signal 106"},
	/* 107 */ {_SigNotify, "signal 107"},
	/* 108 */ {_SigNotify, "signal 108"},
	/* 109 */ {_SigNotify, "signal 109"},
	/* 110 */ {_SigNotify, "signal 110"},
	/* 111 */ {_SigNotify, "signal 111"},
	/* 112 */ {_SigNotify, "signal 112"},
	/* 113 */ {_SigNotify, "signal 113"},
	/* 114 */ {_SigNotify, "signal 114"},
	/* 115 */ {_SigNotify, "signal 115"},
	/* 116 */ {_SigNotify, "signal 116"},
	/* 117 */ {_SigNotify, "signal 117"},
	/* 118 */ {_SigNotify, "signal 118"},
	/* 119 */ {_SigNotify, "signal 119"},
	/* 120 */ {_SigNotify, "signal 120"},
	/* 121 */ {_SigNotify, "signal 121"},
	/* 122 */ {_SigNotify, "signal 122"},
	/* 123 */ {_SigNotify, "signal 123"},
	/* 124 */ {_SigNotify, "signal 124"},
	/* 125 */ {_SigNotify, "signal 125"},
	/* 126 */ {_SigNotify, "signal 126"},
	/* 127 */ {_SigNotify, "signal 127"},
	/* 128 */ {_SigNotify, "signal 128"},
}
