OSDN Git Service

2010-11-23 Tobias Burnus <burnus@net-b.de>
[pf3gnuchains/gcc-fork.git] / libjava / include / mips-signal.h
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