1 // posix.h -- Helper functions for POSIX-flavored OSs.
3 /* Copyright (C) 2000, 2002 Free Software Foundation
5 This file is part of libgcj.
7 This software is copyrighted work licensed under the terms of the
8 Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
11 #ifndef __JV_POSIX_H__
12 #define __JV_POSIX_H__
14 /* Required on Tru64 UNIX V4/V5 so <sys/socket.h> defines prototypes of
15 socket functions with socklen_t instead of size_t. This must be defined
16 early so <standards.h> defines the correct version of __PIIX. */
17 #define _POSIX_PII_SOCKET
20 #include <sys/types.h>
22 #ifdef HAVE_SYS_TIME_H
26 #ifdef HAVE_SYS_SELECT_H
27 #include <sys/select.h>
30 #ifdef HAVE_SYS_SOCKET_H
31 #include <sys/socket.h>
41 #include <java/util/Properties.h>
43 extern int _Jv_select (int n, fd_set *, fd_set *, fd_set *, struct timeval *);
44 extern jlong _Jv_platform_gettimeofday ();
45 extern void _Jv_platform_initialize (void);
46 extern void _Jv_platform_initProperties (java::util::Properties*);
49 _Jv_socket (int domain, int type, int protocol)
51 return ::socket (domain, type, protocol);
55 _Jv_connect (jint fd, sockaddr *ptr, int len)
57 return ::connect (fd, ptr, len);
67 _Jv_platform_close_on_exec (jint fd)
70 ::fcntl (fd, F_SETFD, FD_CLOEXEC);
73 // Avoid macro definitions of bind from system headers, e.g. on
74 // Solaris 7 with _XOPEN_SOURCE. FIXME
76 _Jv_bind (int fd, struct sockaddr *addr, int addrlen)
78 return ::bind (fd, addr, addrlen);
81 // Same problem with accept on Tru64 UNIX with _POSIX_PII_SOCKET
83 _Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen)
85 return ::accept (fd, addr, addrlen);
89 _Jv_listen (int fd, int backlog)
91 return ::listen (fd, backlog);
95 _Jv_write(int s, void *buf, int len)
97 return ::write (s, buf, len);
101 _Jv_read(int s, void *buf, int len)
103 return ::read (s, buf, len);