4141 } |
4141 } |
4142 |
4142 |
4143 |
4143 |
4144 void report_error(const char* file_name, int line_no, const char* title, |
4144 void report_error(const char* file_name, int line_no, const char* title, |
4145 const char* format, ...); |
4145 const char* format, ...); |
4146 |
|
4147 const char * signames[] = { |
|
4148 "SIG0", |
|
4149 "SIGHUP", "SIGINT", "SIGQUIT", "SIGILL", "SIGTRAP", |
|
4150 "SIGABRT", "SIGEMT", "SIGFPE", "SIGKILL", "SIGBUS", |
|
4151 "SIGSEGV", "SIGSYS", "SIGPIPE", "SIGALRM", "SIGTERM", |
|
4152 "SIGUSR1", "SIGUSR2", "SIGCLD", "SIGPWR", "SIGWINCH", |
|
4153 "SIGURG", "SIGPOLL", "SIGSTOP", "SIGTSTP", "SIGCONT", |
|
4154 "SIGTTIN", "SIGTTOU", "SIGVTALRM", "SIGPROF", "SIGXCPU", |
|
4155 "SIGXFSZ", "SIGWAITING", "SIGLWP", "SIGFREEZE", "SIGTHAW", |
|
4156 "SIGCANCEL", "SIGLOST" |
|
4157 }; |
|
4158 |
|
4159 const char* os::exception_name(int exception_code, char* buf, size_t size) { |
|
4160 if (0 < exception_code && exception_code <= SIGRTMAX) { |
|
4161 // signal |
|
4162 if (exception_code < sizeof(signames)/sizeof(const char*)) { |
|
4163 jio_snprintf(buf, size, "%s", signames[exception_code]); |
|
4164 } else { |
|
4165 jio_snprintf(buf, size, "SIG%d", exception_code); |
|
4166 } |
|
4167 return buf; |
|
4168 } else { |
|
4169 return NULL; |
|
4170 } |
|
4171 } |
|
4172 |
4146 |
4173 // (Static) wrapper for getisax(2) call. |
4147 // (Static) wrapper for getisax(2) call. |
4174 os::Solaris::getisax_func_t os::Solaris::_getisax = 0; |
4148 os::Solaris::getisax_func_t os::Solaris::_getisax = 0; |
4175 |
4149 |
4176 // (Static) wrappers for the liblgrp API |
4150 // (Static) wrappers for the liblgrp API |