< prev index next >

hotspot/src/os_cpu/solaris_sparc/vm/os_solaris_sparc.cpp

Print this page




  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() {


< prev index next >