< prev index next >
src/share/vm/runtime/os.cpp
Print this page
rev 10257 : 8149036: Add tracing for thread related events at os level
Reviewed-by:
*** 58,67 ****
--- 58,68 ----
#include "services/nmtCommon.hpp"
#include "services/threadService.hpp"
#include "utilities/defaultStream.hpp"
#include "utilities/events.hpp"
+ # include <errno.h>
# include <signal.h>
OSThread* os::_starting_thread = NULL;
address os::_polling_page = NULL;
volatile int32_t* os::_mem_serialize_page = NULL;
*** 1751,1755 ****
--- 1752,1979 ----
void TestOS_test() {
TestOS::run_tests();
}
#endif // PRODUCT
+
+
+ const char* os::errno_name(int err_no) {
+ switch (err_no) {
+ case E2BIG: return "E2BIG";
+ case EACCES: return "EACCES";
+ #ifdef EADDRINUSE
+ case EADDRINUSE: return "EADDRINUSE";
+ #endif
+ #ifdef EADDRNOTAVAIL
+ case EADDRNOTAVAIL: return "EADDRNOTAVAIL";
+ #endif
+ #ifdef EAFNOSUPPORT
+ case EAFNOSUPPORT: return "EAFNOSUPPORT";
+ #endif
+ case EAGAIN: return "EAGAIN";
+ #ifdef EALREADY
+ case EALREADY: return "EALREADY";
+ #endif
+ case EBADF: return "EBADF";
+ #ifdef EBADMSG
+ case EBADMSG: return "EBADMSG";
+ #endif
+ case EBUSY: return "EBUSY";
+ #ifdef ECANCELED
+ case ECANCELED: return "ECANCELED";
+ #endif
+ #ifdef ECHILD
+ case ECHILD: return "ECHILD";
+ #endif
+ #ifdef ECONNABORTED
+ case ECONNABORTED: return "ECONNABORTED";
+ #endif
+ #ifdef ECONNREFUSED
+ case ECONNREFUSED: return "ECONNREFUSED";
+ #endif
+ #ifdef ECONNRESET
+ case ECONNRESET: return "ECONNRESET";
+ #endif
+ #ifdef EDEADLK
+ case EDEADLK: return "EDEADLK";
+ #endif
+ #ifdef EDESTADDRREQ
+ case EDESTADDRREQ: return "EDESTADDRREQ";
+ #endif
+ #ifdef EDOM
+ case EDOM: return "EDOM";
+ #endif
+ #ifdef EDQUOT
+ case EDQUOT: return "EDQUOT";
+ #endif
+ #ifdef EEXIST
+ case EEXIST: return "EEXIST";
+ #endif
+ case EFAULT: return "EFAULT";
+ #ifdef EFBIG
+ case EFBIG: return "EFBIG";
+ #endif
+ #ifdef EHOSTUNREACH
+ case EHOSTUNREACH: return "EHOSTUNREACH";
+ #endif
+ #ifdef EIDRM
+ case EIDRM: return "EIDRM";
+ #endif
+ #ifdef EILSEQ
+ case EILSEQ: return "EILSEQ";
+ #endif
+ #ifdef EINPROGRESS
+ case EINPROGRESS: return "EINPROGRESS";
+ #endif
+ case EINTR: return "EINTR";
+ case EINVAL: return "EINVAL";
+ #ifdef EIO
+ case EIO: return "EIO";
+ #endif
+ #ifdef EISCONN
+ case EISCONN: return "EISCONN";
+ #endif
+ case EISDIR: return "EISDIR";
+ #ifdef ELOOP
+ case ELOOP: return "ELOOP";
+ #endif
+ #ifdef EMFILE
+ case EMFILE: return "EMFILE";
+ #endif
+ #ifdef EMLINK
+ case EMLINK: return "EMLINK";
+ #endif
+ #ifdef EMSGSIZE
+ case EMSGSIZE: return "EMSGSIZE";
+ #endif
+ #ifdef EMULTIHOP
+ case EMULTIHOP: return "EMULTIHOP";
+ #endif
+ case ENAMETOOLONG: return "ENAMETOOLONG";
+ #ifdef ENETDOWN
+ case ENETDOWN: return "ENETDOWN";
+ #endif
+ #ifdef ENETRESET
+ case ENETRESET: return "ENETRESET";
+ #endif
+ #ifdef ENETUNREACH
+ case ENETUNREACH: return "ENETUNREACH";
+ #endif
+ #ifdef ENFILE
+ case ENFILE: return "ENFILE";
+ #endif
+ #ifdef ENOBUFS
+ case ENOBUFS: return "ENOBUFS";
+ #endif
+ #ifdef ENODATA
+ case ENODATA: return "ENODATA";
+ #endif
+ #ifdef ENODEV
+ case ENODEV: return "ENODEV";
+ #endif
+ case ENOENT: return "ENOENT";
+ #ifdef ENOEXEC
+ case ENOEXEC: return "ENOEXEC";
+ #endif
+ #ifdef ENOLCK
+ case ENOLCK: return "ENOLCK";
+ #endif
+ #ifdef ENOLINK
+ case ENOLINK: return "ENOLINK";
+ #endif
+ case ENOMEM: return "ENOMEM";
+ #ifdef ENOMSG
+ case ENOMSG: return "ENOMSG";
+ #endif
+ #ifdef ENOPROTOOPT
+ case ENOPROTOOPT: return "ENOPROTOOPT";
+ #endif
+ #ifdef ENOSPC
+ case ENOSPC: return "ENOSPC";
+ #endif
+ #ifdef ENOSR
+ case ENOSR: return "ENOSR";
+ #endif
+ #ifdef ENOSTR
+ case ENOSTR: return "ENOSTR";
+ #endif
+ #ifdef ENOSYS
+ case ENOSYS: return "ENOSYS";
+ #endif
+ #ifdef ENOTCONN
+ case ENOTCONN: return "ENOTCONN";
+ #endif
+ #ifdef ENOTDIR
+ case ENOTDIR: return "ENOTDIR";
+ #endif
+ // AIX: ENOTEMPTY == EEXIST
+ #if defined(ENOTEMPTY) && (ENOTEMPTY != EEXIST)
+ case ENOTEMPTY: return "ENOTEMPTY";
+ #endif
+ #ifdef ENOTSOCK
+ case ENOTSOCK: return "ENOTSOCK";
+ #endif
+ #ifdef ENOTSUP
+ case ENOTSUP: return "ENOTSUP";
+ #endif
+ #ifdef ENOTTY
+ case ENOTTY: return "ENOTTY";
+ #endif
+ #ifdef ENXIO
+ case ENXIO: return "ENXIO";
+ #endif
+ // on some unices EOPNOTSUPP==ENOTSUPP
+ #if defined(ENOTSUP) && defined(EOPNOTSUPP) && (EOPNOTSUPP != ENOTSUP)
+ case EOPNOTSUPP: return "EOPNOTSUPP";
+ #endif
+ #ifdef EOVERFLOW
+ case EOVERFLOW: return "EOVERFLOW";
+ #endif
+ #ifdef EPERM
+ case EPERM: return "EPERM";
+ #endif
+ #ifdef EPIPE
+ case EPIPE: return "EPIPE";
+ #endif
+ #ifdef EPROTO
+ case EPROTO: return "EPROTO";
+ #endif
+ #ifdef EPROTONOSUPPORT
+ case EPROTONOSUPPORT: return "EPROTONOSUPPORT";
+ #endif
+ #ifdef EPROTOTYPE
+ case EPROTOTYPE: return "EPROTOTYPE";
+ #endif
+ case ERANGE: return "ERANGE";
+ #ifdef EROFS
+ case EROFS: return "EROFS";
+ #endif
+ #ifdef ESPIPE
+ case ESPIPE: return "ESPIPE";
+ #endif
+ #ifdef ESRCH
+ case ESRCH: return "ESRCH";
+ #endif
+ #ifdef ESTALE
+ case ESTALE: return "ESTALE";
+ #endif
+ #ifdef ETIME
+ case ETIME: return "ETIME";
+ #endif
+ #ifdef ETIMEDOUT
+ case ETIMEDOUT: return "ETIMEDOUT";
+ #endif
+ #ifdef ETXTBSY
+ case ETXTBSY: return "ETXTBSY";
+ #endif
+ // on some unices EWOULDBLOCK==EAGAIN
+ #if defined(EWOULDBLOCK) && (EWOULDBLOCK != EAGAIN)
+ case EWOULDBLOCK: return "EWOULDBLOCK";
+ #endif
+ #ifdef EXDEV
+ case EXDEV: return "EXDEV";
+ #endif
+ default: return "unknown";
+ }
+ }
+
+
< prev index next >