172 static char* mmap_chunk(char *addr, size_t size, int flags, int prot);
173 static char* anon_mmap(char* requested_addr, size_t bytes, size_t alignment_hint, bool fixed);
174 static bool mpss_sanity_check(bool warn, size_t * page_size);
175
176 // Workaround for 4352906. thr_stksegment sometimes returns
177 // a bad value for the primordial thread's stack base when
178 // it is called more than one time.
179 // Workaround is to cache the initial value to avoid further
180 // calls to thr_stksegment.
181 // It appears that someone (Hotspot?) is trashing the user's
182 // proc_t structure (note that this is a system struct).
183 static address _main_stack_base;
184
185 static void print_distro_info(outputStream* st);
186 static void print_libversion_info(outputStream* st);
187
188 public:
189 static void libthread_init();
190 static void synchronization_init();
191 static bool liblgrp_init();
192 // Load miscellaneous symbols.
193 static void misc_sym_init();
194 // This boolean allows users to forward their own non-matching signals
195 // to JVM_handle_solaris_signal, harmlessly.
196 static bool signal_handlers_are_installed;
197
198 static void signal_sets_init();
199 static void install_signal_handlers();
200 static void set_signal_handler(int sig, bool set_installed, bool oktochain);
201 static void init_signal_mem();
202 static bool is_sig_ignored(int sig);
203 static void set_our_sigflags(int, int);
204 static int get_our_sigflags(int);
205
206 // For signal-chaining
207 static bool libjsig_is_loaded; // libjsig that interposes sigaction(),
208 // signal(), sigset() is loaded
209 static struct sigaction *get_chained_signal_action(int sig);
210 static bool chained_handler(int sig, siginfo_t *siginfo, void *context);
211
|
172 static char* mmap_chunk(char *addr, size_t size, int flags, int prot);
173 static char* anon_mmap(char* requested_addr, size_t bytes, size_t alignment_hint, bool fixed);
174 static bool mpss_sanity_check(bool warn, size_t * page_size);
175
176 // Workaround for 4352906. thr_stksegment sometimes returns
177 // a bad value for the primordial thread's stack base when
178 // it is called more than one time.
179 // Workaround is to cache the initial value to avoid further
180 // calls to thr_stksegment.
181 // It appears that someone (Hotspot?) is trashing the user's
182 // proc_t structure (note that this is a system struct).
183 static address _main_stack_base;
184
185 static void print_distro_info(outputStream* st);
186 static void print_libversion_info(outputStream* st);
187
188 public:
189 static void libthread_init();
190 static void synchronization_init();
191 static bool liblgrp_init();
192 static void initialize_features_info();
193 // Load miscellaneous symbols.
194 static void misc_sym_init();
195 // This boolean allows users to forward their own non-matching signals
196 // to JVM_handle_solaris_signal, harmlessly.
197 static bool signal_handlers_are_installed;
198
199 static void signal_sets_init();
200 static void install_signal_handlers();
201 static void set_signal_handler(int sig, bool set_installed, bool oktochain);
202 static void init_signal_mem();
203 static bool is_sig_ignored(int sig);
204 static void set_our_sigflags(int, int);
205 static int get_our_sigflags(int);
206
207 // For signal-chaining
208 static bool libjsig_is_loaded; // libjsig that interposes sigaction(),
209 // signal(), sigset() is loaded
210 static struct sigaction *get_chained_signal_action(int sig);
211 static bool chained_handler(int sig, siginfo_t *siginfo, void *context);
212
|