aboutsummaryrefslogtreecommitdiff
path: root/libjava/include
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/include')
-rw-r--r--libjava/include/posix.h56
-rw-r--r--libjava/include/win32.h55
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