Applied a patch from Alexander Deynichenko: added missing signal definitions.
That also includes some XSI signals, SIGPOLL and SIGVTALRM, dunno if we will every support those in a useful way. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14593 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
+10
-3
@@ -108,18 +108,25 @@ typedef struct stack_t {
|
|||||||
#define SIGUSR2 19 /* app defined signal 2 */
|
#define SIGUSR2 19 /* app defined signal 2 */
|
||||||
#define SIGWINCH 20 /* tty window size changed */
|
#define SIGWINCH 20 /* tty window size changed */
|
||||||
#define SIGKILLTHR 21 /* be specific: kill just the thread, not team */
|
#define SIGKILLTHR 21 /* be specific: kill just the thread, not team */
|
||||||
#define SIGTRAP 22
|
#define SIGTRAP 22 /* Trace/breakpoint trap */
|
||||||
|
#define SIGPOLL 23 /* Pollable event */
|
||||||
|
#define SIGPROF 24 /* Profiling timer expired */
|
||||||
|
#define SIGSYS 25 /* Bad system call */
|
||||||
|
#define SIGURG 26 /* High bandwidth data is available at socket */
|
||||||
|
#define SIGVTALRM 27 /* Virtual timer expired */
|
||||||
|
#define SIGXCPU 28 /* CPU time limit exceeded */
|
||||||
|
#define SIGXFSZ 29 /* File size limit exceeded */
|
||||||
|
|
||||||
#define SIGBUS SIGSEGV /* for old style code */
|
#define SIGBUS SIGSEGV /* for old style code */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Signal numbers 23-32 are currently free but may be used in future
|
* Signal numbers 30-32 are currently free but may be used in future
|
||||||
* releases. Use them at your own peril (if you do use them, at least
|
* releases. Use them at your own peril (if you do use them, at least
|
||||||
* be smart and use them backwards from signal 32).
|
* be smart and use them backwards from signal 32).
|
||||||
*/
|
*/
|
||||||
#define MAX_SIGNO 32 /* the most signals that a single thread can reference */
|
#define MAX_SIGNO 32 /* the most signals that a single thread can reference */
|
||||||
#define __signal_max 22 /* the largest signal number that is actually defined */
|
#define __signal_max 29 /* the largest signal number that is actually defined */
|
||||||
#define NSIG (__signal_max+1) /* the number of defined signals */
|
#define NSIG (__signal_max+1) /* the number of defined signals */
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,8 @@
|
|||||||
const char * const sigstr[NSIG] = {
|
const char * const sigstr[NSIG] = {
|
||||||
"NONE", "HUP", "INT", "QUIT", "ILL", "CHLD", "ABRT", "PIPE",
|
"NONE", "HUP", "INT", "QUIT", "ILL", "CHLD", "ABRT", "PIPE",
|
||||||
"FPE", "KILL", "STOP", "SEGV", "CONT", "TSTP", "ALRM", "TERM",
|
"FPE", "KILL", "STOP", "SEGV", "CONT", "TSTP", "ALRM", "TERM",
|
||||||
"TTIN", "TTOU", "USR1", "USR2", "WINCH", "KILLTHR", "TRAP"
|
"TTIN", "TTOU", "USR1", "USR2", "WINCH", "KILLTHR", "TRAP",
|
||||||
|
"POLL", "PROF", "SYS", "URG", "VTALRM", "XCPU", "XFSZ"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -127,6 +128,7 @@ handle_signals(struct thread *thread)
|
|||||||
case SIGTTIN:
|
case SIGTTIN:
|
||||||
case SIGTTOU:
|
case SIGTTOU:
|
||||||
case SIGCONT:
|
case SIGCONT:
|
||||||
|
case SIGURG:
|
||||||
// notify the debugger
|
// notify the debugger
|
||||||
if (debugSignal)
|
if (debugSignal)
|
||||||
notify_debugger(thread, signal, handler, false);
|
notify_debugger(thread, signal, handler, false);
|
||||||
@@ -148,6 +150,12 @@ handle_signals(struct thread *thread)
|
|||||||
case SIGABRT:
|
case SIGABRT:
|
||||||
case SIGFPE:
|
case SIGFPE:
|
||||||
case SIGSEGV:
|
case SIGSEGV:
|
||||||
|
case SIGPOLL:
|
||||||
|
case SIGPROF:
|
||||||
|
case SIGSYS:
|
||||||
|
case SIGVTALRM:
|
||||||
|
case SIGXCPU:
|
||||||
|
case SIGXFSZ:
|
||||||
TRACE(("Shutting down thread 0x%lx due to signal #%d\n",
|
TRACE(("Shutting down thread 0x%lx due to signal #%d\n",
|
||||||
thread->id, signal));
|
thread->id, signal));
|
||||||
case SIGKILL:
|
case SIGKILL:
|
||||||
|
|||||||
@@ -41,7 +41,15 @@ sys_siglist[NSIG] = {
|
|||||||
/* 19 - SIGUSR2 */ "User defined signal 2",
|
/* 19 - SIGUSR2 */ "User defined signal 2",
|
||||||
/* 20 - SIGWINCH */ "Window size changed",
|
/* 20 - SIGWINCH */ "Window size changed",
|
||||||
/* 21 - SIGKILLTHR */ "Kill Thread",
|
/* 21 - SIGKILLTHR */ "Kill Thread",
|
||||||
/* 22 - SIGTRAP */ NULL
|
/* 22 - SIGTRAP */ "Trace/breakpoint trap",
|
||||||
|
/* 23 - SIGPOLL */ "Pollable event",
|
||||||
|
/* 24 - SIGPROF */ "Profiling timer expired",
|
||||||
|
/* 25 - SIGSYS */ "Bad system call",
|
||||||
|
/* 26 - SIGURG */ "High bandwidth data is available at socket",
|
||||||
|
/* 27 - SIGVTALRM */ "Virtual timer expired",
|
||||||
|
/* 28 - SIGXCPU */ "CPU time limit exceeded",
|
||||||
|
/* 29 - SIGXFSZ */ "File size limit exceeded",
|
||||||
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user