3345 sigaddset(&check_signal_done, sig);
3346 // Running under non-interactive shell, SHUTDOWN2_SIGNAL will be reassigned SIG_IGN
3347 if (sig == SHUTDOWN2_SIGNAL && !isatty(fileno(stdin))) {
3348 tty->print_cr("Running in non-interactive shell, %s handler is replaced by shell",
3349 exception_name(sig, buf, O_BUFLEN));
3350 }
3351 } else if (os::Aix::get_our_sigflags(sig) != 0 && (int)act.sa_flags != os::Aix::get_our_sigflags(sig)) {
3352 tty->print("Warning: %s handler flags ", exception_name(sig, buf, O_BUFLEN));
3353 tty->print("expected:" PTR32_FORMAT, os::Aix::get_our_sigflags(sig));
3354 tty->print_cr(" found:" PTR32_FORMAT, act.sa_flags);
3355 // No need to check this sig any longer
3356 sigaddset(&check_signal_done, sig);
3357 }
3358
3359 // Dump all the signal
3360 if (sigismember(&check_signal_done, sig)) {
3361 print_signal_handlers(tty, buf, O_BUFLEN);
3362 }
3363 }
3364
3365 extern bool signal_name(int signo, char* buf, size_t len);
3366
3367 const char* os::exception_name(int exception_code, char* buf, size_t size) {
3368 if (0 < exception_code && exception_code <= SIGRTMAX) {
3369 // signal
3370 if (!signal_name(exception_code, buf, size)) {
3371 jio_snprintf(buf, size, "SIG%d", exception_code);
3372 }
3373 return buf;
3374 } else {
3375 return NULL;
3376 }
3377 }
3378
3379 // To install functions for atexit system call
3380 extern "C" {
3381 static void perfMemory_exit_helper() {
3382 perfMemory_exit();
3383 }
3384 }
3385
3386 // This is called _before_ the most of global arguments have been parsed.
3387 void os::init(void) {
3388 // This is basic, we want to know if that ever changes.
3389 // (Shared memory boundary is supposed to be a 256M aligned.)
3390 assert(SHMLBA == ((uint64_t)0x10000000ULL)/*256M*/, "unexpected");
3391
3392 // First off, we need to know whether we run on AIX or PASE, and
3393 // the OS level we run on.
3394 os::Aix::initialize_os_info();
3395
3396 // Scan environment (SPEC1170 behaviour, etc).
3397 os::Aix::scan_environment();
3398
|
3345 sigaddset(&check_signal_done, sig);
3346 // Running under non-interactive shell, SHUTDOWN2_SIGNAL will be reassigned SIG_IGN
3347 if (sig == SHUTDOWN2_SIGNAL && !isatty(fileno(stdin))) {
3348 tty->print_cr("Running in non-interactive shell, %s handler is replaced by shell",
3349 exception_name(sig, buf, O_BUFLEN));
3350 }
3351 } else if (os::Aix::get_our_sigflags(sig) != 0 && (int)act.sa_flags != os::Aix::get_our_sigflags(sig)) {
3352 tty->print("Warning: %s handler flags ", exception_name(sig, buf, O_BUFLEN));
3353 tty->print("expected:" PTR32_FORMAT, os::Aix::get_our_sigflags(sig));
3354 tty->print_cr(" found:" PTR32_FORMAT, act.sa_flags);
3355 // No need to check this sig any longer
3356 sigaddset(&check_signal_done, sig);
3357 }
3358
3359 // Dump all the signal
3360 if (sigismember(&check_signal_done, sig)) {
3361 print_signal_handlers(tty, buf, O_BUFLEN);
3362 }
3363 }
3364
3365 // To install functions for atexit system call
3366 extern "C" {
3367 static void perfMemory_exit_helper() {
3368 perfMemory_exit();
3369 }
3370 }
3371
3372 // This is called _before_ the most of global arguments have been parsed.
3373 void os::init(void) {
3374 // This is basic, we want to know if that ever changes.
3375 // (Shared memory boundary is supposed to be a 256M aligned.)
3376 assert(SHMLBA == ((uint64_t)0x10000000ULL)/*256M*/, "unexpected");
3377
3378 // First off, we need to know whether we run on AIX or PASE, and
3379 // the OS level we run on.
3380 os::Aix::initialize_os_info();
3381
3382 // Scan environment (SPEC1170 behaviour, etc).
3383 os::Aix::scan_environment();
3384
|