aboutsummaryrefslogtreecommitdiff
path: root/src/os/solaris
diff options
context:
space:
mode:
authoramurillo <none@none>2011-12-23 15:24:43 -0800
committeramurillo <none@none>2011-12-23 15:24:43 -0800
commit0a5dacb21fa6dc1a0edb97ed3d7880025dd87352 (patch)
tree8aeefbf0cd510ed6153b702468be331d5a7dcf51 /src/os/solaris
parentf301c612b58663ac26ba25f5e357b8556dcfa326 (diff)
parent64aaf8da2ebae3789c3582fb128e98b2078fd181 (diff)
Diffstat (limited to 'src/os/solaris')
-rw-r--r--src/os/solaris/vm/jvm_solaris.h3
-rw-r--r--src/os/solaris/vm/os_solaris.cpp84
-rw-r--r--src/os/solaris/vm/os_solaris.inline.hpp13
3 files changed, 45 insertions, 55 deletions
diff --git a/src/os/solaris/vm/jvm_solaris.h b/src/os/solaris/vm/jvm_solaris.h
index 1513c16e8..57b32ac16 100644
--- a/src/os/solaris/vm/jvm_solaris.h
+++ b/src/os/solaris/vm/jvm_solaris.h
@@ -33,7 +33,6 @@
// All local includes have been commented out.
*/
-
#ifndef JVM_MD_H
#define JVM_MD_H
@@ -44,6 +43,7 @@
#include <dirent.h> /* For DIR */
#include <sys/param.h> /* For MAXPATHLEN */
+#include <sys/socket.h> /* For socklen_t */
#include <unistd.h> /* For F_OK, R_OK, W_OK */
#include <sys/int_types.h> /* for intptr_t types (64 Bit cleanliness) */
@@ -82,7 +82,6 @@
#define JVM_O_EXCL O_EXCL
#define JVM_O_CREAT O_CREAT
-
/* Signal definitions */
#define BREAK_SIGNAL SIGQUIT /* Thread dumping support. */
diff --git a/src/os/solaris/vm/os_solaris.cpp b/src/os/solaris/vm/os_solaris.cpp
index de9f88913..f4043e195 100644
--- a/src/os/solaris/vm/os_solaris.cpp
+++ b/src/os/solaris/vm/os_solaris.cpp
@@ -1674,7 +1674,6 @@ void* os::thread_local_storage_at(int index) {
}
-const int NANOSECS_PER_MILLISECS = 1000000;
// gethrtime can move backwards if read from one cpu and then a different cpu
// getTimeNanos is guaranteed to not move backward on Solaris
// local spinloop created as faster for a CAS on an int than
@@ -1803,7 +1802,7 @@ double os::elapsedVTime() {
// getTimeMillis guaranteed to not move backwards on Solaris
jlong getTimeMillis() {
jlong nanotime = getTimeNanos();
- return (jlong)(nanotime / NANOSECS_PER_MILLISECS);
+ return (jlong)(nanotime / NANOSECS_PER_MILLISEC);
}
// Must return millis since Jan 1 1970 for JVM_CurrentTimeMillis
@@ -6064,10 +6063,7 @@ void os::PlatformEvent::unpark() {
* is no need to track notifications.
*/
-#define NANOSECS_PER_SEC 1000000000
-#define NANOSECS_PER_MILLISEC 1000000
#define MAX_SECS 100000000
-
/*
* This code is common to linux and solaris and will be moved to a
* common place in dolphin.
@@ -6363,17 +6359,16 @@ int os::socket_close(int fd) {
RESTARTABLE_RETURN_INT(::close(fd));
}
-int os::recv(int fd, char *buf, int nBytes, int flags) {
- INTERRUPTIBLE_RETURN_INT(::recv(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
+int os::recv(int fd, char* buf, size_t nBytes, uint flags) {
+ INTERRUPTIBLE_RETURN_INT((int)::recv(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
}
-
-int os::send(int fd, char *buf, int nBytes, int flags) {
- INTERRUPTIBLE_RETURN_INT(::send(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
+int os::send(int fd, char* buf, size_t nBytes, uint flags) {
+ INTERRUPTIBLE_RETURN_INT((int)::send(fd, buf, nBytes, flags), os::Solaris::clear_interrupted);
}
-int os::raw_send(int fd, char *buf, int nBytes, int flags) {
- RESTARTABLE_RETURN_INT(::send(fd, buf, nBytes, flags));
+int os::raw_send(int fd, char* buf, size_t nBytes, uint flags) {
+ RESTARTABLE_RETURN_INT((int)::send(fd, buf, nBytes, flags));
}
// As both poll and select can be interrupted by signals, we have to be
@@ -6408,19 +6403,19 @@ int os::timeout(int fd, long timeout) {
}
}
-int os::connect(int fd, struct sockaddr *him, int len) {
+int os::connect(int fd, struct sockaddr *him, socklen_t len) {
int _result;
- INTERRUPTIBLE_NORESTART(::connect(fd, him, len), _result,
+ INTERRUPTIBLE_NORESTART(::connect(fd, him, len), _result,\
os::Solaris::clear_interrupted);
// Depending on when thread interruption is reset, _result could be
// one of two values when errno == EINTR
if (((_result == OS_INTRPT) || (_result == OS_ERR))
- && (errno == EINTR)) {
+ && (errno == EINTR)) {
/* restarting a connect() changes its errno semantics */
- INTERRUPTIBLE(::connect(fd, him, len), _result,
- os::Solaris::clear_interrupted);
+ INTERRUPTIBLE(::connect(fd, him, len), _result,\
+ os::Solaris::clear_interrupted);
/* undo these changes */
if (_result == OS_ERR) {
if (errno == EALREADY) {
@@ -6434,43 +6429,38 @@ int os::connect(int fd, struct sockaddr *him, int len) {
return _result;
}
-int os::accept(int fd, struct sockaddr *him, int *len) {
- if (fd < 0)
- return OS_ERR;
- INTERRUPTIBLE_RETURN_INT((int)::accept(fd, him,\
- (socklen_t*) len), os::Solaris::clear_interrupted);
- }
+int os::accept(int fd, struct sockaddr* him, socklen_t* len) {
+ if (fd < 0) {
+ return OS_ERR;
+ }
+ INTERRUPTIBLE_RETURN_INT((int)::accept(fd, him, len),\
+ os::Solaris::clear_interrupted);
+}
-int os::recvfrom(int fd, char *buf, int nBytes, int flags,
- sockaddr *from, int *fromlen) {
- //%%note jvm_r11
- INTERRUPTIBLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes,\
- flags, from, fromlen), os::Solaris::clear_interrupted);
+int os::recvfrom(int fd, char* buf, size_t nBytes, uint flags,
+ sockaddr* from, socklen_t* fromlen) {
+ INTERRUPTIBLE_RETURN_INT((int)::recvfrom(fd, buf, nBytes, flags, from, fromlen),\
+ os::Solaris::clear_interrupted);
}
-int os::sendto(int fd, char *buf, int len, int flags,
- struct sockaddr *to, int tolen) {
- //%%note jvm_r11
- INTERRUPTIBLE_RETURN_INT((int)::sendto(fd, buf, len, flags,\
- to, tolen), os::Solaris::clear_interrupted);
+int os::sendto(int fd, char* buf, size_t len, uint flags,
+ struct sockaddr* to, socklen_t tolen) {
+ INTERRUPTIBLE_RETURN_INT((int)::sendto(fd, buf, len, flags, to, tolen),\
+ os::Solaris::clear_interrupted);
}
int os::socket_available(int fd, jint *pbytes) {
- if (fd < 0)
- return OS_OK;
-
- int ret;
-
- RESTARTABLE(::ioctl(fd, FIONREAD, pbytes), ret);
-
- //%% note ioctl can return 0 when successful, JVM_SocketAvailable
- // is expected to return 0 on failure and 1 on success to the jdk.
-
- return (ret == OS_ERR) ? 0 : 1;
+ if (fd < 0) {
+ return OS_OK;
+ }
+ int ret;
+ RESTARTABLE(::ioctl(fd, FIONREAD, pbytes), ret);
+ // note: ioctl can return 0 when successful, JVM_SocketAvailable
+ // is expected to return 0 on failure and 1 on success to the jdk.
+ return (ret == OS_ERR) ? 0 : 1;
}
-
-int os::bind(int fd, struct sockaddr *him, int len) {
+int os::bind(int fd, struct sockaddr* him, socklen_t len) {
INTERRUPTIBLE_RETURN_INT_NORESTART(::bind(fd, him, len),\
- os::Solaris::clear_interrupted);
+ os::Solaris::clear_interrupted);
}
diff --git a/src/os/solaris/vm/os_solaris.inline.hpp b/src/os/solaris/vm/os_solaris.inline.hpp
index b1e42a52d..7b63badc4 100644
--- a/src/os/solaris/vm/os_solaris.inline.hpp
+++ b/src/os/solaris/vm/os_solaris.inline.hpp
@@ -243,24 +243,25 @@ inline int os::socket_shutdown(int fd, int howto){
return ::shutdown(fd, howto);
}
-inline int os::get_sock_name(int fd, struct sockaddr *him, int *len){
- return ::getsockname(fd, him, (socklen_t*) len);
+inline int os::get_sock_name(int fd, struct sockaddr* him, socklen_t* len){
+ return ::getsockname(fd, him, len);
}
inline int os::get_host_name(char* name, int namelen){
return ::gethostname(name, namelen);
}
-inline struct hostent* os::get_host_by_name(char* name) {
+inline struct hostent* os::get_host_by_name(char* name) {
return ::gethostbyname(name);
}
+
inline int os::get_sock_opt(int fd, int level, int optname,
- char *optval, int* optlen){
- return ::getsockopt(fd, level, optname, optval, (socklen_t*) optlen);
+ char* optval, socklen_t* optlen) {
+ return ::getsockopt(fd, level, optname, optval, optlen);
}
inline int os::set_sock_opt(int fd, int level, int optname,
- const char *optval, int optlen){
+ const char *optval, socklen_t optlen) {
return ::setsockopt(fd, level, optname, optval, optlen);
}
#endif // OS_SOLARIS_VM_OS_SOLARIS_INLINE_HPP