< prev index next >

hotspot/src/os_cpu/solaris_x86/vm/os_solaris_x86.cpp

Print this page




  69 # include <sys/time.h>
  70 # include <sys/filio.h>
  71 # include <sys/utsname.h>
  72 # include <sys/systeminfo.h>
  73 # include <sys/socket.h>
  74 # include <sys/trap.h>
  75 # include <sys/lwp.h>
  76 # include <poll.h>
  77 # include <sys/lwp.h>
  78 # include <procfs.h>     //  see comment in <sys/procfs.h>
  79 
  80 #ifndef AMD64
  81 // QQQ seems useless at this point
  82 # define _STRUCTURED_PROC 1  //  this gets us the new structured proc interfaces of 5.6 & later
  83 #endif // AMD64
  84 # include <sys/procfs.h>     //  see comment in <sys/procfs.h>
  85 
  86 
  87 #define MAX_PATH (2 * K)
  88 
  89 // Minimum stack size for the VM.  It's easier to document a constant value
  90 // but it's different for x86 and sparc because the page sizes are different.
  91 #ifdef AMD64
  92 size_t os::Solaris::min_stack_allowed = 224*K;


  93 #define REG_SP REG_RSP
  94 #define REG_PC REG_RIP
  95 #define REG_FP REG_RBP
  96 #else
  97 size_t os::Solaris::min_stack_allowed = 64*K;


  98 #define REG_SP UESP
  99 #define REG_PC EIP
 100 #define REG_FP EBP
 101 // 4900493 counter to prevent runaway LDTR refresh attempt
 102 
 103 static volatile int ldtr_refresh = 0;
 104 // the libthread instruction that faults because of the stale LDTR
 105 
 106 static const unsigned char movlfs[] = { 0x8e, 0xe0    // movl %eax,%fs
 107                        };
 108 #endif // AMD64
 109 
 110 char* os::non_memory_address_word() {
 111   // Must never look like an address returned by reserve_memory,
 112   // even in its subfields (as defined by the CPU immediate fields,
 113   // if the CPU splits constants across multiple instructions).
 114   return (char*) -1;
 115 }
 116 
 117 //




  69 # include <sys/time.h>
  70 # include <sys/filio.h>
  71 # include <sys/utsname.h>
  72 # include <sys/systeminfo.h>
  73 # include <sys/socket.h>
  74 # include <sys/trap.h>
  75 # include <sys/lwp.h>
  76 # include <poll.h>
  77 # include <sys/lwp.h>
  78 # include <procfs.h>     //  see comment in <sys/procfs.h>
  79 
  80 #ifndef AMD64
  81 // QQQ seems useless at this point
  82 # define _STRUCTURED_PROC 1  //  this gets us the new structured proc interfaces of 5.6 & later
  83 #endif // AMD64
  84 # include <sys/procfs.h>     //  see comment in <sys/procfs.h>
  85 
  86 
  87 #define MAX_PATH (2 * K)
  88 
  89 // Minimum stack sizes for the VM.  It's easier to document a constant value
  90 // but it's different for x86 and sparc because the page sizes are different.
  91 #ifdef AMD64
  92 size_t os::Posix::_compiler_thread_min_stack_allowed = 394 * K;
  93 size_t os::Posix::_java_thread_min_stack_allowed = 224 * K;
  94 size_t os::Posix::_vm_internal_thread_min_stack_allowed = 224 * K;
  95 #define REG_SP REG_RSP
  96 #define REG_PC REG_RIP
  97 #define REG_FP REG_RBP
  98 #else
  99 size_t os::Posix::_compiler_thread_min_stack_allowed = 64 * K;
 100 size_t os::Posix::_java_thread_min_stack_allowed = 64 * K;
 101 size_t os::Posix::_vm_internal_thread_min_stack_allowed = 64 * K;
 102 #define REG_SP UESP
 103 #define REG_PC EIP
 104 #define REG_FP EBP
 105 // 4900493 counter to prevent runaway LDTR refresh attempt
 106 
 107 static volatile int ldtr_refresh = 0;
 108 // the libthread instruction that faults because of the stale LDTR
 109 
 110 static const unsigned char movlfs[] = { 0x8e, 0xe0    // movl %eax,%fs
 111                        };
 112 #endif // AMD64
 113 
 114 char* os::non_memory_address_word() {
 115   // Must never look like an address returned by reserve_memory,
 116   // even in its subfields (as defined by the CPU immediate fields,
 117   // if the CPU splits constants across multiple instructions).
 118   return (char*) -1;
 119 }
 120 
 121 //


< prev index next >