67 # include <sys/resource.h> 68 # include <thread.h> 69 # include <sys/stat.h> 70 # include <sys/time.h> 71 # include <sys/filio.h> 72 # include <sys/utsname.h> 73 # include <sys/systeminfo.h> 74 # include <sys/socket.h> 75 # include <sys/lwp.h> 76 # include <poll.h> 77 # include <sys/lwp.h> 78 79 # define _STRUCTURED_PROC 1 // this gets us the new structured proc interfaces of 5.6 & later 80 # include <sys/procfs.h> // see comment in <sys/procfs.h> 81 82 #define MAX_PATH (2 * K) 83 84 // Minimum stack size for the VM. It's easier to document a constant 85 // but it's different for x86 and sparc because the page sizes are different. 86 #ifdef _LP64 87 size_t os::Solaris::min_stack_allowed = 128*K; 88 #else 89 size_t os::Solaris::min_stack_allowed = 96*K; 90 #endif 91 92 int os::Solaris::max_register_window_saves_before_flushing() { 93 // We should detect this at run time. For now, filling 94 // in with a constant. 95 return 8; 96 } 97 98 static void handle_unflushed_register_windows(gwindows_t *win) { 99 int restore_count = win->wbcnt; 100 int i; 101 102 for(i=0; i<restore_count; i++) { 103 address sp = ((address)win->spbuf[i]) + STACK_BIAS; 104 address reg_win = (address)&win->wbuf[i]; 105 memcpy(sp,reg_win,sizeof(struct rwindow)); 106 } 107 } 108 109 char* os::non_memory_address_word() { | 67 # include <sys/resource.h> 68 # include <thread.h> 69 # include <sys/stat.h> 70 # include <sys/time.h> 71 # include <sys/filio.h> 72 # include <sys/utsname.h> 73 # include <sys/systeminfo.h> 74 # include <sys/socket.h> 75 # include <sys/lwp.h> 76 # include <poll.h> 77 # include <sys/lwp.h> 78 79 # define _STRUCTURED_PROC 1 // this gets us the new structured proc interfaces of 5.6 & later 80 # include <sys/procfs.h> // see comment in <sys/procfs.h> 81 82 #define MAX_PATH (2 * K) 83 84 // Minimum stack size for the VM. It's easier to document a constant 85 // but it's different for x86 and sparc because the page sizes are different. 86 #ifdef _LP64 87 size_t os::Posix::_compiler_thread_min_stack_allowed = 128 * K; 88 size_t os::Posix::_java_thread_min_stack_allowed = 128 * K; 89 size_t os::Posix::_vm_internal_thread_min_stack_allowed = 128 * K; 90 #else 91 size_t os::Posix::_compiler_thread_min_stack_allowed = 96 * K; 92 size_t os::Posix::_java_thread_min_stack_allowed = 96 * K; 93 size_t os::Posix::_vm_internal_thread_min_stack_allowed = 96 * K; 94 #endif 95 96 int os::Solaris::max_register_window_saves_before_flushing() { 97 // We should detect this at run time. For now, filling 98 // in with a constant. 99 return 8; 100 } 101 102 static void handle_unflushed_register_windows(gwindows_t *win) { 103 int restore_count = win->wbcnt; 104 int i; 105 106 for(i=0; i<restore_count; i++) { 107 address sp = ((address)win->spbuf[i]) + STACK_BIAS; 108 address reg_win = (address)&win->wbuf[i]; 109 memcpy(sp,reg_win,sizeof(struct rwindow)); 110 } 111 } 112 113 char* os::non_memory_address_word() { |