< prev index next >
src/hotspot/os/posix/os_posix.cpp
Print this page
rev 59103 : imported patch hotspot
*** 446,456 ****
#if defined(AIX)
st->print(", NPROC ");
st->print("%d", sysconf(_SC_CHILD_MAX));
print_rlimit(st, ", THREADS", RLIMIT_THREADS);
! #elif !defined(SOLARIS)
print_rlimit(st, ", NPROC", RLIMIT_NPROC);
#endif
print_rlimit(st, ", NOFILE", RLIMIT_NOFILE);
print_rlimit(st, ", AS", RLIMIT_AS, true);
--- 446,456 ----
#if defined(AIX)
st->print(", NPROC ");
st->print("%d", sysconf(_SC_CHILD_MAX));
print_rlimit(st, ", THREADS", RLIMIT_THREADS);
! #else
print_rlimit(st, ", NPROC", RLIMIT_NPROC);
#endif
print_rlimit(st, ", NOFILE", RLIMIT_NOFILE);
print_rlimit(st, ", AS", RLIMIT_AS, true);
*** 464,479 ****
// maximum number of bytes of memory that may be locked into RAM
// (rounded down to the nearest multiple of system pagesize)
print_rlimit(st, ", MEMLOCK", RLIMIT_MEMLOCK, true);
#endif
- #if defined(SOLARIS)
- // maximum size of mapped address space of a process in bytes;
- // if the limit is exceeded, mmap and brk fail
- print_rlimit(st, ", VMEM", RLIMIT_VMEM, true);
- #endif
-
// MacOS; The maximum size (in bytes) to which a process's resident set size may grow.
#if defined(__APPLE__)
print_rlimit(st, ", RSS", RLIMIT_RSS, true);
#endif
--- 464,473 ----
*** 1093,1117 ****
{ SIGSEGV, SEGV_KEYERR, "SEGV_KEYERR", "key error" },
#endif
#if defined(IA64) && !defined(AIX)
{ SIGSEGV, SEGV_PSTKOVF, "SEGV_PSTKOVF", "Paragraph stack overflow" },
#endif
- #if defined(__sparc) && defined(SOLARIS)
- // define Solaris Sparc M7 ADI SEGV signals
- #if !defined(SEGV_ACCADI)
- #define SEGV_ACCADI 3
- #endif
- { SIGSEGV, SEGV_ACCADI, "SEGV_ACCADI", "ADI not enabled for mapped object." },
- #if !defined(SEGV_ACCDERR)
- #define SEGV_ACCDERR 4
- #endif
- { SIGSEGV, SEGV_ACCDERR, "SEGV_ACCDERR", "ADI disrupting exception." },
- #if !defined(SEGV_ACCPERR)
- #define SEGV_ACCPERR 5
- #endif
- { SIGSEGV, SEGV_ACCPERR, "SEGV_ACCPERR", "ADI precise exception." },
- #endif // defined(__sparc) && defined(SOLARIS)
{ SIGBUS, BUS_ADRALN, "BUS_ADRALN", "Invalid address alignment." },
{ SIGBUS, BUS_ADRERR, "BUS_ADRERR", "Nonexistent physical address." },
{ SIGBUS, BUS_OBJERR, "BUS_OBJERR", "Object-specific hardware error." },
{ SIGTRAP, TRAP_BRKPT, "TRAP_BRKPT", "Process breakpoint." },
{ SIGTRAP, TRAP_TRACE, "TRAP_TRACE", "Process trace trap." },
--- 1087,1096 ----
*** 1266,1282 ****
}
bool os::signal_thread(Thread* thread, int sig, const char* reason) {
OSThread* osthread = thread->osthread();
if (osthread) {
- #if defined (SOLARIS)
- // Note: we cannot use pthread_kill on Solaris - not because
- // its missing, but because we do not have the pthread_t id.
- int status = thr_kill(osthread->thread_id(), sig);
- #else
int status = pthread_kill(osthread->pthread_id(), sig);
- #endif
if (status == 0) {
Events::log(Thread::current(), "sent signal %d to Thread " INTPTR_FORMAT " because %s.",
sig, p2i(thread), reason);
return true;
}
--- 1245,1255 ----
*** 1293,1304 ****
return Aix::ucontext_get_pc(ctx);
#elif defined(BSD)
return Bsd::ucontext_get_pc(ctx);
#elif defined(LINUX)
return Linux::ucontext_get_pc(ctx);
- #elif defined(SOLARIS)
- return Solaris::ucontext_get_pc(ctx);
#else
VMError::report_and_die("unimplemented ucontext_get_pc");
#endif
}
--- 1266,1275 ----
*** 1307,1318 ****
Aix::ucontext_set_pc(ctx, pc);
#elif defined(BSD)
Bsd::ucontext_set_pc(ctx, pc);
#elif defined(LINUX)
Linux::ucontext_set_pc(ctx, pc);
- #elif defined(SOLARIS)
- Solaris::ucontext_set_pc(ctx, pc);
#else
VMError::report_and_die("unimplemented ucontext_get_pc");
#endif
}
--- 1278,1287 ----
*** 1413,1423 ****
// platform (os/cpu) dependent constant.
// To this, space for guard mechanisms is added, which depends on the
// page size which again depends on the concrete system the VM is running
// on. Space for libc guard pages is not included in this size.
jint os::Posix::set_minimum_stack_sizes() {
! size_t os_min_stack_allowed = SOLARIS_ONLY(thr_min_stack()) NOT_SOLARIS(PTHREAD_STACK_MIN);
_java_thread_min_stack_allowed = _java_thread_min_stack_allowed +
JavaThread::stack_guard_zone_size() +
JavaThread::stack_shadow_zone_size();
--- 1382,1392 ----
// platform (os/cpu) dependent constant.
// To this, space for guard mechanisms is added, which depends on the
// page size which again depends on the concrete system the VM is running
// on. Space for libc guard pages is not included in this size.
jint os::Posix::set_minimum_stack_sizes() {
! size_t os_min_stack_allowed = PTHREAD_STACK_MIN;
_java_thread_min_stack_allowed = _java_thread_min_stack_allowed +
JavaThread::stack_guard_zone_size() +
JavaThread::stack_shadow_zone_size();
*** 1623,1637 ****
fatal("pthread_mutexattr_init: %s", os::strerror(status));
}
if ((status = pthread_mutexattr_settype(_mutexAttr, PTHREAD_MUTEX_NORMAL)) != 0) {
fatal("pthread_mutexattr_settype: %s", os::strerror(status));
}
! // Solaris has it's own PlatformMutex, distinct from the one for POSIX.
! NOT_SOLARIS(os::PlatformMutex::init();)
}
- #ifndef SOLARIS
sigset_t sigs;
struct sigaction sigact[NSIG];
struct sigaction* os::Posix::get_preinstalled_handler(int sig) {
if (sigismember(&sigs, sig)) {
--- 1592,1604 ----
fatal("pthread_mutexattr_init: %s", os::strerror(status));
}
if ((status = pthread_mutexattr_settype(_mutexAttr, PTHREAD_MUTEX_NORMAL)) != 0) {
fatal("pthread_mutexattr_settype: %s", os::strerror(status));
}
! os::PlatformMutex::init();
}
sigset_t sigs;
struct sigaction sigact[NSIG];
struct sigaction* os::Posix::get_preinstalled_handler(int sig) {
if (sigismember(&sigs, sig)) {
*** 1643,1653 ****
void os::Posix::save_preinstalled_handler(int sig, struct sigaction& oldAct) {
assert(sig > 0 && sig < NSIG, "vm signal out of expected range");
sigact[sig] = oldAct;
sigaddset(&sigs, sig);
}
- #endif
// Not all POSIX types and API's are available on all notionally "posix"
// platforms. If we have build-time support then we will check for actual
// runtime support via dlopen/dlsym lookup. This allows for running on an
// older OS version compared to the build platform. But if there is no
--- 1610,1619 ----
*** 1728,1738 ****
// Now do general initialization.
pthread_init_common();
- #ifndef SOLARIS
int status;
if (_pthread_condattr_setclock != NULL && _clock_gettime != NULL) {
if ((status = _pthread_condattr_setclock(_condAttr, CLOCK_MONOTONIC)) != 0) {
if (status == EINVAL) {
_use_clock_monotonic_condattr = false;
--- 1694,1703 ----
*** 1743,1781 ****
}
} else {
_use_clock_monotonic_condattr = true;
}
}
- #endif // !SOLARIS
-
}
void os::Posix::init_2(void) {
- #ifndef SOLARIS
log_info(os)("Use of CLOCK_MONOTONIC is%s supported",
(_clock_gettime != NULL ? "" : " not"));
log_info(os)("Use of pthread_condattr_setclock is%s supported",
(_pthread_condattr_setclock != NULL ? "" : " not"));
log_info(os)("Relative timed-wait using pthread_cond_timedwait is associated with %s",
_use_clock_monotonic_condattr ? "CLOCK_MONOTONIC" : "the default clock");
sigemptyset(&sigs);
- #endif // !SOLARIS
}
#else // !SUPPORTS_CLOCK_MONOTONIC
void os::Posix::init(void) {
pthread_init_common();
}
void os::Posix::init_2(void) {
- #ifndef SOLARIS
log_info(os)("Use of CLOCK_MONOTONIC is not supported");
log_info(os)("Use of pthread_condattr_setclock is not supported");
log_info(os)("Relative timed-wait using pthread_cond_timedwait is associated with the default clock");
sigemptyset(&sigs);
- #endif // !SOLARIS
}
#endif // SUPPORTS_CLOCK_MONOTONIC
// Utility to convert the given timeout to an absolute timespec
--- 1708,1740 ----
*** 1912,1922 ****
}
// Shared pthread_mutex/cond based PlatformEvent implementation.
// Not currently usable by Solaris.
- #ifndef SOLARIS
// PlatformEvent
//
// Assumption:
// Only one parker can exist on an event, which is why we allocate
--- 1871,1880 ----
*** 2341,2347 ****
int status = pthread_cond_wait(cond(), mutex());
assert_status(status == 0, status, "cond_wait");
return OS_OK;
}
}
-
- #endif // !SOLARIS
--- 2299,2303 ----
< prev index next >