1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- // pa-signal.h - Catch runtime signals and turn them into exceptions.
- /* Copyright (C) 1998, 1999, 2000, 2009 Free Software Foundation
- This file is part of libgcj.
- This software is copyrighted work licensed under the terms of the
- Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
- details. */
- #ifndef JAVA_SIGNAL_H
- #define JAVA_SIGNAL_H 1
- #include <signal.h>
- #include <sys/syscall.h>
- #define HANDLE_SEGV 1
- #define HANDLE_FPE 1
- #define SIGNAL_HANDLER(_name) \
- static void _Jv_##_name (int _dummy __attribute__ ((unused)), \
- siginfo_t *_info __attribute__ ((__unused__)), \
- void *arg __attribute__ ((__unused__)))
- #define MAKE_THROW_FRAME(_exception)
- #define INIT_SEGV \
- do \
- { \
- struct sigaction act; \
- act.sa_sigaction = _Jv_catch_segv; \
- sigemptyset (&act.sa_mask); \
- act.sa_flags = SA_SIGINFO; \
- syscall (SYS_rt_sigaction, SIGSEGV, &act, NULL, _NSIG / 8); \
- } \
- while (0)
- #define INIT_FPE \
- do \
- { \
- struct sigaction act; \
- act.sa_sigaction = _Jv_catch_fpe; \
- sigemptyset (&act.sa_mask); \
- act.sa_flags = SA_SIGINFO; \
- syscall (SYS_rt_sigaction, SIGFPE, &act, NULL, _NSIG / 8); \
- } \
- while (0)
- #endif /* JAVA_SIGNAL_H */
|