struct sig_table {
   	char* name;
   	char* desc;
	int   ssr_catch;
	void  (*ssr)(...);
	int   ssr_mode;

};
struct sig_table signals[] = {
 { "BADSIG",   "Signal 0 not defined",						0, 0, 0 },
 { "SIGHUP",   "Hangup",									1, 0, 0 },
 { "SIGINT",   "Interrupt (rubout)",						1, 0, 0 },
 { "SIGQUIT",  "Quit (ASCII FS)" ,							0, 0, 0 },
 { "SIGILL",   "Illegal instruction (not reset when caught" ,	0, 0, 0 },
 { "SIGTRAP",  "Trace trap (not reset when caught)" ,			0, 0, 0 },
 { "SIGIOT/SIGABRT",   "IOT instruction/Abort" ,				0, 0, 0 },
 { "SIGEMT",   "EMT instruction", 							0, 0, 0 },
 { "SIGFPE",   "Floating point exception",					0, 0, 0 },
 { "SIGKILL",  "Kill (cannot be caught or ignored)" ,			0, 0, 0 },
 { "SIGBUS",   "Bus error" ,								0, 0, 0 },
 { "SIGSEGV",  "Segmentation violation" ,					0, 0, 0 },
 { "SIGSYS",   "Bad argument to system call" ,				0, 0, 0 },
 { "SIGPIPE",  "Write on a pipe with no one to read it",		1, 0, 0 },
 { "SIGALRM",  "Alarm clock",								1, 0, 0 },
 { "SIGTERM",  "Software termination signal from kill" ,		1, 0, 0 },
 { "SIGUSR1",  "User defined signal 1" ,					1, 0, 0 },
 { "SIGUSR2",  "User defined signal 2" ,					1, 0, 0 },
 { "SIGCLD",   "Death of a child" ,						1, 0, 0 },
 { "SIGPWR",   "Power-fail restart" ,						0, 0, 0 },
 { "SIGWINCH", "Window change" ,							1, 0, 0 },
 { "SIGPHONE", "Handset, line status change" ,				1, 0, 0 },
 { "SIGPOLL",  "Pollable event occured", 					1, 0, 0 }
};
