143
144 // For Analyzer Forte AsyncGetCallTrace profiling support:
145 //
146 // This interface should be declared in os_linux_i486.hpp, but
147 // that file provides extensions to the os class and not the
148 // Linux class.
149 static ExtendedPC fetch_frame_from_ucontext(Thread* thread, const ucontext_t* uc,
150 intptr_t** ret_sp, intptr_t** ret_fp);
151
152 static bool get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr);
153
154 // This boolean allows users to forward their own non-matching signals
155 // to JVM_handle_linux_signal, harmlessly.
156 static bool signal_handlers_are_installed;
157
158 static int get_our_sigflags(int);
159 static void set_our_sigflags(int, int);
160 static void signal_sets_init();
161 static void install_signal_handlers();
162 static void set_signal_handler(int, bool);
163 static bool is_sig_ignored(int sig);
164
165 static sigset_t* unblocked_signals();
166 static sigset_t* vm_signals();
167
168 // For signal-chaining
169 static struct sigaction *get_chained_signal_action(int sig);
170 static bool chained_handler(int sig, siginfo_t* siginfo, void* context);
171
172 // GNU libc and libpthread version strings
173 static const char *glibc_version() { return _glibc_version; }
174 static const char *libpthread_version() { return _libpthread_version; }
175
176 static void libpthread_init();
177 static void sched_getcpu_init();
178 static bool libnuma_init();
179 static void* libnuma_dlsym(void* handle, const char* name);
180 // libnuma v2 (libnuma_1.2) symbols
181 static void* libnuma_v2_dlsym(void* handle, const char* name);
182
183 // Return default guard size for the specified thread type
|
143
144 // For Analyzer Forte AsyncGetCallTrace profiling support:
145 //
146 // This interface should be declared in os_linux_i486.hpp, but
147 // that file provides extensions to the os class and not the
148 // Linux class.
149 static ExtendedPC fetch_frame_from_ucontext(Thread* thread, const ucontext_t* uc,
150 intptr_t** ret_sp, intptr_t** ret_fp);
151
152 static bool get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr);
153
154 // This boolean allows users to forward their own non-matching signals
155 // to JVM_handle_linux_signal, harmlessly.
156 static bool signal_handlers_are_installed;
157
158 static int get_our_sigflags(int);
159 static void set_our_sigflags(int, int);
160 static void signal_sets_init();
161 static void install_signal_handlers();
162 static void set_signal_handler(int, bool);
163
164 static sigset_t* unblocked_signals();
165 static sigset_t* vm_signals();
166
167 // For signal-chaining
168 static struct sigaction *get_chained_signal_action(int sig);
169 static bool chained_handler(int sig, siginfo_t* siginfo, void* context);
170
171 // GNU libc and libpthread version strings
172 static const char *glibc_version() { return _glibc_version; }
173 static const char *libpthread_version() { return _libpthread_version; }
174
175 static void libpthread_init();
176 static void sched_getcpu_init();
177 static bool libnuma_init();
178 static void* libnuma_dlsym(void* handle, const char* name);
179 // libnuma v2 (libnuma_1.2) symbols
180 static void* libnuma_v2_dlsym(void* handle, const char* name);
181
182 // Return default guard size for the specified thread type
|