am e1fcd666: Merge "[MIPS] Extend Signal Mapping to include RT Signals."
* commit 'e1fcd666e12d0cdc92495116f134aba9fed937e1': [MIPS] Extend Signal Mapping to include RT Signals.
This commit is contained in:
@@ -94,6 +94,40 @@ __hidden char *map_portable_signum_to_name(int portable_signum)
|
|||||||
case SIGPWR_PORTABLE: name = "SIGPWR_PORTABLE:30"; break;
|
case SIGPWR_PORTABLE: name = "SIGPWR_PORTABLE:30"; break;
|
||||||
case SIGSYS_PORTABLE: name = "SIGSYS_PORTABLE:31"; break;
|
case SIGSYS_PORTABLE: name = "SIGSYS_PORTABLE:31"; break;
|
||||||
case SIGRTMIN_PORTABLE: name = "SIGRTMIN_PORTABLE:32"; break;
|
case SIGRTMIN_PORTABLE: name = "SIGRTMIN_PORTABLE:32"; break;
|
||||||
|
|
||||||
|
case SIGRT_1_PORTABLE: name = "SIGRT_1_PORTABLE:33"; break;
|
||||||
|
case SIGRT_2_PORTABLE: name = "SIGRT_2_PORTABLE:34"; break;
|
||||||
|
case SIGRT_3_PORTABLE: name = "SIGRT_3_PORTABLE:35"; break;
|
||||||
|
case SIGRT_4_PORTABLE: name = "SIGRT_4_PORTABLE:36"; break;
|
||||||
|
case SIGRT_5_PORTABLE: name = "SIGRT_5_PORTABLE:37"; break;
|
||||||
|
case SIGRT_6_PORTABLE: name = "SIGRT_6_PORTABLE:38"; break;
|
||||||
|
case SIGRT_7_PORTABLE: name = "SIGRT_7_PORTABLE:39"; break;
|
||||||
|
case SIGRT_8_PORTABLE: name = "SIGRT_8_PORTABLE:40"; break;
|
||||||
|
case SIGRT_9_PORTABLE: name = "SIGRT_9_PORTABLE:41"; break;
|
||||||
|
case SIGRT_10_PORTABLE: name = "SIGRT_10_PORTABLE:42"; break;
|
||||||
|
case SIGRT_11_PORTABLE: name = "SIGRT_11_PORTABLE:43"; break;
|
||||||
|
case SIGRT_12_PORTABLE: name = "SIGRT_12_PORTABLE:44"; break;
|
||||||
|
case SIGRT_13_PORTABLE: name = "SIGRT_13_PORTABLE:45"; break;
|
||||||
|
case SIGRT_14_PORTABLE: name = "SIGRT_14_PORTABLE:46"; break;
|
||||||
|
case SIGRT_15_PORTABLE: name = "SIGRT_15_PORTABLE:47"; break;
|
||||||
|
case SIGRT_16_PORTABLE: name = "SIGRT_16_PORTABLE:48"; break;
|
||||||
|
case SIGRT_17_PORTABLE: name = "SIGRT_17_PORTABLE:49"; break;
|
||||||
|
case SIGRT_18_PORTABLE: name = "SIGRT_18_PORTABLE:50"; break;
|
||||||
|
case SIGRT_19_PORTABLE: name = "SIGRT_19_PORTABLE:51"; break;
|
||||||
|
case SIGRT_20_PORTABLE: name = "SIGRT_20_PORTABLE:52"; break;
|
||||||
|
case SIGRT_21_PORTABLE: name = "SIGRT_21_PORTABLE:53"; break;
|
||||||
|
case SIGRT_22_PORTABLE: name = "SIGRT_22_PORTABLE:54"; break;
|
||||||
|
case SIGRT_23_PORTABLE: name = "SIGRT_23_PORTABLE:55"; break;
|
||||||
|
case SIGRT_24_PORTABLE: name = "SIGRT_24_PORTABLE:56"; break;
|
||||||
|
case SIGRT_25_PORTABLE: name = "SIGRT_25_PORTABLE:57"; break;
|
||||||
|
case SIGRT_26_PORTABLE: name = "SIGRT_26_PORTABLE:58"; break;
|
||||||
|
case SIGRT_27_PORTABLE: name = "SIGRT_27_PORTABLE:59"; break;
|
||||||
|
case SIGRT_28_PORTABLE: name = "SIGRT_28_PORTABLE:60"; break;
|
||||||
|
case SIGRT_29_PORTABLE: name = "SIGRT_29_PORTABLE:61"; break;
|
||||||
|
case SIGRT_30_PORTABLE: name = "SIGRT_30_PORTABLE:62"; break;
|
||||||
|
case SIGRT_31_PORTABLE: name = "SIGRT_31_PORTABLE:63"; break;
|
||||||
|
case SIGRTMAX_PORTABLE: name = "SIGRTMAX_PORTABLE:64"; break;
|
||||||
|
|
||||||
default: name = "<<UNKNOWN>>"; break;
|
default: name = "<<UNKNOWN>>"; break;
|
||||||
}
|
}
|
||||||
return name;
|
return name;
|
||||||
@@ -138,6 +172,42 @@ __hidden char *map_mips_signum_to_name(int mips_signum)
|
|||||||
case SIGXFSZ: name = "SIGXFSZ:31"; break;
|
case SIGXFSZ: name = "SIGXFSZ:31"; break;
|
||||||
|
|
||||||
case SIGRTMIN: name = "SIGRTMIN:32"; break;
|
case SIGRTMIN: name = "SIGRTMIN:32"; break;
|
||||||
|
case SIGRT_1: name = "SIGRT_1:33"; break;
|
||||||
|
case SIGRT_2: name = "SIGRT_2:34"; break;
|
||||||
|
case SIGRT_3: name = "SIGRT_3:35"; break;
|
||||||
|
case SIGRT_4: name = "SIGRT_4:36"; break;
|
||||||
|
case SIGRT_5: name = "SIGRT_5:37"; break;
|
||||||
|
case SIGRT_6: name = "SIGRT_6:38"; break;
|
||||||
|
case SIGRT_7: name = "SIGRT_7:39"; break;
|
||||||
|
case SIGRT_8: name = "SIGRT_8:40"; break;
|
||||||
|
case SIGRT_9: name = "SIGRT_9:41"; break;
|
||||||
|
case SIGRT_10: name = "SIGRT_10:42"; break;
|
||||||
|
case SIGRT_11: name = "SIGRT_11:43"; break;
|
||||||
|
case SIGRT_12: name = "SIGRT_12:44"; break;
|
||||||
|
case SIGRT_13: name = "SIGRT_13:45"; break;
|
||||||
|
case SIGRT_14: name = "SIGRT_14:46"; break;
|
||||||
|
case SIGRT_15: name = "SIGRT_15:47"; break;
|
||||||
|
case SIGRT_16: name = "SIGRT_16:48"; break;
|
||||||
|
case SIGRT_17: name = "SIGRT_17:49"; break;
|
||||||
|
case SIGRT_18: name = "SIGRT_18:50"; break;
|
||||||
|
case SIGRT_19: name = "SIGRT_19:51"; break;
|
||||||
|
case SIGRT_20: name = "SIGRT_20:52"; break;
|
||||||
|
case SIGRT_21: name = "SIGRT_21:53"; break;
|
||||||
|
case SIGRT_22: name = "SIGRT_22:54"; break;
|
||||||
|
case SIGRT_23: name = "SIGRT_23:55"; break;
|
||||||
|
case SIGRT_24: name = "SIGRT_24:56"; break;
|
||||||
|
case SIGRT_25: name = "SIGRT_25:57"; break;
|
||||||
|
case SIGRT_26: name = "SIGRT_26:58"; break;
|
||||||
|
case SIGRT_27: name = "SIGRT_27:59"; break;
|
||||||
|
case SIGRT_28: name = "SIGRT_28:60"; break;
|
||||||
|
case SIGRT_29: name = "SIGRT_29:61"; break;
|
||||||
|
case SIGRT_30: name = "SIGRT_30:62"; break;
|
||||||
|
case SIGRT_31: name = "SIGRT_31:63"; break;
|
||||||
|
case SIGRT_32: name = "SIGRT_32:64"; break;
|
||||||
|
|
||||||
|
/* NOTE: SIGRT_33...SIGRTMAX-1 Not printed */
|
||||||
|
|
||||||
|
case SIGRTMAX: name = "SIGRTMAX:128"; break;
|
||||||
default: name = "<<UNKNOWN>>"; break;
|
default: name = "<<UNKNOWN>>"; break;
|
||||||
}
|
}
|
||||||
return name;
|
return name;
|
||||||
@@ -204,8 +274,8 @@ __hidden int signum_pton(int portable_signum)
|
|||||||
case SIGCHLD_PORTABLE: /* 17 --> 18 */
|
case SIGCHLD_PORTABLE: /* 17 --> 18 */
|
||||||
return SIGCHLD;
|
return SIGCHLD;
|
||||||
|
|
||||||
case SIGCONT_PORTABLE:
|
case SIGCONT_PORTABLE: /* 18 --> 25 */
|
||||||
return SIGCONT; /* 18 --> 25 */
|
return SIGCONT;
|
||||||
|
|
||||||
case SIGSTOP_PORTABLE: /* 19 --> 23 */
|
case SIGSTOP_PORTABLE: /* 19 --> 23 */
|
||||||
return SIGSTOP;
|
return SIGSTOP;
|
||||||
@@ -245,9 +315,14 @@ __hidden int signum_pton(int portable_signum)
|
|||||||
|
|
||||||
case SIGSYS_PORTABLE: /* 31 --> 12 */
|
case SIGSYS_PORTABLE: /* 31 --> 12 */
|
||||||
return SIGSYS;
|
return SIGSYS;
|
||||||
|
/*
|
||||||
case SIGRTMIN_PORTABLE: /* 32 */
|
* Mapping lower 32 Real Time signals to identical Native signal numbers.
|
||||||
return SIGRTMIN;
|
* NOTE: SIGRTMAX_PORTABLE == 64 but SIGRTMAX == 128.
|
||||||
|
*/
|
||||||
|
case SIGRTMIN_PORTABLE...SIGRTMAX_PORTABLE: /* 32 ... 64 */
|
||||||
|
ASSERT(SIGRTMIN_PORTABLE == SIGRTMIN);
|
||||||
|
ASSERT(SIGRTMAX_PORTABLE <= SIGRTMAX);
|
||||||
|
return portable_signum;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ALOGE("%s: switch default: NOTE portable_signum:%d Not supported. Just a Test?",
|
ALOGE("%s: switch default: NOTE portable_signum:%d Not supported. Just a Test?",
|
||||||
@@ -381,8 +456,31 @@ __hidden int signum_ntop(int mips_signum)
|
|||||||
case SIGSYS: /* 31 <-- 12 */
|
case SIGSYS: /* 31 <-- 12 */
|
||||||
return SIGSYS_PORTABLE;
|
return SIGSYS_PORTABLE;
|
||||||
|
|
||||||
case SIGRTMIN: /* 32 */
|
/*
|
||||||
return SIGRTMIN_PORTABLE;
|
* Mapping lower 32 Real Time signals to identical Portable signal numbers.
|
||||||
|
* NOTE: SIGRTMAX_PORTABLE == 64 but SIGRTMAX == 128.
|
||||||
|
*/
|
||||||
|
case SIGRTMIN...SIGRTMAX_PORTABLE: /* 32 ... 64 */
|
||||||
|
ASSERT(SIGRTMIN == SIGRTMIN_PORTABLE);
|
||||||
|
ASSERT(SIGRTMAX >= SIGRTMAX_PORTABLE);
|
||||||
|
return mips_signum;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Mapping upper 63 Native Real Time signals to the last Portable signal number.
|
||||||
|
* Shouldn't even be possible to be using these signals.
|
||||||
|
*/
|
||||||
|
case (SIGRTMAX_PORTABLE+1)...SIGRTMAX: /* 65 ... 128 */
|
||||||
|
ASSERT(SIGRTMIN == SIGRTMIN_PORTABLE);
|
||||||
|
ASSERT(SIGRTMAX >= SIGRTMAX_PORTABLE);
|
||||||
|
|
||||||
|
ALOGE("%s: mips_signum:%d Can't be mapped to a unique portable signal;", __func__,
|
||||||
|
mips_signum);
|
||||||
|
|
||||||
|
ALOGE("%s: Mapping highest 63 Real Time Signals to the largest RT Portable SigNo.",
|
||||||
|
__func__);
|
||||||
|
|
||||||
|
return SIGRTMAX_PORTABLE;
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ALOGE("%s: switch default: mips_signum:%d Not supported! return(0);", __func__,
|
ALOGE("%s: switch default: mips_signum:%d Not supported! return(0);", __func__,
|
||||||
@@ -455,7 +553,7 @@ static void siginfo_ntop(siginfo_t *native_sip, siginfo_portable_t *portable_sip
|
|||||||
* to have our own handler to map the MIPS signal number to a
|
* to have our own handler to map the MIPS signal number to a
|
||||||
* portable signal number.
|
* portable signal number.
|
||||||
*/
|
*/
|
||||||
sig3handler_portable_t mips_portable_sighandler[NSIG_PORTABLE] = { NULL };
|
static sig3handler_portable_t mips_portable_sighandler[NSIG_PORTABLE + 1] = { NULL };
|
||||||
|
|
||||||
static void mips_sigaction_handler(int mips_signum, siginfo_t *sip, void *ucp)
|
static void mips_sigaction_handler(int mips_signum, siginfo_t *sip, void *ucp)
|
||||||
{
|
{
|
||||||
@@ -475,10 +573,20 @@ static void mips_sigaction_handler(int mips_signum, siginfo_t *sip, void *ucp)
|
|||||||
portable_signame = map_portable_signum_to_name(portable_signum);
|
portable_signame = map_portable_signum_to_name(portable_signum);
|
||||||
portable_sighandler = mips_portable_sighandler[portable_signum];
|
portable_sighandler = mips_portable_sighandler[portable_signum];
|
||||||
|
|
||||||
|
if (invalid_pointer(portable_sighandler)) {
|
||||||
|
/*
|
||||||
|
* If a portable/ARM application tries to set signals in the signal mask > 32
|
||||||
|
* it results in a signal_handler being set to -1:SIG_ERR. Calling a function
|
||||||
|
* at location -1 doesn't produce very informative Android backtraces on MIPS.
|
||||||
|
*/
|
||||||
|
ALOGE("%s: invalid_pointer(portable_sighandler:%p); Likely about to Trap or Bus Error!",
|
||||||
|
__func__, portable_sighandler);
|
||||||
|
|
||||||
|
ALOGE("%s: HINT: Likely best to use gdbserver and look at sigaction arguments.", __func__);
|
||||||
|
}
|
||||||
ASSERT(portable_sighandler != NULL);
|
ASSERT(portable_sighandler != NULL);
|
||||||
ASSERT(portable_sighandler != (sig3handler_portable_t) SIG_DFL);
|
ASSERT(portable_sighandler != (sig3handler_portable_t) SIG_DFL);
|
||||||
ASSERT(portable_sighandler != (sig3handler_portable_t) SIG_IGN);
|
ASSERT(portable_sighandler != (sig3handler_portable_t) SIG_IGN);
|
||||||
ASSERT(portable_sighandler != (sig3handler_portable_t) SIG_ERR);
|
|
||||||
|
|
||||||
if (sip == NULL) {
|
if (sip == NULL) {
|
||||||
portable_sip = NULL;
|
portable_sip = NULL;
|
||||||
@@ -524,20 +632,29 @@ static sighandler_t sighandler_pton(sighandler_portable_t portable_handler, int
|
|||||||
switch((int) portable_handler) {
|
switch((int) portable_handler) {
|
||||||
case (int) SIG_DFL:
|
case (int) SIG_DFL:
|
||||||
case (int) SIG_IGN:
|
case (int) SIG_IGN:
|
||||||
case (int) SIG_ERR:
|
|
||||||
mips_handler = portable_handler;
|
mips_handler = portable_handler;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default: /* NOTE: Includes SIG_ERR:-1 */
|
||||||
|
if (invalid_pointer(portable_handler)) {
|
||||||
|
/*
|
||||||
|
* Calling sigaction() with a bogus signal handler doesn't fail,
|
||||||
|
* so we let the portable cases fail later as the native case would.
|
||||||
|
*/
|
||||||
|
ALOGE("%s: invalid_pointer(portable_handler:%p)!", __func__, portable_handler);
|
||||||
|
ALOGE("%s: HINT: Likely to cause a BUS Error ....", __func__);
|
||||||
|
ALOGE("%s: HINT: ... when the signal handler is called!", __func__);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Signal Mapping can be disabled in the rare case of the clone
|
* Signal Mapping can be disabled in the rare case of the clone
|
||||||
* flags not being compatble for VM and file descriptors.
|
* flags not being compatble for VM and file descriptors.
|
||||||
*/
|
*/
|
||||||
if (signal_handler_mapping_enabled) {
|
if (signal_handler_mapping_enabled) {
|
||||||
if (sigaction)
|
if (sigaction)
|
||||||
mips_handler = (sighandler_t) mips_sighandler;
|
|
||||||
else
|
|
||||||
mips_handler = (sighandler_t) mips_sigaction_handler;
|
mips_handler = (sighandler_t) mips_sigaction_handler;
|
||||||
|
else
|
||||||
|
mips_handler = (sighandler_t) mips_sighandler;
|
||||||
} else {
|
} else {
|
||||||
mips_handler = portable_handler; /* Don't MAP */
|
mips_handler = portable_handler; /* Don't MAP */
|
||||||
}
|
}
|
||||||
@@ -982,7 +1099,7 @@ static int do_sigaction_portable(int portable_signum, const struct sigaction_por
|
|||||||
rv = 0;
|
rv = 0;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
if (portable_signum >= 0 && portable_signum < NSIG_PORTABLE)
|
if (portable_signum > 0 && portable_signum <= NSIG_PORTABLE)
|
||||||
prev_portable_handler = mips_portable_sighandler[portable_signum];
|
prev_portable_handler = mips_portable_sighandler[portable_signum];
|
||||||
else
|
else
|
||||||
prev_portable_handler = NULL;
|
prev_portable_handler = NULL;
|
||||||
@@ -1006,21 +1123,26 @@ static int do_sigaction_portable(int portable_signum, const struct sigaction_por
|
|||||||
/*
|
/*
|
||||||
* Providing the three argument version of a signal handler.
|
* Providing the three argument version of a signal handler.
|
||||||
*/
|
*/
|
||||||
if (portable_signum >= 0 && portable_signum < NSIG_PORTABLE) {
|
portable_handler = (sighandler_portable_t) act->sa_sigaction_portable;
|
||||||
|
if ((portable_signum <= 0) || (portable_signum > NSIG_PORTABLE)) {
|
||||||
|
/*
|
||||||
|
* Let the kernel generate the proper return value and set errno.
|
||||||
|
*/
|
||||||
|
mips_act.sa_sigaction = (sig3handler_t) portable_handler;
|
||||||
|
} else {
|
||||||
|
mips_handler = sighandler_pton(portable_handler, 1);
|
||||||
|
if (mips_handler != portable_handler) {
|
||||||
mips_portable_sighandler[portable_signum] =
|
mips_portable_sighandler[portable_signum] =
|
||||||
(sig3handler_portable_t) act->sa_sigaction_portable;
|
(sig3handler_portable_t) portable_handler;
|
||||||
|
|
||||||
mips_act.sa_sigaction = mips_sigaction_handler;
|
|
||||||
}
|
}
|
||||||
else {
|
mips_act.sa_sigaction = (sig3handler_t) mips_handler;
|
||||||
mips_act.sa_sigaction = act->sa_sigaction_portable;
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
* Providing the classic single argument version of a signal handler.
|
* Providing the classic single argument version of a signal handler.
|
||||||
*/
|
*/
|
||||||
portable_handler = act->sa_handler_portable;
|
portable_handler = act->sa_handler_portable;
|
||||||
if ((portable_signum < 0) || (portable_signum > NSIG_PORTABLE)) {
|
if ((portable_signum <= 0) || (portable_signum > NSIG_PORTABLE)) {
|
||||||
/*
|
/*
|
||||||
* Let the kernel generate the proper return value and set errno.
|
* Let the kernel generate the proper return value and set errno.
|
||||||
*/
|
*/
|
||||||
@@ -1045,7 +1167,7 @@ static int do_sigaction_portable(int portable_signum, const struct sigaction_por
|
|||||||
rv = rt_fn(mips_signum, mips_act_ptr, &mips_oldact, sizeof(sigset_t));
|
rv = rt_fn(mips_signum, mips_act_ptr, &mips_oldact, sizeof(sigset_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (oldact) {
|
if (rv == 0 && oldact) {
|
||||||
if (mips_oldact.sa_sigaction == (__sigaction_handler_portable_t) mips_sigaction_handler ||
|
if (mips_oldact.sa_sigaction == (__sigaction_handler_portable_t) mips_sigaction_handler ||
|
||||||
mips_oldact.sa_sigaction == (__sigaction_handler_portable_t) mips_sighandler) {
|
mips_oldact.sa_sigaction == (__sigaction_handler_portable_t) mips_sighandler) {
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
struct siginfo; /* TODO: Change to siginfo_portable */
|
struct siginfo; /* TODO: Change to siginfo_portable */
|
||||||
|
|
||||||
#define NSIG_PORTABLE 32
|
#define NSIG_PORTABLE 64
|
||||||
typedef unsigned long sigset_portable_t;
|
typedef unsigned long sigset_portable_t;
|
||||||
|
|
||||||
#define SIGHUP_PORTABLE 1
|
#define SIGHUP_PORTABLE 1
|
||||||
@@ -54,9 +54,95 @@ typedef unsigned long sigset_portable_t;
|
|||||||
#define SIGSYS_PORTABLE 31
|
#define SIGSYS_PORTABLE 31
|
||||||
#define SIGUNUSED_PORTABLE 31
|
#define SIGUNUSED_PORTABLE 31
|
||||||
|
|
||||||
#define SIGRTMIN_PORTABLE 32
|
|
||||||
#define SIGRTMAX_PORTABLE _NSIG_PORTABLE
|
|
||||||
#define SIGSWI_PORTABLE 32
|
#define SIGSWI_PORTABLE 32
|
||||||
|
#define SIGRTMIN_PORTABLE 32
|
||||||
|
|
||||||
|
#define SIGRT_1_PORTABLE (SIGRTMIN_PORTABLE + 1)
|
||||||
|
#define SIGRT_2_PORTABLE (SIGRTMIN_PORTABLE + 2)
|
||||||
|
#define SIGRT_3_PORTABLE (SIGRTMIN_PORTABLE + 3)
|
||||||
|
#define SIGRT_4_PORTABLE (SIGRTMIN_PORTABLE + 4)
|
||||||
|
#define SIGRT_5_PORTABLE (SIGRTMIN_PORTABLE + 5)
|
||||||
|
#define SIGRT_5_PORTABLE (SIGRTMIN_PORTABLE + 5)
|
||||||
|
#define SIGRT_6_PORTABLE (SIGRTMIN_PORTABLE + 6)
|
||||||
|
#define SIGRT_7_PORTABLE (SIGRTMIN_PORTABLE + 7)
|
||||||
|
#define SIGRT_8_PORTABLE (SIGRTMIN_PORTABLE + 8)
|
||||||
|
#define SIGRT_9_PORTABLE (SIGRTMIN_PORTABLE + 9)
|
||||||
|
#define SIGRT_10_PORTABLE (SIGRTMIN_PORTABLE + 10)
|
||||||
|
#define SIGRT_11_PORTABLE (SIGRTMIN_PORTABLE + 11)
|
||||||
|
#define SIGRT_12_PORTABLE (SIGRTMIN_PORTABLE + 12)
|
||||||
|
#define SIGRT_13_PORTABLE (SIGRTMIN_PORTABLE + 13)
|
||||||
|
#define SIGRT_14_PORTABLE (SIGRTMIN_PORTABLE + 14)
|
||||||
|
#define SIGRT_15_PORTABLE (SIGRTMIN_PORTABLE + 15)
|
||||||
|
#define SIGRT_15_PORTABLE (SIGRTMIN_PORTABLE + 15)
|
||||||
|
#define SIGRT_16_PORTABLE (SIGRTMIN_PORTABLE + 16)
|
||||||
|
#define SIGRT_17_PORTABLE (SIGRTMIN_PORTABLE + 17)
|
||||||
|
#define SIGRT_18_PORTABLE (SIGRTMIN_PORTABLE + 18)
|
||||||
|
#define SIGRT_19_PORTABLE (SIGRTMIN_PORTABLE + 19)
|
||||||
|
#define SIGRT_20_PORTABLE (SIGRTMIN_PORTABLE + 20)
|
||||||
|
#define SIGRT_20_PORTABLE (SIGRTMIN_PORTABLE + 20)
|
||||||
|
#define SIGRT_21_PORTABLE (SIGRTMIN_PORTABLE + 21)
|
||||||
|
#define SIGRT_22_PORTABLE (SIGRTMIN_PORTABLE + 22)
|
||||||
|
#define SIGRT_23_PORTABLE (SIGRTMIN_PORTABLE + 23)
|
||||||
|
#define SIGRT_24_PORTABLE (SIGRTMIN_PORTABLE + 24)
|
||||||
|
#define SIGRT_25_PORTABLE (SIGRTMIN_PORTABLE + 25)
|
||||||
|
#define SIGRT_25_PORTABLE (SIGRTMIN_PORTABLE + 25)
|
||||||
|
#define SIGRT_26_PORTABLE (SIGRTMIN_PORTABLE + 26)
|
||||||
|
#define SIGRT_27_PORTABLE (SIGRTMIN_PORTABLE + 27)
|
||||||
|
#define SIGRT_28_PORTABLE (SIGRTMIN_PORTABLE + 28)
|
||||||
|
#define SIGRT_29_PORTABLE (SIGRTMIN_PORTABLE + 29)
|
||||||
|
#define SIGRT_30_PORTABLE (SIGRTMIN_PORTABLE + 30)
|
||||||
|
#define SIGRT_31_PORTABLE (SIGRTMIN_PORTABLE + 31)
|
||||||
|
#define SIGRT_32_PORTABLE (SIGRTMIN_PORTABLE + 32)
|
||||||
|
|
||||||
|
#define SIGRTMAX_PORTABLE NSIG_PORTABLE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Define MIPS/Native Real Time Signal Names for debugging.
|
||||||
|
* NOTE:
|
||||||
|
* Currently only defining the 32 RT signals that the
|
||||||
|
* lib-portable application can interact with. MIPS has
|
||||||
|
* an additional 63 signals.
|
||||||
|
*/
|
||||||
|
#define SIGRT_1 (SIGRTMIN + 1)
|
||||||
|
#define SIGRT_2 (SIGRTMIN + 2)
|
||||||
|
#define SIGRT_3 (SIGRTMIN + 3)
|
||||||
|
#define SIGRT_4 (SIGRTMIN + 4)
|
||||||
|
#define SIGRT_5 (SIGRTMIN + 5)
|
||||||
|
#define SIGRT_5 (SIGRTMIN + 5)
|
||||||
|
#define SIGRT_6 (SIGRTMIN + 6)
|
||||||
|
#define SIGRT_7 (SIGRTMIN + 7)
|
||||||
|
#define SIGRT_8 (SIGRTMIN + 8)
|
||||||
|
#define SIGRT_9 (SIGRTMIN + 9)
|
||||||
|
#define SIGRT_10 (SIGRTMIN + 10)
|
||||||
|
#define SIGRT_11 (SIGRTMIN + 11)
|
||||||
|
#define SIGRT_12 (SIGRTMIN + 12)
|
||||||
|
#define SIGRT_13 (SIGRTMIN + 13)
|
||||||
|
#define SIGRT_14 (SIGRTMIN + 14)
|
||||||
|
#define SIGRT_15 (SIGRTMIN + 15)
|
||||||
|
#define SIGRT_15 (SIGRTMIN + 15)
|
||||||
|
#define SIGRT_16 (SIGRTMIN + 16)
|
||||||
|
#define SIGRT_17 (SIGRTMIN + 17)
|
||||||
|
#define SIGRT_18 (SIGRTMIN + 18)
|
||||||
|
#define SIGRT_19 (SIGRTMIN + 19)
|
||||||
|
#define SIGRT_20 (SIGRTMIN + 20)
|
||||||
|
#define SIGRT_20 (SIGRTMIN + 20)
|
||||||
|
#define SIGRT_21 (SIGRTMIN + 21)
|
||||||
|
#define SIGRT_22 (SIGRTMIN + 22)
|
||||||
|
#define SIGRT_23 (SIGRTMIN + 23)
|
||||||
|
#define SIGRT_24 (SIGRTMIN + 24)
|
||||||
|
#define SIGRT_25 (SIGRTMIN + 25)
|
||||||
|
#define SIGRT_25 (SIGRTMIN + 25)
|
||||||
|
#define SIGRT_26 (SIGRTMIN + 26)
|
||||||
|
#define SIGRT_27 (SIGRTMIN + 27)
|
||||||
|
#define SIGRT_28 (SIGRTMIN + 28)
|
||||||
|
#define SIGRT_29 (SIGRTMIN + 29)
|
||||||
|
#define SIGRT_30 (SIGRTMIN + 30)
|
||||||
|
#define SIGRT_31 (SIGRTMIN + 31)
|
||||||
|
#define SIGRT_32 (SIGRTMIN + 32)
|
||||||
|
/*
|
||||||
|
* NOTE: Native signals SIGRT_33 ... SIGRTMAX
|
||||||
|
* can't be used by a lib-portable application.
|
||||||
|
*/
|
||||||
|
|
||||||
#define SA_NOCLDSTOP_PORTABLE 0x00000001
|
#define SA_NOCLDSTOP_PORTABLE 0x00000001
|
||||||
#define SA_NOCLDWAIT_PORTABLE 0x00000002
|
#define SA_NOCLDWAIT_PORTABLE 0x00000002
|
||||||
|
|||||||
Reference in New Issue
Block a user