110 static void print_libversion_info(outputStream* st);
111
112 public:
113 static bool _stack_is_executable;
114 static void *dlopen_helper(const char *name, char *ebuf, int ebuflen);
115 static void *dll_load_in_vmthread(const char *name, char *ebuf, int ebuflen);
116
117 static void init_thread_fpu_state();
118 static int get_fpu_control_word();
119 static void set_fpu_control_word(int fpu_control);
120 static pthread_t main_thread(void) { return _main_thread; }
121 // returns kernel thread id (similar to LWP id on Solaris), which can be
122 // used to access /proc
123 static pid_t gettid();
124 static void set_createThread_lock(Mutex* lk) { _createThread_lock = lk; }
125 static Mutex* createThread_lock(void) { return _createThread_lock; }
126 static void hotspot_sigmask(Thread* thread);
127
128 static address initial_thread_stack_bottom(void) { return _initial_thread_stack_bottom; }
129 static uintptr_t initial_thread_stack_size(void) { return _initial_thread_stack_size; }
130 static bool is_initial_thread(void);
131
132 static int page_size(void) { return _page_size; }
133 static void set_page_size(int val) { _page_size = val; }
134
135 static address ucontext_get_pc(const ucontext_t* uc);
136 static void ucontext_set_pc(ucontext_t* uc, address pc);
137 static intptr_t* ucontext_get_sp(const ucontext_t* uc);
138 static intptr_t* ucontext_get_fp(const ucontext_t* uc);
139
140 // For Analyzer Forte AsyncGetCallTrace profiling support:
141 //
142 // This interface should be declared in os_linux_i486.hpp, but
143 // that file provides extensions to the os class and not the
144 // Linux class.
145 static ExtendedPC fetch_frame_from_ucontext(Thread* thread, const ucontext_t* uc,
146 intptr_t** ret_sp, intptr_t** ret_fp);
147
148 static bool get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr);
149
150 // This boolean allows users to forward their own non-matching signals
|
110 static void print_libversion_info(outputStream* st);
111
112 public:
113 static bool _stack_is_executable;
114 static void *dlopen_helper(const char *name, char *ebuf, int ebuflen);
115 static void *dll_load_in_vmthread(const char *name, char *ebuf, int ebuflen);
116
117 static void init_thread_fpu_state();
118 static int get_fpu_control_word();
119 static void set_fpu_control_word(int fpu_control);
120 static pthread_t main_thread(void) { return _main_thread; }
121 // returns kernel thread id (similar to LWP id on Solaris), which can be
122 // used to access /proc
123 static pid_t gettid();
124 static void set_createThread_lock(Mutex* lk) { _createThread_lock = lk; }
125 static Mutex* createThread_lock(void) { return _createThread_lock; }
126 static void hotspot_sigmask(Thread* thread);
127
128 static address initial_thread_stack_bottom(void) { return _initial_thread_stack_bottom; }
129 static uintptr_t initial_thread_stack_size(void) { return _initial_thread_stack_size; }
130
131 static int page_size(void) { return _page_size; }
132 static void set_page_size(int val) { _page_size = val; }
133
134 static address ucontext_get_pc(const ucontext_t* uc);
135 static void ucontext_set_pc(ucontext_t* uc, address pc);
136 static intptr_t* ucontext_get_sp(const ucontext_t* uc);
137 static intptr_t* ucontext_get_fp(const ucontext_t* uc);
138
139 // For Analyzer Forte AsyncGetCallTrace profiling support:
140 //
141 // This interface should be declared in os_linux_i486.hpp, but
142 // that file provides extensions to the os class and not the
143 // Linux class.
144 static ExtendedPC fetch_frame_from_ucontext(Thread* thread, const ucontext_t* uc,
145 intptr_t** ret_sp, intptr_t** ret_fp);
146
147 static bool get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr);
148
149 // This boolean allows users to forward their own non-matching signals
|