cleanup and optimization from Tony

This commit is contained in:
Joel Sherrill
1995-08-04 22:18:45 +00:00
parent ce6e30b150
commit e7e016fdc2
3 changed files with 38 additions and 38 deletions

View File

@@ -48,26 +48,31 @@ int cpu_number;
* _CPU_ISR_From_CPU_Init
*/
sigset_t posix_empty_mask;
void _CPU_ISR_From_CPU_Init()
{
unsigned32 i;
proc_ptr old_handler;
/*
* Generate an empty mask to be used by disable_support
*/
sigemptyset(&posix_empty_mask);
/*
* Block all the signals except SIGTRAP for the debugger
* and SIGABRT for fatal errors.
*/
_CPU_ISR_Enable(1);
(void) sigfillset(&_CPU_Signal_mask);
(void) sigdelset(&_CPU_Signal_mask, SIGTRAP);
(void) sigdelset(&_CPU_Signal_mask, SIGABRT);
(void) sigdelset(&_CPU_Signal_mask, SIGIOT);
(void) sigdelset(&_CPU_Signal_mask, SIGCONT);
sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, 0);
_CPU_ISR_Enable(1);
/*
* Set the handler for all signals to be signal_handler
@@ -130,11 +135,7 @@ void _CPU_Signal_initialize( void )
sigaction(SIGTTIN, &act, 0);
sigaction(SIGTTOU, &act, 0);
sigaction(SIGURG, &act, 0);
/*
* XXX: Really should be on HPUX.
*/
#if defined(hppa1_1)
#ifdef SIGLOST
sigaction(SIGLOST, &act, 0);
#endif
@@ -491,13 +492,10 @@ void _CPU_Restore_float_context(
unsigned32 _CPU_ISR_Disable_support(void)
{
sigset_t old_mask;
sigset_t empty_mask;
sigemptyset(&empty_mask);
sigemptyset(&old_mask);
sigprocmask(SIG_BLOCK, &_CPU_Signal_mask, &old_mask);
if (memcmp((char *)&empty_mask, (char *)&old_mask, sizeof(sigset_t)) != 0)
if (memcmp((void *)&posix_empty_mask, (void *)&old_mask, sizeof(sigset_t)) != 0)
return 1;
return 0;
@@ -610,6 +608,14 @@ void _CPU_Fatal_error(unsigned32 error)
{
setitimer(ITIMER_REAL, 0, 0);
if ( error ) {
#ifdef RTEMS_DEBUG
abort();
#endif
if (getenv("RTEMS_DEBUG"))
abort();
}
_exit(error);
}

View File

@@ -58,18 +58,6 @@ extern "C" {
#endif
#if 0
static inline X()
{
#ifdef _POSIX_C_SOURCE
printf( "_POSIX_C_SOURCE", _POSIX_C_SOURCE );
#endif
#ifdef __STRICT_ANSI__
printf( "__STRICT_ANSI__", __STRICT_ANSI__ );
#endif
}
#endif
#include <unistd.h>
#include <setjmp.h>
#include <signal.h>
@@ -334,7 +322,7 @@ static inline X()
* Word indices within a jmp_buf structure
*/
#ifdef RTEMS_NEWLIB
#ifdef RTEMS_NEWLIB_SETJMP
#define RP_OFF 6
#define SP_OFF 2
#define R3_OFF 10
@@ -356,7 +344,7 @@ static inline X()
#define DP_OFF 26
#endif
#ifdef RTEMS_UNIXLIB
#ifdef RTEMS_UNIXLIB_SETJMP
#define RP_OFF 0
#define SP_OFF 1
#define R3_OFF 4