82 // correct them. 83 // 84 // Must run after os::Aix::initialue_os_info(). 85 static void scan_environment(); 86 87 // Initialize libo4 (on PASE) and libperfstat (on AIX). Call this 88 // before relying on functions from either lib, e.g. Aix::get_meminfo(). 89 static void initialize_libo4(); 90 static void initialize_libperfstat(); 91 92 public: 93 static void init_thread_fpu_state(); 94 static pthread_t main_thread(void) { return _main_thread; } 95 static void set_createThread_lock(Mutex* lk) { _createThread_lock = lk; } 96 static Mutex* createThread_lock(void) { return _createThread_lock; } 97 static void hotspot_sigmask(Thread* thread); 98 99 // Given an address, returns the size of the page backing that address 100 static size_t query_pagesize(void* p); 101 102 // Return `true' if the calling thread is the primordial thread. The 103 // primordial thread is the thread which contains the main function, 104 // *not* necessarily the thread which initialized the VM by calling 105 // JNI_CreateJavaVM. 106 static bool is_primordial_thread(void); 107 108 static int page_size(void) { 109 assert(_page_size != -1, "not initialized"); 110 return _page_size; 111 } 112 113 static address ucontext_get_pc(const ucontext_t* uc); 114 static intptr_t* ucontext_get_sp(const ucontext_t* uc); 115 static intptr_t* ucontext_get_fp(const ucontext_t* uc); 116 // Set PC into context. Needed for continuation after signal. 117 static void ucontext_set_pc(ucontext_t* uc, address pc); 118 119 static bool get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr); 120 121 // This boolean allows users to forward their own non-matching signals 122 // to JVM_handle_aix_signal, harmlessly. 123 static bool signal_handlers_are_installed; 124 125 static int get_our_sigflags(int); 126 static void set_our_sigflags(int, int); 127 static void signal_sets_init(); | 82 // correct them. 83 // 84 // Must run after os::Aix::initialue_os_info(). 85 static void scan_environment(); 86 87 // Initialize libo4 (on PASE) and libperfstat (on AIX). Call this 88 // before relying on functions from either lib, e.g. Aix::get_meminfo(). 89 static void initialize_libo4(); 90 static void initialize_libperfstat(); 91 92 public: 93 static void init_thread_fpu_state(); 94 static pthread_t main_thread(void) { return _main_thread; } 95 static void set_createThread_lock(Mutex* lk) { _createThread_lock = lk; } 96 static Mutex* createThread_lock(void) { return _createThread_lock; } 97 static void hotspot_sigmask(Thread* thread); 98 99 // Given an address, returns the size of the page backing that address 100 static size_t query_pagesize(void* p); 101 102 static int page_size(void) { 103 assert(_page_size != -1, "not initialized"); 104 return _page_size; 105 } 106 107 static address ucontext_get_pc(const ucontext_t* uc); 108 static intptr_t* ucontext_get_sp(const ucontext_t* uc); 109 static intptr_t* ucontext_get_fp(const ucontext_t* uc); 110 // Set PC into context. Needed for continuation after signal. 111 static void ucontext_set_pc(ucontext_t* uc, address pc); 112 113 static bool get_frame_at_stack_banging_point(JavaThread* thread, ucontext_t* uc, frame* fr); 114 115 // This boolean allows users to forward their own non-matching signals 116 // to JVM_handle_aix_signal, harmlessly. 117 static bool signal_handlers_are_installed; 118 119 static int get_our_sigflags(int); 120 static void set_our_sigflags(int, int); 121 static void signal_sets_init(); |