summaryrefslogtreecommitdiff
path: root/ace/os_include/sys
diff options
context:
space:
mode:
Diffstat (limited to 'ace/os_include/sys')
-rw-r--r--ace/os_include/sys/os_mman.h26
-rw-r--r--ace/os_include/sys/os_resource.h40
-rw-r--r--ace/os_include/sys/os_select.h9
-rw-r--r--ace/os_include/sys/os_sem.h20
-rw-r--r--ace/os_include/sys/os_socket.h50
-rw-r--r--ace/os_include/sys/os_stat.h2
-rw-r--r--ace/os_include/sys/os_time.h12
-rw-r--r--ace/os_include/sys/os_times.h2
-rw-r--r--ace/os_include/sys/os_types.h11
-rw-r--r--ace/os_include/sys/os_uio.h14
-rw-r--r--ace/os_include/sys/os_wait.h54
11 files changed, 235 insertions, 5 deletions
diff --git a/ace/os_include/sys/os_mman.h b/ace/os_include/sys/os_mman.h
index 7014343bda6..d481cafaad8 100644
--- a/ace/os_include/sys/os_mman.h
+++ b/ace/os_include/sys/os_mman.h
@@ -76,10 +76,36 @@ PAGE_NOACCESS
PAGE_NOCACHE */
#endif /* !ACE_LACKS_SYS_MMAN_H && !ACE_WIN32*/
+# if !defined (ACE_MAP_PRIVATE)
+# define ACE_MAP_PRIVATE MAP_PRIVATE
+# endif /* ! ACE_MAP_PRIVATE */
+
+# if !defined (ACE_MAP_SHARED)
+# define ACE_MAP_SHARED MAP_SHARED
+# endif /* ! ACE_MAP_SHARED */
+
+# if !defined (ACE_MAP_FIXED)
+# define ACE_MAP_FIXED MAP_FIXED
+# endif /* ! ACE_MAP_FIXED */
+
+# if !defined (MAP_FAILED) || defined (ACE_HAS_BROKEN_MAP_FAILED)
+# undef MAP_FAILED
+# define MAP_FAILED ((void *) -1)
+# elif defined (ACE_HAS_LONG_MAP_FAILED)
+# undef MAP_FAILED
+# define MAP_FAILED ((void *) -1L)
+# endif /* !MAP_FAILED || ACE_HAS_BROKEN_MAP_FAILED */
+
#if !defined (PROT_RDWR)
# define PROT_RDWR (PROT_READ|PROT_WRITE)
#endif /* PROT_RDWR */
+# if defined (ACE_WIN32)
+ // Needed to map calls to NT transparently.
+# define MS_ASYNC 0
+# define MS_INVALIDATE 0
+# endif /* ACE_WIN32 */
+
# if !defined (MS_SYNC)
# define MS_SYNC 0x0
# endif /* !MS_SYNC */
diff --git a/ace/os_include/sys/os_resource.h b/ace/os_include/sys/os_resource.h
index 1aa55705ffe..8245d5bf92e 100644
--- a/ace/os_include/sys/os_resource.h
+++ b/ace/os_include/sys/os_resource.h
@@ -37,6 +37,17 @@ extern "C"
{
#endif /* __cplusplus */
+// There must be a better way to do this...
+#if !defined (RLIMIT_NOFILE)
+# if defined (linux) || defined (AIX) || defined (SCO)
+# if defined (RLIMIT_OFILE)
+# define RLIMIT_NOFILE RLIMIT_OFILE
+# else
+# define RLIMIT_NOFILE 200
+# endif /* RLIMIT_OFILE */
+# endif /* defined (linux) || defined (AIX) || defined (SCO) */
+#endif /* RLIMIT_NOFILE */
+
#if defined (ACE_HAS_BROKEN_SETRLIMIT)
typedef struct rlimit ACE_SETRLIMIT_TYPE;
#else
@@ -52,8 +63,37 @@ extern "C"
FILETIME ru_utime;
FILETIME ru_stime;
};
+#else /* !ACE_WIN32 */
+# if defined (m88k)
+# define RUSAGE_SELF 1
+# endif /* m88k */
#endif /* ACE_WIN32 */
+#if defined (ACE_LACKS_RLIMIT_PROTOTYPE)
+ int getrlimit (int resource, struct rlimit *rlp);
+ int setrlimit (int resource, const struct rlimit *rlp);
+#endif /* ACE_LACKS_RLIMIT_PROTOTYPE */
+
+#if defined (ACE_HAS_PRUSAGE_T)
+ typedef prusage_t ACE_Rusage;
+#elif defined (ACE_HAS_GETRUSAGE)
+ typedef rusage ACE_Rusage;
+#else
+ typedef int ACE_Rusage;
+#endif /* ACE_HAS_PRUSAGE_T */
+
+#if !defined (ACE_WIN32)
+// These prototypes are chronically lacking from many versions of
+// UNIX.
+# if !defined (ACE_HAS_GETRUSAGE_PROTO)
+ int getrusage (int who, struct rusage *rusage);
+# endif /* ! ACE_HAS_GETRUSAGE_PROTO */
+
+# if defined (ACE_LACKS_SYSCALL)
+ int syscall (int, ACE_HANDLE, struct rusage *);
+# endif /* ACE_LACKS_SYSCALL */
+#endif /* !ACE_WIN32 */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ace/os_include/sys/os_select.h b/ace/os_include/sys/os_select.h
index 21b8d4a4ae5..ae5f371abdf 100644
--- a/ace/os_include/sys/os_select.h
+++ b/ace/os_include/sys/os_select.h
@@ -44,6 +44,10 @@ extern "C"
#if defined (ACE_WIN32)
// This will help until we figure out everything:
# define NFDBITS 32 /* only used in unused functions... */
+#elif defined (__QNX__)
+# if !defined (NFDBITS)
+# define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
+# endif /* ! NFDBITS */
#endif /* ACE_WIN32 */
#if defined (ACE_SELECT_USES_INT)
@@ -52,6 +56,11 @@ extern "C"
typedef fd_set ACE_FD_SET_TYPE;
#endif /* ACE_SELECT_USES_INT */
+#if defined (__rtems__)
+ int select (int n, fd_set *readfds, fd_set *writefds,
+ fd_set *exceptfds, const struct timeval *timeout);
+#endif /* __rtems__ */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ace/os_include/sys/os_sem.h b/ace/os_include/sys/os_sem.h
index ef35feb3397..b0f3544dd26 100644
--- a/ace/os_include/sys/os_sem.h
+++ b/ace/os_include/sys/os_sem.h
@@ -36,6 +36,26 @@ extern "C"
{
#endif /* __cplusplus */
+# if !defined (GETVAL)
+# define GETVAL 0
+# endif /* GETVAL */
+
+# if !defined (SETVAL)
+# define SETVAL 0
+# endif /* SETVAL */
+
+# if !defined (GETALL)
+# define GETALL 0
+# endif /* GETALL */
+
+# if !defined (SETALL)
+# define SETALL 0
+# endif /* SETALL */
+
+# if !defined (SEM_UNDO)
+# define SEM_UNDO 0
+# endif /* SEM_UNDO */
+
#if defined (ACE_LACKS_SEMBUF_T)
struct sembuf
{
diff --git a/ace/os_include/sys/os_socket.h b/ace/os_include/sys/os_socket.h
index 5c9ac3796a9..d0b69c0aef2 100644
--- a/ace/os_include/sys/os_socket.h
+++ b/ace/os_include/sys/os_socket.h
@@ -141,6 +141,14 @@ extern "C"
# define ACE_PROTOCOL_FAMILY_INET PF_INET
#endif /* ACE_HAS_IPV6 */
+#if defined (ACE_HAS_SOCKLEN_T)
+typedef socklen_t ACE_SOCKET_LEN;
+#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
+typedef size_t ACE_SOCKET_LEN;
+#else
+typedef int ACE_SOCKET_LEN;
+#endif /* ACE_HAS_SIZET_SOCKET_LEN */
+
#if defined (ACE_HAS_LKSCTP)
extern "C"
{
@@ -148,6 +156,48 @@ extern "C"
}
#endif /* ACE_HAS_LKSCTP */
+# if defined (ACE_LACKS_TIMEDWAIT_PROTOTYPES)
+
+ ssize_t recv_timedwait (ACE_HANDLE handle,
+ char *buf,
+ int len,
+ int flags,
+ struct timespec *timeout);
+
+ ssize_t recvmsg_timedwait (ACE_HANDLE handle,
+ struct msghdr *msg,
+ int flags,
+ struct timespec *timeout);
+
+ ssize_t recvfrom_timedwait (ACE_HANDLE handle,
+ char *buf,
+ int len,
+ int flags,
+ struct sockaddr *addr,
+ int *addrlen,
+ struct timespec *timeout);
+
+ ssize_t send_timedwait (ACE_HANDLE handle,
+ const char *buf,
+ int len,
+ int flags,
+ struct timespec *timeout);
+
+ ssize_t sendmsg_timedwait (ACE_HANDLE handle,
+ ACE_SENDMSG_TYPE *msg,
+ int flags,
+ struct timespec *timeout);
+
+ ssize_t sendto_timedwait (ACE_HANDLE handle,
+ const char *buf,
+ int len,
+ int flags,
+ const struct sockaddr *addr,
+ int addrlen,
+ struct timespec *timeout);
+
+# endif /* ACE_LACKS_TIMEDWAIT_PROTOTYPES */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ace/os_include/sys/os_stat.h b/ace/os_include/sys/os_stat.h
index e43c68ca282..7224eee9160 100644
--- a/ace/os_include/sys/os_stat.h
+++ b/ace/os_include/sys/os_stat.h
@@ -27,7 +27,7 @@
#include "ace/os_include/sys/os_types.h"
#if defined (ACE_WIN32) && !defined (ACE_HAS_WINCE)
-# include <direct.h>
+# include /**/ <direct.h>
#endif /* ACE_WIN32 && !ACE_HAS_WINCE */
// This collides with phile.h on PSOS
diff --git a/ace/os_include/sys/os_time.h b/ace/os_include/sys/os_time.h
index 297a4ce084f..16336d47034 100644
--- a/ace/os_include/sys/os_time.h
+++ b/ace/os_include/sys/os_time.h
@@ -37,6 +37,18 @@ extern "C"
{
#endif /* __cplusplus */
+#if defined (ACE_HAS_SVR4_GETTIMEOFDAY)
+# if !defined (m88k) && !defined (SCO)
+ int gettimeofday (struct timeval *tp, void * = 0);
+# else
+ int gettimeofday (struct timeval *tp);
+# endif /* !m88k && !SCO */
+#elif defined (ACE_HAS_OSF1_GETTIMEOFDAY)
+ int gettimeofday (struct timeval *tp, struct timezone * = 0);
+#elif defined (ACE_HAS_SUNOS4_GETTIMEOFDAY)
+# define ACE_HAS_SVR4_GETTIMEOFDAY
+#endif /* ACE_HAS_SVR4_GETTIMEOFDAY */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ace/os_include/sys/os_times.h b/ace/os_include/sys/os_times.h
index 13d75f8678f..62e69921e7d 100644
--- a/ace/os_include/sys/os_times.h
+++ b/ace/os_include/sys/os_times.h
@@ -24,7 +24,7 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
-#include "ace/os_include/sys/types.h"
+#include "ace/os_include/sys/os_types.h"
#if !defined (ACE_LACKS_SYS_TIMES_H)
# include /**/ <sys/times.h>
diff --git a/ace/os_include/sys/os_types.h b/ace/os_include/sys/os_types.h
index 800d35dbf3f..5ba552dde08 100644
--- a/ace/os_include/sys/os_types.h
+++ b/ace/os_include/sys/os_types.h
@@ -34,12 +34,23 @@
# include /**/ <types.h>
#endif /* ACE_HAS_WINCE */
+# if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
+ (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
+using std::time_t;
+# endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
+
// Place all additions (especially function declarations) within extern "C" {}
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
+# if defined (ACE_LACKS_FLOATING_POINT)
+typedef ACE_UINT32 ACE_timer_t;
+# else
+typedef double ACE_timer_t;
+# endif /* ACE_LACKS_FLOATING_POINT */
+
// todo: don't forget to clean this up! ;-)
#if !defined (ACE_HAS_CLOCK_GETTIME) && !(defined (_CLOCKID_T_) || defined (_CLOCKID_T))
typedef int clockid_t;
diff --git a/ace/os_include/sys/os_uio.h b/ace/os_include/sys/os_uio.h
index 1cb7a6d2e71..6c39c1e15b8 100644
--- a/ace/os_include/sys/os_uio.h
+++ b/ace/os_include/sys/os_uio.h
@@ -75,6 +75,20 @@ extern "C"
typedef struct iovec ACE_READV_TYPE;
#endif /* ACE_HAS_BROKEN_READV */
+# if defined (ACE_LACKS_TIMEDWAIT_PROTOTYPES)
+
+ ssize_t readv_timedwait (ACE_HANDLE handle,
+ iovec *iov,
+ int iovcnt,
+ struct timespec* timeout);
+
+ ssize_t writev_timedwait (ACE_HANDLE handle,
+ ACE_WRITEV_TYPE *iov,
+ int iovcnt,
+ struct timespec *timeout);
+
+# endif /* ACE_LACKS_TIMEDWAIT_PROTOTYPES */
+
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/ace/os_include/sys/os_wait.h b/ace/os_include/sys/os_wait.h
index 8b36fedfe1d..8e6ec6e1624 100644
--- a/ace/os_include/sys/os_wait.h
+++ b/ace/os_include/sys/os_wait.h
@@ -37,9 +37,57 @@ extern "C"
{
#endif /* __cplusplus */
-#if !defined (WNOHANG)
-# define WNOHANG 0100
-#endif /* !WNOHANG */
+ // Wrapping around wait status <wstat> macros for platforms that
+ // lack them.
+
+# if !defined (WCOREDUMP)
+# define WCOREDUMP(stat) 0
+# endif /* WCOREDUMP */
+
+# if !defined (WNOHANG)
+# define WNOHANG 0100
+# endif /* !WNOHANG */
+
+ // If the value of WIFEXITED(stat) is non-zero, this macro evaluates
+ // to the exit code that the child process exit(3C), or the value
+ // that the child process returned from main. Peaceful exit code is
+ // 0.
+# if !defined (WEXITSTATUS)
+# define WEXITSTATUS(stat) stat
+# endif /* WEXITSTATUS */
+
+# if !defined (WIFCONTINUED)
+# define WIFCONTINUED(stat) 0
+# endif /* WIFCONTINUED */
+
+ // Evaluates to a non-zero value if status was returned for a child
+ // process that terminated normally. 0 means status wasn't
+ // returned.
+# if !defined (WIFEXITED)
+# define WIFEXITED(stat) 1
+# endif /* WIFEXITED */
+
+ // Evaluates to a non-zero value if status was returned for a child
+ // process that terminated due to the receipt of a signal. 0 means
+ // status wasnt returned.
+# if !defined (WIFSIGNALED)
+# define WIFSIGNALED(stat) 0
+# endif /* WIFSIGNALED */
+
+# if !defined (WIFSTOPPED)
+# define WIFSTOPPED(stat) 0
+# endif /* WIFSTOPPED */
+
+# if !defined (WSTOPSIG)
+# define WSTOPSIG(stat) 0
+# endif /* WSTOPSIG */
+
+ // If the value of WIFSIGNALED(stat) is non-zero, this macro
+ // evaluates to the number of the signal that caused the
+ // termination of the child process.
+# if !defined (WTERMSIG)
+# define WTERMSIG(stat) 0
+# endif /* WTERMSIG */
#ifdef __cplusplus
}