/*----------------------------------------------------------------*/ /* cabort.c Keven Miller 18 Mar 2011 kevenm@3kranger.com */ /* CCOPTS "-Aa +e +w1 +O2" */ /*----------------------------------------------------------------*/ #pragma list off #pragma LOCALITY "3kRanger" #include "cstd.h" #pragma intrinsic PUTJCW #pragma intrinsic QUIT extern void _cleanup (); extern void _close_fds (); extern int _raise (); /*----------------------------------------------------------------*/ /*TODO dual name abort _abort */ /*TODO _mpe_abort_num for QUIT */ proc void _abort (void) { s16 jstat; u16 jval; #ifdef ORG jval = JCW_FATAL; _cleanup (); _close_fds (); _raise ( SIGABRT ); #else /* NEW */ _raise ( SIGABRT ); _cleanup (); _close_fds (); jval = JCW_FATAL; #endif PUTJCW ("CJCW ", &jval, &jstat); QUIT (0); } /*----------------------------------------------------------------*/ #ifdef TEST #undef TEST #include proc int main () { printf ("Calling abort\n"); _abort (); } #endif /*----------------------------------------------------------------*/