diff options
Diffstat (limited to 'libjava/include')
-rw-r--r-- | libjava/include/posix.h | 56 | ||||
-rw-r--r-- | libjava/include/win32.h | 55 |
2 files changed, 110 insertions, 1 deletions
diff --git a/libjava/include/posix.h b/libjava/include/posix.h index 8fa782f..975b93c 100644 --- a/libjava/include/posix.h +++ b/libjava/include/posix.h @@ -27,6 +27,10 @@ details. */ #include <sys/select.h> #endif +#ifdef HAVE_SYS_SOCKET_H +#include <sys/socket.h> +#endif + #ifdef HAVE_UNISTD_H #include <unistd.h> #endif @@ -41,11 +45,61 @@ extern jlong _Jv_platform_gettimeofday (); extern void _Jv_platform_initialize (void); extern void _Jv_platform_initProperties (java::util::Properties*); +static inline int +_Jv_socket (int domain, int type, int protocol) +{ + return ::socket (domain, type, protocol); +} + +inline int +_Jv_connect (jint fd, sockaddr *ptr, int len) +{ + return ::connect (fd, ptr, len); +} + +inline int +_Jv_close (jint fd) +{ + return ::close (fd); +} + inline void _Jv_platform_close_on_exec (jint fd) { // Ignore errors. - fcntl (fd, F_SETFD, FD_CLOEXEC); + ::fcntl (fd, F_SETFD, FD_CLOEXEC); } +// Avoid macro definitions of bind from system headers, e.g. on +// Solaris 7 with _XOPEN_SOURCE. FIXME +inline int +_Jv_bind (int fd, struct sockaddr *addr, int addrlen) +{ + return ::bind (fd, addr, addrlen); +} + +// Same problem with accept on Tru64 UNIX with _POSIX_PII_SOCKET +inline int +_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) +{ + return ::accept (fd, addr, addrlen); +} + +inline int +_Jv_listen (int fd, int backlog) +{ + return ::listen (fd, backlog); +} + +inline int +_Jv_write(int s, void *buf, int len) +{ + return ::write (s, buf, len); +} + +inline int +_Jv_read(int s, void *buf, int len) +{ + return ::read (s, buf, len); +} #endif diff --git a/libjava/include/win32.h b/libjava/include/win32.h index a035cfc..3965cb2 100644 --- a/libjava/include/win32.h +++ b/libjava/include/win32.h @@ -22,16 +22,71 @@ details. */ #include <io.h> +// these errors cannot occur on Win32 +#define ENOTCONN 0 +#define ECONNRESET 0 + +#ifndef ENOPROTOOPT +#define ENOPROTOOPT 109 +#endif + extern void _Jv_platform_initialize (void); extern void _Jv_platform_initProperties (java::util::Properties*); extern jlong _Jv_platform_gettimeofday (); +static inline int +_Jv_socket (int domain, int type, int protocol) +{ + return ::socket (domain, type, protocol); +} + +inline int +_Jv_connect (jint fd, sockaddr *ptr, int len) +{ + return ::connect (fd, ptr, len); +} + +inline int +_Jv_close (jint fd) +{ + return ::closesocket (fd); +} + inline void _Jv_platform_close_on_exec (jint) { // Ignore. } +inline int +_Jv_bind (int fd, struct sockaddr *addr, int addrlen) +{ + return ::bind (fd, addr, addrlen); +} + +inline int +_Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) +{ + return ::accept (fd, addr, addrlen); +} + +inline int +_Jv_listen (int fd, int backlog) +{ + return ::listen (fd, backlog); +} + +inline int +_Jv_write(int s, void *buf, int len) +{ + return ::send (s, (char*) buf, len, 0); +} + +inline int +_Jv_read(int s, void *buf, int len) +{ + return ::recv (s, (char*) buf, len, 0); +} #define HAVE_BACKTRACE /* Store up to SIZE return address of the current program state in |