20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef OS_BSD_OS_BSD_HPP 26 #define OS_BSD_OS_BSD_HPP 27 28 // Bsd_OS defines the interface to Bsd operating systems 29 30 // Information about the protection of the page at address '0' on this os. 31 static bool zero_page_read_protected() { return true; } 32 33 class Bsd { 34 friend class os; 35 36 // For signal-chaining 37 static bool libjsig_is_loaded; // libjsig that interposes sigaction(), 38 // __sigaction(), signal() is loaded 39 static struct sigaction *(*get_signal_action)(int); 40 static struct sigaction *get_preinstalled_handler(int); 41 static void save_preinstalled_handler(int, struct sigaction&); 42 43 static void check_signal_handler(int sig); 44 45 #ifdef __APPLE__ 46 // mach_absolute_time 47 static mach_timebase_info_data_t _timebase_info; 48 static volatile uint64_t _max_abstime; 49 #else 50 static int (*_clock_gettime)(clockid_t, struct timespec *); 51 #endif 52 53 static GrowableArray<int>* _cpu_to_node; 54 55 protected: 56 57 static julong _physical_memory; 58 static pthread_t _main_thread; 59 static int _page_size; 60 61 static julong available_memory(); | 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 #ifndef OS_BSD_OS_BSD_HPP 26 #define OS_BSD_OS_BSD_HPP 27 28 // Bsd_OS defines the interface to Bsd operating systems 29 30 // Information about the protection of the page at address '0' on this os. 31 static bool zero_page_read_protected() { return true; } 32 33 class Bsd { 34 friend class os; 35 36 // For signal-chaining 37 static bool libjsig_is_loaded; // libjsig that interposes sigaction(), 38 // __sigaction(), signal() is loaded 39 static struct sigaction *(*get_signal_action)(int); 40 41 static void check_signal_handler(int sig); 42 43 #ifdef __APPLE__ 44 // mach_absolute_time 45 static mach_timebase_info_data_t _timebase_info; 46 static volatile uint64_t _max_abstime; 47 #else 48 static int (*_clock_gettime)(clockid_t, struct timespec *); 49 #endif 50 51 static GrowableArray<int>* _cpu_to_node; 52 53 protected: 54 55 static julong _physical_memory; 56 static pthread_t _main_thread; 57 static int _page_size; 58 59 static julong available_memory(); |