1 // mips-signal.h - Catch runtime signals and turn them into exceptions 2 // on an mips based Linux system. 3 4 /* Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004, 2006 5 Free Software Foundation 6 7 This file is part of libgcj. 8 9 This software is copyrighted work licensed under the terms of the 10 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for 11 details. */ 12 13 /* Adapted from sparc-signal.h and powerpc-signal.h 14 by David Daney <ddaney@avtrex.com> */ 15 16 #ifndef JAVA_SIGNAL_H 17 #define JAVA_SIGNAL_H 1 18 19 #include <signal.h> 20 #include <unistd.h> 21 22 #define HANDLE_SEGV 1 23 #define HANDLE_FPE 1 24 25 #define SIGNAL_HANDLER(_name) \ 26 static void _name (int _dummy __attribute__ ((__unused__)), \ 27 siginfo_t *_info __attribute__ ((__unused__)), \ 28 void *_arg __attribute__ ((__unused__))) 29 30 #define MAKE_THROW_FRAME(_exception) 31 32 #define _INIT_SIG_HANDLER(_SIG, _ACTION) \ 33 do \ 34 { \ 35 struct sigaction act; \ 36 act.sa_sigaction = _ACTION; \ 37 act.sa_flags = SA_SIGINFO | SA_NODEFER; \ 38 sigemptyset (&act.sa_mask); \ 39 sigaction(_SIG, &act, NULL); \ 40 } \ 41 while (0) 42 43 #define INIT_SEGV _INIT_SIG_HANDLER (SIGSEGV, catch_segv) 44 45 #define INIT_FPE _INIT_SIG_HANDLER (SIGFPE, catch_fpe) 46 #undef HANDLE_DIVIDE_OVERFLOW 47 48 #endif /* JAVA_SIGNAL_H */ 49 50