os.hpp revision 3380
1472N/A * or visit www.oracle.com if you need additional information or have any
1879N/A#ifndef SHARE_VM_RUNTIME_OS_HPP
1879N/A#define SHARE_VM_RUNTIME_OS_HPP
1879N/A#include "jvmtifiles/jvmti.h"
1879N/A#include "runtime/atomic.hpp"
1879N/A#include "runtime/extendedPC.hpp"
1879N/A#include "runtime/handles.hpp"
1879N/A# include "jvm_linux.h"
1879N/A# include "jvm_solaris.h"
1879N/A# include "jvm_windows.h"
1879N/A#ifdef TARGET_OS_FAMILY_bsd
0N/Aclass JavaThread;
0N/Aclass FileHandle;
0N/Atemplate<class E> class GrowableArray;
0N/A// %%%%% Moved ThreadState, START_FN, OSThread to new osThread.hpp. -- Rose
0N/Atypedef void (*java_call_t)(JavaValue* value, methodHandle* method, JavaCallArguments* args, Thread* thread);
0N/A static bool have_special_privileges();
0N/A static void run_periodic_checks();
0N/A static double elapsedTime();
0N/A double* process_user_time,
342N/A double* process_system_time);
0N/A static bool supports_vtime();
0N/A static bool enable_vtime();
548N/A static bool vtime_enabled();
548N/A static double elapsedVTime();
1123N/A static bool is_server_class_machine();
0N/A static int processor_count() {
0N/A return _processor_count;
0N/A static int active_processor_count();
0N/A static bool uses_stack_guard_pages();
0N/A static bool allocate_stack_guard_pages();
0N/A static void bang_stack_shadow_pages();
0N/A static int vm_page_size();
656N/A static int vm_allocation_granularity();
237N/A bool executable = false);
0N/A bool executable = false);
0N/A bool is_committed = true);
141N/A bool allow_exec = false);
0N/A bool allow_exec);
0N/A static bool numa_has_static_binding();
0N/A static bool numa_has_group_homing();
0N/A static bool numa_topology_changed();
0N/A static int numa_get_group_id();
0N/A static char* scan_pages(char *start, char* end, page_info* page_expected, page_info* page_found);
0N/A static char* non_memory_address_word();
0N/A bool executable = false);
0N/A static void large_page_init();
0N/A static bool can_commit_large_page_memory();
0N/A static bool can_execute_large_page_memory();
0N/A static bool is_poll_address(address addr) { return addr >= _polling_page && addr < (_polling_page + os::vm_page_size()); }
0N/A static void make_polling_page_unreadable();
0N/A static void make_polling_page_readable();
0N/A static void serialize_thread_states();
0N/A static int get_serialize_page_shift_count() {
0N/A return SerializePageShiftCount;
0N/A static unsigned int get_serialize_page_mask() {
0N/A return _serialize_page_mask;
0N/A static void block_on_serialize_page_trap();
0N/A enum ThreadType {
0N/A static void initialize_thread();
0N/A static int current_process_id();
0N/A static int naked_sleep();
0N/A enum YieldResult {
0N/A static void yield_all(int attempts = 0); // Yields to all other threads including lower priority
0N/A static void loop_breaker(int attempts); // called from within tight loops to possibly influence time-sharing
0N/A static void breakpoint();
1887N/A static const int default_file_open_flags();
0N/A static const char* dll_file_extension();
0N/A static const char* get_temp_directory();
2149N/A static void print_environment_variables(outputStream* st, const char** env_list, char* buffer, int len);
0N/A static int get_last_error();
0N/A static bool is_debugger_attached();
0N/A static void wait_for_keypress_at_exit(void);
0N/A static void* native_java_library();
0N/A static bool is_headless_jre();
0N/A static const char* file_separator();
0N/A static const char* line_separator();
0N/A static const char* path_separator();
0N/A static void init_system_properties_values();
0N/A static int allocate_thread_local_storage();
0N/A static const char* jlong_format_specifier();
0N/A static const char* julong_format_specifier();
0N/A static void signal_init();
0N/A static void signal_init_pd();
0N/A static int signal_wait();
0N/A static int signal_lookup();
2085N/A static void* user_handler();
2085N/A static void terminate_signal_thread();
2085N/A static int sigexitnum_pd();
0N/A static void os_exception_wrapper(java_call_t f, JavaValue* value, methodHandle* method, JavaCallArguments* args, Thread* thread);
0N/A // On Windows this will create an actual minidump, on Linux/Solaris it will simply check core dump limits
0N/A static void check_or_create_dump(void* exceptionRecord, void* contextRecord, char* buffer, size_t bufferSize);
2316N/A static bool is_thread_cpu_time_supported();
1879N/A#include "runtime/os_ext.hpp"
1879N/A# include "os_linux.hpp"
1879N/A# include "os_posix.hpp"
1879N/A# include "os_solaris.hpp"
1879N/A# include "os_posix.hpp"
1879N/A# include "os_windows.hpp"
2073N/A#ifdef TARGET_OS_FAMILY_bsd
2073N/A# include "os_posix.hpp"
2073N/A# include "os_bsd.hpp"
2073N/A# include "os_linux_x86.hpp"
1601N/A# include "os_linux_sparc.hpp"
0N/A# include "os_linux_zero.hpp"
0N/A# include "os_solaris_x86.hpp"
0N/A# include "os_solaris_sparc.hpp"
0N/A# include "os_windows_x86.hpp"
0N/A#ifdef TARGET_OS_ARCH_linux_arm
0N/A# include "os_linux_arm.hpp"
0N/A#ifdef TARGET_OS_ARCH_linux_ppc
0N/A# include "os_linux_ppc.hpp"
0N/A#ifdef TARGET_OS_ARCH_bsd_x86
0N/A# include "os_bsd_x86.hpp"
0N/A#ifdef TARGET_OS_ARCH_bsd_zero
0N/A# include "os_bsd_zero.hpp"
0N/A static bool find(address pc, outputStream* st = tty); // OS specific function to make sense out of an address
0N/A static void print_statistics();
0N/A static void hint_no_preempt();
static void pause();
const char* home,
int home_len,
char fileSep,
char pathSep);