summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>1997-06-21 17:34:12 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>1997-06-21 17:34:12 +0000
commitd6d266b2f42bdc2ef1ddfaca63964232237fbe35 (patch)
tree7ee50866e301f7bdca0c4df3ddfd22a898e5d6a0 /ace
parentefb6d8efd41ff7464360910602e74d013151c727 (diff)
downloadATCD-d6d266b2f42bdc2ef1ddfaca63964232237fbe35.tar.gz
*** empty log message ***
Diffstat (limited to 'ace')
-rw-r--r--ace/Handle_Set.cpp24
-rw-r--r--ace/OS.h220
-rw-r--r--ace/OS.i11
-rw-r--r--ace/README2
-rw-r--r--ace/Signal.cpp8
-rw-r--r--ace/Signal.i6
-rw-r--r--ace/TLI.cpp8
-rw-r--r--ace/TLI_Stream.i2
-rw-r--r--ace/config-tandem.h484
-rw-r--r--ace/config-unixware-2.1.2-g++.h80
10 files changed, 832 insertions, 13 deletions
diff --git a/ace/Handle_Set.cpp b/ace/Handle_Set.cpp
index b09333d144e..e146368ca07 100644
--- a/ace/Handle_Set.cpp
+++ b/ace/Handle_Set.cpp
@@ -78,6 +78,28 @@ ACE_Handle_Set::ACE_Handle_Set (const ACE_FD_SET_TYPE &fd_mask)
// Counts the number of bits enabled in N. Uses a table lookup to
// speed up the count.
+#if 0
+// If there are platforms where fd_mask isn't typedef'd to "int" we'll
+// have to use the following code. OS_FDMASK_TYPE is set in the
+// config*.h file to match whatever the OS has decided it should be.
+// For the Alpha, that is "int", for Linux it is "u_long."
+
+int
+ACE_Handle_Set::count_bits (OS_FDMASK_TYPE n) const
+{
+ ACE_TRACE ("ACE_Handle_Set::count_bits");
+ int rval = 0;
+
+ for (int i = 0; i < sizeof (u_long); ++i)
+ {
+ rval += ACE_Handle_Set::nbits_[n & 0xff];
+ n >>= 8;
+ }
+
+ return rval;
+}
+#endif /* 0 */
+
int
ACE_Handle_Set::count_bits (u_long n) const
{
@@ -85,7 +107,7 @@ ACE_Handle_Set::count_bits (u_long n) const
return (ACE_Handle_Set::nbits_[n & 0xff]
+ ACE_Handle_Set::nbits_[(n >> 8) & 0xff]
+ ACE_Handle_Set::nbits_[(n >> 16) & 0xff]
- + ACE_Handle_Set::nbits_[n >> 24]);
+ + ACE_Handle_Set::nbits_[(n >> 24) & 0xff]);
}
// Synchronize the underlying FD_SET with the MAX_FD and the SIZE.
diff --git a/ace/OS.h b/ace/OS.h
index 0dc0b7aeb4c..a075592e03e 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -27,109 +27,212 @@
#endif /* ACE_HAS_4_4BSD_SENDMSG_RECVMSG */
// Define the default constants for ACE. Many of these are used for
-// the ACE tests and applications. You may want to change some of
-// these to correspond to your environment.
+// the ACE tests and applications. You can change these values by
+// defining the macros in your config.h file.
+#if !defined (ACE_DEFAULT_TIMEOUT)
#define ACE_DEFAULT_TIMEOUT 5
+#endif /* ACE_DEFAULT_TIMEOUT */
+
+#if !defined (ACE_DEFAULT_THREADS)
#define ACE_DEFAULT_THREADS 1
+#endif /* ACE_DEFAULT_THREADS */
// The following 3 defines are used in the IP multicast and broadcast tests.
+#if !defined (ACE_DEFAULT_BROADCAST_PORT)
#define ACE_DEFAULT_BROADCAST_PORT 10000
+#endif /* ACE_DEFAULT_BROADCAST_PORT */
+
+#if !defined (ACE_DEFAULT_MULTICAST_PORT)
#define ACE_DEFAULT_MULTICAST_PORT 10001
+#endif /* ACE_DEFAULT_MULTICAST_PORT */
+
+#if !defined (ACE_DEFAULT_MULTICAST_ADDR)
#define ACE_DEFAULT_MULTICAST_ADDR "224.9.9.2"
+#endif /* ACE_DEFAULT_MULTICAST_ADDR */
// Default port number for HTTP.
+#if !defined (ACE_DEFAULT_HTTP_SERVER_PORT)
#define ACE_DEFAULT_HTTP_SERVER_PORT 80
+#endif /* ACE_DEFAULT_HTTP_SERVER_PORT */
// Used in many IPC_SAP tests
+#if !defined (ACE_DEFAULT_SERVER_PORT)
#define ACE_DEFAULT_SERVER_PORT 10002
+#endif /* ACE_DEFAULT_SERVER_PORT */
// Used in Acceptor tests
+#if !defined (ACE_DEFAULT_SERVER_PORT_STR)
#define ACE_DEFAULT_SERVER_PORT_STR "10002"
+#endif /* ACE_DEFAULT_SERVER_PORT_STR */
// Used for the Service_Directory test
+#if !defined (ACE_DEFAULT_SERVICE_PORT)
#define ACE_DEFAULT_SERVICE_PORT 10003
+#endif /* ACE_DEFAULT_SERVICE_PORT */
// Used for the ACE_Thread_Spawn test
-#define ACE_DEFAULT_THR_PORT 10004
+#if !defined (ACE_DEFAULT_THR_PORT )
+#define ACE_DEFAULT_THR_PORT 10004
+#endif /* ACE_DEFAULT_THR_PORT */
// Used for SOCK_Connect::connect() tests
+#if !defined (ACE_DEFAULT_LOCAL_PORT)
#define ACE_DEFAULT_LOCAL_PORT 10005
+#endif /* ACE_DEFAULT_LOCAL_PORT */
// Used for Connector tests
+#if !defined (ACE_DEFAULT_LOCAL_PORT_STR)
#define ACE_DEFAULT_LOCAL_PORT_STR "10005"
+#endif /* ACE_DEFAULT_LOCAL_PORT_STR */
// Used for the name server.
+#if !defined (ACE_DEFAULT_NAME_SERVER_PORT)
#define ACE_DEFAULT_NAME_SERVER_PORT 10006
+#endif /* ACE_DEFAULT_NAME_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_NAME_SERVER_PORT_STR)
#define ACE_DEFAULT_NAME_SERVER_PORT_STR "10006"
+#endif /* ACE_DEFAULT_NAME_SERVER_PORT_STR */
// Used for the token server.
+#if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT)
#define ACE_DEFAULT_TOKEN_SERVER_PORT 10007
+#endif /* ACE_DEFAULT_TOKEN_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_TOKEN_SERVER_PORT_STR)
#define ACE_DEFAULT_TOKEN_SERVER_PORT_STR "10007"
+#endif /* ACE_DEFAULT_TOKEN_SERVER_PORT_STR */
// Used for the logging server.
+#if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT)
#define ACE_DEFAULT_LOGGING_SERVER_PORT 10008
+#endif /* ACE_DEFAULT_LOGGING_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_LOGGING_SERVER_PORT_STR)
#define ACE_DEFAULT_LOGGING_SERVER_PORT_STR "10008"
+#endif /* ACE_DEFAULT_LOGGING_SERVER_PORT_STR */
// Used for the logging server.
+#if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT)
#define ACE_DEFAULT_THR_LOGGING_SERVER_PORT 10008
+#endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR)
#define ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR "10008"
+#endif /* ACE_DEFAULT_THR_LOGGING_SERVER_PORT_STR */
// Used for the gateway server.
+#if !defined (ACE_DEFAULT_GATEWAY_SERVER_PORT)
#define ACE_DEFAULT_GATEWAY_SERVER_PORT 10009
+#endif /* ACE_DEFAULT_GATEWAY_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_GATEWAY_SERVER_PORT_STR)
#define ACE_DEFAULT_GATEWAY_SERVER_PORT_STR "10009"
+#endif /* ACE_DEFAULT_GATEWAY_SERVER_PORT_STR */
// Used for the peer server.
+#if !defined (ACE_DEFAULT_PEER_SERVER_PORT)
#define ACE_DEFAULT_PEER_SERVER_PORT 10010
+#endif /* ACE_DEFAULT_PEER_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_PEER_SERVER_PORT_STR)
#define ACE_DEFAULT_PEER_SERVER_PORT_STR "10010"
+#endif /* ACE_DEFAULT_PEER_SERVER_PORT_STR */
// Used for the time server.
+#if !defined (ACE_DEFAULT_TIME_SERVER_PORT)
#define ACE_DEFAULT_TIME_SERVER_PORT 10011
+#endif /* ACE_DEFAULT_TIME_SERVER_PORT */
+
+#if !defined (ACE_DEFAULT_TIME_SERVER_PORT_STR)
#define ACE_DEFAULT_TIME_SERVER_PORT_STR "10011"
+#endif /* ACE_DEFAULT_TIME_SERVER_PORT_STR */
+
+#if !defined (ACE_DEFAULT_TIME_SERVER_STR)
#define ACE_DEFAULT_TIME_SERVER_STR "ACE_TS_TIME"
+#endif /* ACE_DEFAULT_TIME_SERVER_STR */
+#if !defined (ACE_DEFAULT_SERVER_HOST)
#define ACE_DEFAULT_SERVER_HOST "localhost"
+#endif /* ACE_DEFAULT_SERVER_HOST */
// Default shared memory key
+#if !defined (ACE_DEFAULT_SHM_KEY)
#define ACE_DEFAULT_SHM_KEY 1234
+#endif /* ACE_DEFAULT_SHM_KEY */
// Default segment size used by SYSV shared memory (128 K)
+#if !defined (ACE_DEFAULT_SEGMENT_SIZE)
#define ACE_DEFAULT_SEGMENT_SIZE 1024 * 128
+#endif /* ACE_DEFAULT_SEGMENT_SIZE */
// Maximum number of SYSV shared memory segments
// (does anyone know how to figure out the right values?!)
+#if !defined (ACE_DEFAULT_MAX_SEGMENTS)
#define ACE_DEFAULT_MAX_SEGMENTS 6
+#endif /* ACE_DEFAULT_MAX_SEGMENTS */
// Used by the FIFO tests.
+#if !defined (ACE_DEFAULT_RENDEZVOUS)
#define ACE_DEFAULT_RENDEZVOUS "/tmp/fifo.ace"
+#endif /* ACE_DEFAULT_RENDEZVOUS */
// Name of the map that's stored in shared memory.
+#if !defined (ACE_NAME_SERVER_MAP)
#define ACE_NAME_SERVER_MAP "Name Server Map"
+#endif /* ACE_NAME_SERVER_MAP */
// Default file permissions.
+#if !defined (ACE_DEFAULT_FILE_PERMS)
#define ACE_DEFAULT_FILE_PERMS 0666
+#endif /* ACE_DEFAULT_FILE_PERMS */
// Default directory permissions.
+#if !defined (ACE_DEFAULT_DIR_PERMS)
#define ACE_DEFAULT_DIR_PERMS 0777
+#endif /* ACE_DEFAULT_DIR_PERMS */
// Default size of the ACE Reactor.
+#if !defined (ACE_DEFAULT_REACTOR_SIZE)
#define ACE_DEFAULT_REACTOR_SIZE FD_SETSIZE
+#endif /* ACE_DEFAULT_REACTOR_SIZE */
// Default size of the ACE Map_Manager.
+#if !defined (ACE_DEFAULT_MAP_SIZE)
#define ACE_DEFAULT_MAP_SIZE 1024
+#endif /* ACE_DEFAULT_MAP_SIZE */
// Defaults for ACE Timer Wheel
+#if !defined (ACE_DEFAULT_TIMER_WHEEL_SIZE)
#define ACE_DEFAULT_TIMER_WHEEL_SIZE 1024
+#endif /* ACE_DEFAULT_TIMER_WHEEL_SIZE */
+
+#if !defined (ACE_DEFAULT_TIMER_WHEEL_RESOLUTION)
#define ACE_DEFAULT_TIMER_WHEEL_RESOLUTION 100
+#endif /* ACE_DEFAULT_TIMER_WHEEL_RESOLUTION */
// Default size for ACE Timer Hash table
+#if !defined (ACE_DEFAULT_TIMER_HASH_TABLE_SIZE)
#define ACE_DEFAULT_TIMER_HASH_TABLE_SIZE 1024
+#endif /* ACE_DEFAULT_TIMER_HASH_TABLE_SIZE */
// Defaults for the ACE Free List
+#if !defined (ACE_DEFAULT_FREE_LIST_PREALLOC)
#define ACE_DEFAULT_FREE_LIST_PREALLOC 0
+#endif /* ACE_DEFAULT_FREE_LIST_PREALLOC */
+
+#if !defined (ACE_DEFAULT_FREE_LIST_LWM)
#define ACE_DEFAULT_FREE_LIST_LWM 0
+#endif /* ACE_DEFAULT_FREE_LIST_LWM */
+
+#if !defined (ACE_DEFAULT_FREE_LIST_HWM)
#define ACE_DEFAULT_FREE_LIST_HWM 25000
+#endif /* ACE_DEFAULT_FREE_LIST_HWM */
+
+#if !defined (ACE_DEFAULT_FREE_LIST_INC)
#define ACE_DEFAULT_FREE_LIST_INC 100
+#endif /* ACE_DEFAULT_FREE_LIST_INC */
// Here are all ACE-specific global declarations needed throughout
// ACE.
@@ -876,7 +979,9 @@ enum ACE_Thread_State
// been reclaimed yet.
};
-#define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL-1L)
+#if !defined (ACE_DEFAULT_THREAD_PRIORITY)
+#define ACE_DEFAULT_THREAD_PRIORITY (-0x7fffffffL - 1L)
+#endif /* ACE_DEFAULT_THREAD_PRIORITY */
// Convenient macro for testing for deadlock, as well as for detecting
// when mutexes fail.
@@ -1454,6 +1559,9 @@ typedef void (*ACE_SignalHandlerV)(int);
#if defined (ACE_HAS_SIG_C_FUNC)
}
#endif /* ACE_HAS_SIG_C_FUNC */
+#elif defined (ACE_HAS_TANDEM_SIGNALS)
+typedef void (*ACE_SignalHandler)(...);
+typedef void (*ACE_SignalHandlerV)(...);
#elif defined (ACE_HAS_IRIX_53_SIGNALS)
typedef void (*ACE_SignalHandler)(...);
typedef void (*ACE_SignalHandlerV)(...);
@@ -1542,16 +1650,35 @@ struct utsname
#include /**/ <sys/timeb.h>
-// The following 3 defines are used by the ACE Name Server...
+// The following defines are used by the ACE Name Server...
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR_W)
#define ACE_DEFAULT_NAMESPACE_DIR_W L"C:\\temp"
+#endif /* ACE_DEFAULT_NAMESPACE_DIR_W */
+
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR_A)
#define ACE_DEFAULT_NAMESPACE_DIR_A "C:\\temp"
+#endif /* ACE_DEFAULT_NAMESPACE_DIR_A */
+
+#if !defined (ACE_DEFAULT_LOCALNAME_A)
#define ACE_DEFAULT_LOCALNAME_A "\\localnames"
+#endif /* ACE_DEFAULT_LOCALNAME_A */
+
+#if !defined (ACE_DEFAULT_LOCALNAME_W)
#define ACE_DEFAULT_LOCALNAME_W L"\\localnames"
+#endif /* ACE_DEFAULT_LOCALNAME_W */
+
+#if !defined (ACE_DEFAULT_GLOBALNAME_A)
#define ACE_DEFAULT_GLOBALNAME_A "\\globalnames"
+#endif /* ACE_DEFAULT_GLOBALNAME_A */
+
+#if !defined (ACE_DEFAULT_GLOBALNAME_W)
#define ACE_DEFAULT_GLOBALNAME_W L"\\globalnames"
+#endif /* ACE_DEFAULT_GLOBALNAME_W */
// Need to work around odd glitches with NT.
+#if !defined (ACE_MAX_DEFAULT_PORT)
#define ACE_MAX_DEFAULT_PORT 0
+#endif /* ACE_MAX_DEFAULT_PORT */
// We're on WinNT or Win95
#define ACE_PLATFORM_A "Win32"
@@ -1560,23 +1687,31 @@ struct utsname
#define ACE_PLATFORM_EXE_SUFFIX_W L".exe"
// Used for ACE_MMAP_Memory_Pool
+#if !defined (ACE_DEFAULT_BACKING_STORE)
#define ACE_DEFAULT_BACKING_STORE __TEXT ("C:\\temp\\ace-malloc-XXXXXX")
+#endif /* ACE_DEFAULT_BACKING_STORE */
// Used for logging
+#if !defined (ACE_DEFAULT_LOGFILE)
#define ACE_DEFAULT_LOGFILE "C:\\temp\\logfile"
+#endif /* ACE_DEFAULT_LOGFILE */
// Used for dynamic linking
+#if !defined (ACE_DEFAULT_SVC_CONF)
#define ACE_DEFAULT_SVC_CONF ".\\svc.conf"
+#endif /* ACE_DEFAULT_SVC_CONF */
// The following are #defines and #includes that are specific to
// WIN32.
-
#define ACE_STDIN GetStdHandle (STD_INPUT_HANDLE)
#define ACE_STDOUT GetStdHandle (STD_OUTPUT_HANDLE)
#define ACE_STDERR GetStdHandle (STD_ERROR_HANDLE)
// Default semaphore key and mutex name
+#if !defined (ACE_DEFAULT_SEM_KEY)
#define ACE_DEFAULT_SEM_KEY "ACE_SEM_KEY"
+#endif /* ACE_DEFAULT_SEM_KEY */
+
#define ACE_INVALID_SEM_KEY 0
#define ACE_SEH_TRY __try
@@ -1777,7 +1912,10 @@ typedef char TCHAR;
#define ACE_MAX_DEFAULT_PORT 65535
// Default semaphore key
+#if !defined (ACE_DEFAULT_SEM_KEY)
#define ACE_DEFAULT_SEM_KEY 1234
+#endif /* ACE_DEFAULT_SEM_KEY */
+
#define ACE_INVALID_SEM_KEY -1
// Define the pathname separator characters for UNIX.
@@ -1807,27 +1945,54 @@ typedef char TCHAR;
#define ACE_DLL_PREFIX "lib"
// The following 3 defines are used by the ACE Name Server...
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR_A)
#define ACE_DEFAULT_NAMESPACE_DIR_A "/tmp"
+#endif /* ACE_DEFAULT_NAMESPACE_DIR_A */
+
+#if !defined (ACE_DEFAULT_LOCALNAME_A)
#define ACE_DEFAULT_LOCALNAME_A "/localnames"
+#endif /* ACE_DEFAULT_LOCALNAME_A */
+
+#if !defined (ACE_DEFAULT_GLOBALNAME_A)
#define ACE_DEFAULT_GLOBALNAME_A "/globalnames"
+#endif /* ACE_DEFAULT_GLOBALNAME_A */
+
#if defined (ACE_HAS_UNICODE)
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR_W)
#define ACE_DEFAULT_NAMESPACE_DIR_W L"/tmp"
+#endif /* ACE_DEFAULT_NAMESPACE_DIR_W */
+#if !defined (ACE_DEFAULT_LOCALNAME_W)
#define ACE_DEFAULT_LOCALNAME_W L"/localnames"
+#endif /* ACE_DEFAULT_LOCALNAME_W */
+#if !defined (ACE_DEFAULT_GLOBALNAME_W)
#define ACE_DEFAULT_GLOBALNAME_W L"/globalnames"
+#endif /* ACE_DEFAULT_GLOBALNAME_W */
#else
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR_W)
#define ACE_DEFAULT_NAMESPACE_DIR_W "/tmp"
+#endif /* ACE_DEFAULT_NAMESPACE_DIR_W */
+#if !defined (ACE_DEFAULT_LOCALNAME_W)
#define ACE_DEFAULT_LOCALNAME_W "/localnames"
+#endif /* ACE_DEFAULT_LOCALNAME_W */
+#if !defined (ACE_DEFAULT_GLOBALNAME_W)
#define ACE_DEFAULT_GLOBALNAME_W "/globalnames"
+#endif /* ACE_DEFAULT_GLOBALNAME_W */
#endif /* ACE_HAS_UNICODE */
// Used for ACE_MMAP_Memory_Pool
+#if !defined (ACE_DEFAULT_BACKING_STORE)
#define ACE_DEFAULT_BACKING_STORE "/tmp/ace-malloc-XXXXXX"
+#endif /* ACE_DEFAULT_BACKING_STORE */
// Used for logging
+#if !defined (ACE_DEFAULT_LOGFILE)
#define ACE_DEFAULT_LOGFILE "/tmp/logfile"
+#endif /* ACE_DEFAULT_LOGFILE */
// Used for dynamic linking.
+#if !defined (ACE_DEFAULT_SVC_CONF)
#define ACE_DEFAULT_SVC_CONF "./svc.conf"
+#endif /* ACE_DEFAULT_SVC_CONF */
// The following are #defines and #includes that are specific to UNIX.
@@ -2396,7 +2561,9 @@ typedef long ACE_INT32;
// Default number of <ACE_Event_Handler>s supported by
// <ACE_Timer_Heap>.
+#if !defined (ACE_DEFAULT_TIMERS)
#define ACE_DEFAULT_TIMERS _SC_TIMER_MAX
+#endif /* ACE_DEFAULT_TIMERS */
// Note that this assumes shorts are 16 bits.
typedef u_short ACE_USHORT16;
@@ -3267,34 +3434,69 @@ private:
if (POINTER == 0) { errno = ENOMEM; return; } \
} while (0)
+#if !defined (ACE_DEFAULT_MUTEX_A)
#define ACE_DEFAULT_MUTEX_A "ACE_MUTEX"
+#endif /* ACE_DEFAULT_MUTEX_A */
#if defined (UNICODE)
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR)
#define ACE_DEFAULT_NAMESPACE_DIR ACE_DEFAULT_NAMESPACE_DIR_W
+#endif /* ACE_DEFAULT_NAMESPACE_DIR */
+#if !defined (ACE_DEFAULT_LOCALNAME)
#define ACE_DEFAULT_LOCALNAME ACE_DEFAULT_LOCALNAME_W
+#endif /* ACE_DEFAULT_LOCALNAME */
+#if !defined (ACE_DEFAULT_GLOBALNAME)
#define ACE_DEFAULT_GLOBALNAME ACE_DEFAULT_GLOBALNAME_W
+#endif /* ACE_DEFAULT_GLOBALNAME */
+#if !defined (ACE_DIRECTORY_SEPARATOR_STR)
#define ACE_DIRECTORY_SEPARATOR_STR ACE_DIRECTORY_SEPARATOR_STR_W
+#endif /* ACE_DIRECTORY_SEPARATOR_STR */
+#if !defined (ACE_DIRECTORY_SEPARATOR_CHAR)
#define ACE_DIRECTORY_SEPARATOR_CHAR ACE_DIRECTORY_SEPARATOR_CHAR_W
+#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */
+#if !defined (ACE_PLATFORM)
#define ACE_PLATFORM ACE_PLATFORM_W
+#endif /* ACE_PLATFORM */
+#if !defined (ACE_PLATFORM_EXE_SUFFIX)
#define ACE_PLATFORM_EXE_SUFFIX ACE_PLATFORM_EXE_SUFFIX_W
-
+#endif /* ACE_PLATFORM_EXE_SUFFIX */
+#if !defined (ACE_DEFAULT_MUTEX_W)
#define ACE_DEFAULT_MUTEX_W L"ACE_MUTEX"
+#endif /* ACE_DEFAULT_MUTEX_W */
+#if !defined (ACE_DEFAULT_MUTEX)
#define ACE_DEFAULT_MUTEX ACE_DEFAULT_MUTEX_W
+#endif /* ACE_DEFAULT_MUTEX */
#else
+#if !defined (ACE_DEFAULT_NAMESPACE_DIR)
#define ACE_DEFAULT_NAMESPACE_DIR ACE_DEFAULT_NAMESPACE_DIR_A
+#endif /* ACE_DEFAULT_NAMESPACE_DIR */
+#if !defined (ACE_DEFAULT_LOCALNAME)
#define ACE_DEFAULT_LOCALNAME ACE_DEFAULT_LOCALNAME_A
+#endif /* ACE_DEFAULT_LOCALNAME */
+#if !defined (ACE_DEFAULT_GLOBALNAME)
#define ACE_DEFAULT_GLOBALNAME ACE_DEFAULT_GLOBALNAME_A
+#endif /* ACE_DEFAULT_GLOBALNAME */
+#if !defined (ACE_DIRECTORY_SEPARATOR_STR)
#define ACE_DIRECTORY_SEPARATOR_STR ACE_DIRECTORY_SEPARATOR_STR_A
+#endif /* ACE_DIRECTORY_SEPARATOR_STR */
+#if !defined (ACE_DIRECTORY_SEPARATOR_CHAR)
#define ACE_DIRECTORY_SEPARATOR_CHAR ACE_DIRECTORY_SEPARATOR_CHAR_A
+#endif /* ACE_DIRECTORY_SEPARATOR_CHAR */
+#if !defined (ACE_PLATFORM)
#define ACE_PLATFORM ACE_PLATFORM_A
+#endif /* ACE_PLATFORM */
+#if !defined (ACE_PLATFORM_EXE_SUFFIX)
#define ACE_PLATFORM_EXE_SUFFIX ACE_PLATFORM_EXE_SUFFIX_A
-
+#endif /* ACE_PLATFORM_EXE_SUFFIX */
+#if !defined (ACE_DEFAULT_MUTEX_W)
#define ACE_DEFAULT_MUTEX_W "ACE_MUTEX"
+#endif /* ACE_DEFAULT_MUTEX_W */
+#if !defined (ACE_DEFAULT_MUTEX)
#define ACE_DEFAULT_MUTEX ACE_DEFAULT_MUTEX_A
-
+#endif /* ACE_DEFAULT_MUTEX */
#endif /* UNICODE */
#if defined (ACE_HAS_INLINED_OSCALLS)
diff --git a/ace/OS.i b/ace/OS.i
index 542b699e906..4782b9a3796 100644
--- a/ace/OS.i
+++ b/ace/OS.i
@@ -6,6 +6,11 @@
#define ACE_INLINE
#endif /* ACE_HAS_INLINED_OSCALLS */
+#if defined (ACE_LACKS_RLIMIT_PROTO)
+int getrlimit (int resource, struct rlimit *rlp);
+int setrlimit (int resource, const struct rlimit *rlp);
+#endif /* ACE_LACKS_RLIMIT_PROTO */
+
#if !defined (ACE_HAS_STRERROR)
#if defined (ACE_HAS_SYS_ERRLIST)
extern char *sys_errlist[];
@@ -3709,7 +3714,11 @@ ACE_OS::puts (const char *s)
ACE_INLINE ACE_SignalHandler
ACE_OS::signal (int signum, ACE_SignalHandler func)
{
- return ::signal (signum, func);
+#if !defined(ACE_HAS_TANDEM_SIGNALS)
+ return ::signal (signum, func);
+#else
+ return (ACE_SignalHandler) ::signal (signum, (void (*)(int)) func);
+#endif /* !ACE_HAS_TANDEM_SIGNALS */
}
ACE_INLINE int
diff --git a/ace/README b/ace/README
index 18e453add2f..b95ddf753f7 100644
--- a/ace/README
+++ b/ace/README
@@ -96,6 +96,7 @@ ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant functions (i.e., all t
ACE_HAS_REGEX Platform supports the POSIX regular expression library
ACE_HAS_SELECT_H Platform has special header for select().
ACE_HAS_SEMUN Compiler/platform defines a union semun for SysV shared memory
+ACE_HAS_SET_T_ERRNO Platform has a function to set t_errno (e.g., Tandem).
ACE_HAS_SIGINFO_T Platform supports SVR4 extended signals
ACE_HAS_SIG_MACROS Platform/compiler has macros for sig{empty,fill,add,del}set (e.g., SCO and FreeBSD)
ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32 SignalObjectAndWait() function (WinNT 4.0 and beyond).
@@ -188,6 +189,7 @@ ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support reentrant netdb fu
gethostbyname_r, getservbyname_r).
ACE_LACKS_RPC_H Platform lacks the ONC RPC header files.
ACE_LACKS_PARAM_H Platform lacks <sys/param.h> (e.g., MVS)
+ACE_LACKS_RLIMIT_PROTO Platform/compiler lacks {get,set}rlimit() prototypes (e.g., Tandem)
ACE_LACKS_POSIX_PROTO Platform lacks POSIX prototypes for certain System V functions like shared memory and message queues.
ACE_LACKS_PRI_T Platform lacks pri_t (e.g., Tandem NonStop UNIX).
ACE_LACKS_PTHREAD_CANCEL Platform lacks pthread_cancel().
diff --git a/ace/Signal.cpp b/ace/Signal.cpp
index c512b55a952..efd82ce11bd 100644
--- a/ace/Signal.cpp
+++ b/ace/Signal.cpp
@@ -99,7 +99,11 @@ ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
else
this->sa_.sa_mask = *sig_mask; // Structure assignment...
+#if !defined(ACE_HAS_TANDEM_SIGNALS)
this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
+#else
+ this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
+#endif /* !ACE_HAS_TANDEM_SIGNALS */
}
ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
@@ -115,7 +119,11 @@ ACE_Sig_Action::ACE_Sig_Action (ACE_SignalHandler sig_handler,
else
this->sa_.sa_mask = *sig_mask; // Structure assignment...
+#if !defined(ACE_HAS_TANDEM_SIGNALS)
this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
+#else
+ this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
+#endif /* !ACE_HAS_TANDEM_SIGNALS */
ACE_OS::sigaction (signum, &this->sa_, 0);
}
diff --git a/ace/Signal.i b/ace/Signal.i
index ad074dedca2..cc73b80f8aa 100644
--- a/ace/Signal.i
+++ b/ace/Signal.i
@@ -108,7 +108,11 @@ ACE_INLINE void
ACE_Sig_Action::handler (ACE_SignalHandler handler)
{
ACE_TRACE ("ACE_Sig_Action::handler");
- this->sa_.sa_handler = ACE_SignalHandlerV (handler);
+#if !defined(ACE_HAS_TANDEM_SIGNALS)
+ this->sa_.sa_handler = ACE_SignalHandlerV (sig_handler);
+#else
+ this->sa_.sa_handler = (void (*)()) ACE_SignalHandlerV (sig_handler);
+#endif /* !ACE_HAS_TANDEM_SIGNALS */
}
ACE_INLINE void
diff --git a/ace/TLI.cpp b/ace/TLI.cpp
index 5c584cbf1ee..5b93aaf47fb 100644
--- a/ace/TLI.cpp
+++ b/ace/TLI.cpp
@@ -130,7 +130,11 @@ ACE_TLI::set_option (int level, int option, void *optval, int optlen)
if (this->so_opt_req.opt.len > this->so_opt_req.opt.maxlen)
{
+#if !defined (ACE_HAS_SET_T_ERRNO)
t_errno = TBUFOVFLW;
+#else
+ set_t_errno (TBUFOVFLW);
+#endif /* ACE_HAS_SET_T_ERRNO */
return -1;
}
@@ -158,7 +162,11 @@ ACE_TLI::get_option (int level, int option, void *optval, int &optlen)
if (this->so_opt_ret.opt.len > this->so_opt_ret.opt.maxlen)
{
+#if !defined (ACE_HAS_SET_T_ERRNO)
t_errno = TBUFOVFLW;
+#else
+ set_t_errno (TBUFOVFLW);
+#endif /* ACE_HAS_SET_T_ERRNO */
return -1;
}
diff --git a/ace/TLI_Stream.i b/ace/TLI_Stream.i
index bc27e6d72c5..5139e8fb819 100644
--- a/ace/TLI_Stream.i
+++ b/ace/TLI_Stream.i
@@ -49,7 +49,7 @@ ACE_TLI_Stream::send_n (const void *buf, size_t n, int flags) const
{
ACE_TRACE ("ACE_TLI_Stream::send_n");
size_t b_sent;
- ssize_t b_written;
+ ssize_t b_written = 0;
for (b_sent = 0; b_sent < n; b_sent += b_written)
if ((b_written = ACE_OS::t_snd (this->get_handle (),
diff --git a/ace/config-tandem.h b/ace/config-tandem.h
new file mode 100644
index 00000000000..df135d282fe
--- /dev/null
+++ b/ace/config-tandem.h
@@ -0,0 +1,484 @@
+/* -*- C++ -*- */
+// Testing TANDEM
+// $Id:
+
+// The following configuration file is designed to work for Tandems NonStop-UX
+// 4.2MP platforms using the NCC 3.20 compiler.
+
+// Note this is a test version it might include several errors I
+// have done a test and set/unset until I errors disappered.
+// Some of the options that should be set aren't because of the simple fact
+// that i haven't the time to check what is wrong.
+// e.g. widecharacter are supported but a wcstok which only take 2 parameters
+// are included by the compiler, to get the correct wcstok that takes 3 params
+// we must set _XOPEN_SOURCE and we get ALOT of errors and warnings.
+// So this config is done to get things to start to work it isn't finished.
+// Janne (Jan.Perman@osd.Ericsson.se)
+
+#if !defined (ACE_CONFIG_H)
+#define ACE_CONFIG_H
+
+#if ! defined (__ACE_INLINE__)
+#define __ACE_INLINE__
+#endif /* ! __ACE_INLINE__ */
+
+// Tandem doesn't include this although they are defined
+// in sys/time.h and sys/resource.h
+#define ACE_LACKS_RLIMIT_PROTO // jjpp
+// Tandem has a function to set t_errno (set_t_errno)
+#define ACE_HAS_SET_T_ERRNO // jjpp
+
+// Compiler/platform supports the "long long" datatype.
+#define ACE_HAS_LONGLONG_T
+
+// It does but problems with wcstok
+// ACE_HAS_UNICODE Platform/compiler supports UNICODE
+
+//Platform supports System V IPC (most versions of UNIX, but not Win32)
+#define ACE_HAS_SYSV_IPC
+
+// OS/compiler omits the const from the sendmsg() prototype.
+#define ACE_HAS_BROKEN_SENDMSG
+
+//OS/compiler's header files are inconsistent with libC definition of rand_r().
+//#define ACE_HAS_BROKEN_RANDR // Defines it the same way as sunos5.4
+
+//Platform supports system configuration information
+#define ACE_HAS_SYSINFO
+
+//Platform supports the POSIX regular expression library
+#define ACE_HAS_REGEX
+
+// Platform supports recvmsg and sendmsg
+#define ACE_HAS_MSG
+
+//Compiler/platform contains the <sys/syscall.h> file.
+#define ACE_HAS_SYSCALL_H
+
+//Platform provides <sysent.h> header
+#define ACE_HAS_SYSENT_H
+
+// Platform has terminal ioctl flags like TCGETS and TCSETS.
+#define ACE_HAS_TERM_IOCTLS
+
+// ? ACE_HAS_AUTOMATIC_INIT_FINI Compiler/platform correctly calls
+// init()/fini() for shared libraries
+
+//Platform supports POSIX O_NONBLOCK semantics
+#define ACE_HAS_POSIX_NONBLOCK
+
+// Compiler/platform has correctly prototyped header files
+#define ACE_HAS_CPLUSPLUS_HEADERS
+
+// Platform supports IP multicast
+//#define ACE_HAS_IP_MULTICAST
+
+//Compiler/platform supports alloca()
+#define ACE_HAS_ALLOCA
+//Compiler/platform has <alloca.h>
+#define ACE_HAS_ALLOCA_H
+
+//Platform contains <poll.h>
+#define ACE_HAS_POLL
+
+// Platform supports the POSIX struct timespec type
+#define ACE_HAS_POSIX_TIME // As i understand it, but i'm in deep water
+//Platform supports the SVR4 timestruc_t type
+#define ACE_HAS_SVR4_TIME
+
+//ACE_HAS_PROC_FS Platform supports the /proc file
+// system and defines tid_t in <sys/procfs.h>
+// Has /proc but no tid_t
+
+//ACE_HAS_PRUSAGE_T Platform supports the prusage_t struct
+
+
+// To get this to work a patch in sys/signal must be made
+// typedef void SIG_FUNC_TYPE(int);
+//#if defined (__cplusplus)
+// void (*sa_handler)(int);
+//#else
+// ...
+//#endif
+//#define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
+#define ACE_HAS_TANDEM_SIGNALS
+//Compiler/platform defines the sig_atomic_t typedef
+#define ACE_HAS_SIG_ATOMIC_T
+//Platform supports SVR4 extended signals
+#define ACE_HAS_SIGINFO_T
+//Platform supports ucontext_t (which is used in the extended signal API).
+#define ACE_HAS_UCONTEXT_T
+//Compiler/platform supports SVR4 signal typedef
+//#define ACE_HAS_SVR4_SIGNAL_T
+//ACE_HAS_SVR4_SIGNAL_T
+
+
+// Platform/compiler has the sigwait(2) prototype
+#define ACE_HAS_SIGWAIT
+//sigwait() takes only one argument.
+#define ACE_HAS_ONEARG_SIGWAIT
+
+
+//Compiler/platform provides the sockio.h file
+#define ACE_HAS_SOCKIO_H
+
+// Compiler supports the ssize_t typedef
+#define ACE_HAS_SSIZE_T // Limits.h must be included
+
+//Platform supports STREAMS
+#define ACE_HAS_STREAMS
+
+#define ACE_HAS_STREAM_PIPES
+//Platform supports STREAM pipes
+
+//Compiler/platform supports strerror ()
+#define ACE_HAS_STRERROR
+
+//Compiler/platform supports struct strbuf
+#define ACE_HAS_STRBUF_T
+
+//Compiler/platform supports SVR4 dynamic linking semantics
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+//Compiler/platform supports SVR4 gettimeofday() prototype
+//#define ACE_HAS_SVR4_GETTIMEOFDAY // Defines it the same way as sunos5.4
+
+//Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff)...
+#define ACE_HAS_SVR4_TLI
+
+//Platform provides <sys/filio.h> header
+#define ACE_HAS_SYS_FILIO_H
+
+//Platform supports TLI timod STREAMS module
+#define ACE_HAS_TIMOD_H
+//Platform supports TLI tiuser header
+#define ACE_HAS_TIUSER_H
+
+//Platform supports TLI
+#define ACE_HAS_TLI
+//Platform provides TLI function prototypes
+#define ACE_HAS_TLI_PROTOTYPES
+
+//Platform lacks streambuf "linebuffered ()".
+#define ACE_LACKS_LINEBUFFERED_STREAMBUF
+
+// Platform lacks "signed char" type (broken!)
+#define ACE_LACKS_SIGNED_CHAR
+
+
+//? ACE_NEEDS_DEV_IO_CONVERSION Necessary with some compilers
+//to pass ACE_TTY_IO as parameter to DEV_Connector.
+
+#define ACE_PAGE_SIZE 4096
+// Defines the page size of the system (not used on Win32 or
+// with ACE_HAS_GETPAGESIZE).
+
+
+/****** THREAD SPECIFIC **********/
+#define ACE_HAS_THREADS //Platform supports threads
+#define ACE_HAS_STHREADS //Platform supports Solaris threads
+#define ACE_HAS_THR_MINSTACK // Tandem uses thr_minstack instead of thr_min_stack
+#define ACE_LACKS_PRI_T // Tandem lacks pri_t
+#define ACE_MT_SAFE //Compile using multi-thread libraries
+//ACE_HAS_MT_SAFE_SOCKETS Sockets may be called in multi-
+// threaded programs
+
+// Compiler/platform has threadspecific storage
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+//Platform supports thr_keydelete (e.g,. UNIXWARE)
+#define ACE_HAS_THR_KEYDELETE
+
+
+
+
+//ACE_HAS_REENTRANT_FUNCTIONS Platform supports reentrant
+// functions (i.e., all the POSIX *_r functions).
+//ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS Platform will recurse infinitely on
+// thread exits from TSS cleanup routines (e.g., AIX).
+//ACE_NEEDS_HUGE_THREAD_STACKSIZE Required by platforms with small
+// default stacks.
+//ACE_HAS_ONLY_SCHED_OTHER Platform, e.g., Solaris 2.5, only
+// supports SCHED_OTHER POSIX scheduling policy.
+
+
+//*************************************
+//ACE_HAS_PTHREADS Platform supports POSIX Pthreads
+//ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP Platform has pthread_condattr_
+// setkind_np().
+//ACE_HAS_PTHREAD_DSTATE_PTR pthread_attr_setdetachstate() takes
+// pointer to 2nd arg.
+//ACE_HAS_PTHREAD_EQUAL Platform has pthread_equal().
+//ACE_HAS_PTHREAD_GETSPECIFIC_DATAPTR pthread_getspecific() takes a data
+// pointer for 2nd arg.
+//ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP Platform has
+// pthread_mutexattr_setkind_np().
+//ACE_HAS_PTHREAD_T Platform has pthread_t defined.
+//ACE_HAS_PTHREAD_YIELD_VOIDPTR pthread_yield() takes a void pointer
+// arg.
+//ACE_HAS_THREAD_SELF Platform has thread_self() rather
+// than pthread_self() (e.g., DCETHREADS and AIX)
+//ACE_HAS_THR_C_DEST The pthread_keycreate() routine *
+// must* take extern C functions.
+//ACE_HAS_THR_C_FUNC The pthread_create() routine *must*
+// take extern C functions.
+//ACE_HAS_YIELD_VOID_PTR Platform requires pthread_yield() to
+// take a NULL.
+//ACE_LACKS_CONDATTR_PSHARED Platform has no implementation of
+// pthread_condattr_setpshared(), even though it supports pthreads!
+//ACE_LACKS_PTHREAD_THR_SIGSETMASK Platform lacks pthread_thr_
+// sigsetmask (e.g., MVS, HP/UX, and OSF/1 3.2)
+//ACE_LACKS_SETDETACH Platform lacks pthread_attr_
+// setdetachstate() (e.g., HP/UX 10.x)
+//ACE_LACKS_SETSCHED Platform lacks pthread_attr_
+// setsched() (e.g. MVS)
+//ACE_LACKS_THREAD_STACK_SIZE Platform lacks pthread_attr_
+// setstacksize() (e.g., Linux pthreads)
+
+//ACE_HAS_IRIX62_THREADS Platform supports the very odd IRIX
+// 6.2 threads...
+
+/*********************************/
+
+/******* SIGNAL STUFF *******/
+//ACE_HAS_SIGNAL_OBJECT_AND_WAIT Platform supports the Win32
+// SignalObjectAndWait() function (WinNT 4.0 and beyond).
+//#define ACE_HAS_SIGNAL_SAFE_OS_CALLS
+//Automatically restart OS system
+// calls when EINTR occurs
+
+// 10 millisecond fudge factor to account for Solaris timers...
+//#if !defined (ACE_TIMER_SKEW)
+//#define ACE_TIMER_SKEW 1000 * 10
+//#endif /* ACE_TIMER_SKEW */
+
+
+// Platform supports the getrusage() system call.
+//#define ACE_HAS_GETRUSAGE
+//Platform uses non-const char * in calls to gethostbyaddr, gethostbyname,
+// getservbyname
+#define ACE_HAS_NONCONST_GETBY
+// Platform's select() uses non-const timeval* (only found on Linux right now)
+#define ACE_HAS_NONCONST_SELECT_TIMEVAL
+// And on Tandem :-)
+//Uses ctime_r & asctime_r with only two parameters vs. three.
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+//Platform has special header for select().
+#define ACE_HAS_SELECT_H
+// Platform/compiler supports Standard C++ Library
+#define ACE_HAS_STANDARD_CPP_LIBRARY
+//Platform/compiler support the System V sprintf().
+//?#define ACE_HAS_SYSV_SPRINTF
+//Platform/compiler supports _sys_errlist symbol
+//#define ACE_HAS_SYS_ERRLIST
+//Platform lacks madvise() (e.g., Linux)
+#define ACE_LACKS_MADVISE
+//Platform lacks the si_addr field of siginfo_t (e.g.,VxWorks and HP/UX 10.x)
+//?#define ACE_LACKS_SI_ADDR
+//Compiler/platform lacks strcasecmp() (e.g., DG/UX, UNIXWARE, VXWORKS)
+#define ACE_LACKS_STRCASECMP
+//<time.h> doesn't automatically #include /**/ <sys/time.h>
+#define ACE_NEEDS_SYSTIME_H
+
+//ACE_HAS_64BIT_LONGS Platform has 64bit longs and 32bit ints...
+//ACE_HAS_AIX_BROKEN_SOCKET_HEADER Platform, such as AIX4, needs to wrap
+// #include of sys/socket.h with #undef/#define of __cplusplus.
+//ACE_HAS_AIX_HI_RES_TIMER Platform has AIX4 ::read_real_time ()
+// ? ACE_HAS_BROKEN_BITSHIFT Compiler has integer overflow
+// problem with bit-shift operations.
+// ? ACE_HAS_BROKEN_CONVERSIONS Compiler can't handle calls like
+// foo->operator T *()
+//ACE_HAS_BROKEN_CTIME Compiler/platform uses macro for ctime
+// (e.g., MVS)
+//ACE_HAS_BROKEN_HPUX_TEMPLATES Earlier versions of HP/UX C++ are
+// damned...
+//ACE_HAS_BROKEN_MSG_H Platform headers don't support <msg.h>
+// prototypes
+//ACE_HAS_BROKEN_MMAP_H HP/UX does not wrap the mmap(2) header
+// files with extern "C".
+//ACE_HAS_BROKEN_POSIX_TIME Platform defines struct timespec in
+// <sys/timers.h>
+//ACE_HAS_BROKEN_SETRLIMIT OS/compiler omits the const from the
+// rlimit parameter in the setrlimit() prototype.
+//ACE_HAS_BROKEN_WRITEV OS/compiler omits the const from the
+// iovec parameter in the writev() prototype.
+// There is a bstring in the Tandem but where man bstring OK, find bstring NOK
+// ? ACE_HAS_BSTRING Platform has <bstring.h> (which contains bzero() prototype)
+//ACE_HAS_CANCEL_IO Platform supports the Win32 CancelIO()
+// function (WinNT 4.0 and beyond).
+//ACE_HAS_CHARPTR_DL OS/platform uses char * for
+// dlopen/dlsym args, rather than const char *.
+// Yes in man, no in header file
+//ACE_HAS_CHARPTR_SOCKOPT OS/platform uses char * for sockopt,
+// rather than const char *
+// sprintf() returns char * rather than int (e.g., SunOS 4.x)
+//#define ACE_HAS_CHARPTR_SPRINTF
+//ACE_HAS_CLOCK_GETTIME Platform supports POSIX 1.b
+// clock_gettime ()
+//ACE_HAS_COMPLEX_LOCK Platform supports non-standard
+// readers/writer locks...
+//? ACE_HAS_EXCEPTIONS Compiler supports C++ exception
+// handling
+// Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must be
+// defined, except on Win32)
+//#define ACE_HAS_GETPAGESIZE // Man getpagesize ok grep /usr/.. not
+// found
+//ACE_HAS_GNU_CSTRING_H Denotes that GNU has cstring.h as
+// standard which redefines memchr()
+//ACE_HAS_HI_RES_TIMER Compiler/platform supports SunOS
+// high resolution timers
+//ACE_HAS_INLINED_OSCALLS Inline all the static class OS
+// methods to remove call overhead
+//ACE_HAS_IRIX_GETTIMEOFDAY Denotes that IRIX 5.3 has second
+// argument to gettimeofday() which is variable ...
+//ACE_HAS_LIMITED_RUSAGE_T The rusage_t structure has only two
+// fields.
+//ACE_HAS_LONG_MAP_FAILED Platform defines MAP_FAILED as a
+// long constant.
+//? ACE_HAS_NONCONST_MSGSND Platform has a non-const parameter to
+// msgsend() (e.g., SCO).
+// Has it msgsend at all
+
+//ACE_HAS_OLD_MALLOC Compiler/platform uses old malloc()/
+// free() prototypes (ugh)
+// ACE_HAS_ORBIX Platform has Orbix CORBA implementation
+//? ACE_HAS_POSIX_SEM Platform supports POSIX real-time
+//semaphores (e.g., VxWorks and Solaris)
+//Compiler/platform defines a union semun for SysV shared memory
+//#define ACE_HAS_SEMUN
+//ACE_HAS_SIN_LEN Platform supports new BSD inet_addr
+// len field.
+//? ACE_HAS_SIZET_SOCKET_LEN OS/compiler uses size_t * rather
+//than int * for socket lengths
+//ACE_HAS_SOCKADDR_MSG_NAME Platform requires (struct sockaddr *)
+//for msg_name field of struct msghdr.
+//ACE_HAS_STRICT Use the STRICT compilation mode on Win32.
+//? ACE_HAS_STRUCT_NETDB_DATA Compiler/platform has strange
+// hostent API for socket *_r() calls
+//? ACE_HAS_STRUCT_PROTOENT_DATA Compiler/platform has strange
+//protoent API for socket *_r() calls
+//ACE_HAS_SUNOS4_GETTIMEOFDAY SunOS 4 style prototype.
+//? ACE_HAS_SYSCALL_GETRUSAGE HP/UX has an undefined syscall for
+//GETRUSAGE...
+//ACE_HAS_TEMPLATE_TYPEDEFS Compiler implements templates that
+// support typedefs inside of classes used as formal arguments to a template
+// class.
+//ACE_HAS_TID_T Platform supports the tid_t type
+//(e.g., AIX)
+//Platform/compiler supports timezone * as second parameter to gettimeofday()
+//#define ACE_HAS_TIMEZONE_GETTIMEOFDAY According to man we have but not
+//when compiling
+//ACE_HAS_UNION_WAIT The wait() system call takes a (
+// union wait *) rather than int *
+//? ACE_HAS_USING_KEYWORD Compiler supports the new using
+// keyword for C++ namespaces.
+//ACE_HAS_VOIDPTR_MMAP Platform requires void * for mmap().
+//ACE_HAS_VOIDPTR_SOCKOPT OS/compiler uses void * arg 4
+// setsockopt() rather than const char *
+//ACE_HAS_WIN32_TRYLOCK The Win32 platform support
+//TryEnterCriticalSection() (WinNT 4.0 and beyond)
+//ACE_HAS_WINSOCK2 The Win32 platform supports WinSock 2.0
+//ACE_HAS_XLI Platform has the XLI version of TLI
+//ACE_HAS_XT Platform has Xt and Motif
+//ACE_LACKS_CONST_TIMESPEC_PTR Platform forgot const in cond_timewait
+// (e.g., HP/UX).
+//ACE_LACKS_COND_T Platform lacks condition variables
+// (e.g., Win32 and VxWorks)
+//ACE_LACKS_EXEC Platform lacks the exec() family of
+// system calls (e.g., Win32, VxWorks, Chorus)
+//ACE_LACKS_FILELOCKS Platform lacks file locking mechanism
+//ACE_LACKS_IOSTREAM_FX iostream header does not declare
+// ipfx (), opfx (), etc.
+//ACE_LACKS_MALLOC_H Platform lacks malloc.h
+//ACE_LACKS_MEMORY_H Platform lacks memory.h
+//(e.g., VxWorks and Chorus)
+//ACE_LACKS_MKTEMP ACE has no mktemp()
+//ACE_LACKS_MMAP The platform doesn't have mmap(2)
+// (e.g., SCO UNIX).
+//ACE_LACKS_MODE_MASKS Platform/compiler doesn't have
+//open() mode masks.
+//ACE_LACKS_MPROTECT The platform doesn't have mprotect(2)
+//(e.g., EPLX real time OS from CDC (based on LYNX))
+//ACE_LACKS_MSGBUF_T Platform lacks struct msgbuf (e.g.,
+// NT and MSV).
+//ACE_LACKS_MSYNC Platform lacks msync() (e.g., Linux)
+//ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support reentrant
+// netdb functions (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
+// gethostbyname_r, getservbyname_r).
+//ACE_LACKS_RPC_H Platform lacks the ONC RPC header
+// files.
+//ACE_LACKS_PARAM_H Platform lacks <sys/param.h> (e.g.,
+//MVS)
+//ACE_LACKS_POSIX_PROTO Platform lacks POSIX prototypes for
+//certain System V functions like shared memory and message queues.
+//ACE_LACKS_RECVMSG Platform lacks recvmsg() (e.g., Linux)
+//ACE_LACKS_RWLOCK_T Platform lacks readers/writer locks.
+//ACE_LACKS_SBRK Platform lacks a working sbrk()
+// (e.g., Win32 and VxWorks)
+//ACE_LACKS_SEMBUF_T Platform lacks struct sembuf
+//(e.g., Win32 and VxWorks)
+//ACE_LACKS_SIGACTION Platform lacks struct sigaction
+// (e.g., Win32 and Chorus)
+//? ACE_LACKS_SYS_NERR Platforms/compiler lacks the sys_nerr
+// variable (e.g., VxWorks and MVS).
+//ACE_LACKS_SYSV_MSG_H Platform lacks sys/msg.h
+//(e.g., Chorus and VxWorks)
+//ACE_LACKS_KEYDELETE Platform lacks TSS keydelete
+//(e.g., HP/UX)
+//ACE_LACKS_KEY_T Platform lacks key_t
+//(e.g., Chorus, VxWorks, Win32)
+//ACE_LACKS_SENDMSG Platform lacks sendmsg()
+// (e.g., Linux)
+//ACE_LACKS_SYSV_SHMEM Platform lacks System V shared
+// memory (e.g., Win32 and VxWorks)
+//ACE_LACKS_SIGINFO_H Platform lacks the siginfo.h include
+// file (e.g., MVS)
+//ACE_LACKS_SOCKETPAIR Platform lacks the socketpair()
+// call (e.g., SCO UNIX)
+//? ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES Compiler doesn't support
+// static data member templates
+//ACE_LACKS_STRRECVFD Platform doesn't define struct
+//strrecvfd.
+//ACE_LACKS_SYSCALL Platform doesn't have syscall()
+// prototype
+//ACE_LACKS_SYSV_MSQ_PROTOS Platform doesn't have prototypes for
+//Sys V msg()* queues.
+//ACE_LACKS_T_ERRNO Header files lack t_errno for TLI
+//ACE_LACKS_TCP_H Platform doesn't have netinet/tcp.h
+//ACE_LACKS_UCONTEXT_H Platform lacks the ucontext.h file
+//ACE_LACKS_UNIX_DOMAIN_SOCKETS ACE platform has no UNIX domain sockets
+//ACE_LACKS_UTSNAME_T Platform lacks struct utsname
+// (e.g., Win32 and VxWorks)
+//ACE_NDEBUG Turns off debugging features
+//ACE_NEEDS_READV Platform doesn't define readv, so
+// use our own
+//ACE_NEEDS_WRITEV Platform doesn't define writev, so
+//use our own
+//ACE_NLOGGING Turns off the LM_DEBUG and LM_ERROR
+//logging macros...
+//ACE_NTRACE Turns off the tracing feature.
+//ACE_REDEFINES_XTI_FUNCTIONS Platform redefines the t_... names
+//(UnixWare)
+//ACE_SELECT_USES_INT Platform uses int for select()
+//rather than fd_set
+//? ACE_TEMPLATES_REQUIRE_PRAGMA Compiler's template mechanism must
+// use a pragma This is used for AIX's C++ compiler.
+//? ACE_TEMPLATES_REQUIRE_SOURCE Compiler's template mechanim must
+// see source code (i.e., .cpp files). This is used for GNU G++.
+//? ACE_TEMPLATES_REQUIRE_SPECIALIZATION Compiler's template mechanism
+//requires the use of explicit C++ specializations for all used
+//templates. This is also used for GNU G++ if you don't use the "repo"
+//patches.
+//ACE_USE_POLL Use the poll() event demultiplexor
+//rather than select().
+
+
+
+// Turns off the tracing feature.
+// #define ACE_NTRACE 0
+#if !defined (ACE_NTRACE)
+#define ACE_NTRACE 1
+#endif /* ACE_NTRACE */
+
+// Defines the page size of the system.
+#define ACE_PAGE_SIZE 4096
+
+#endif /* ACE_CONFIG_H */
diff --git a/ace/config-unixware-2.1.2-g++.h b/ace/config-unixware-2.1.2-g++.h
new file mode 100644
index 00000000000..1b16765fa2d
--- /dev/null
+++ b/ace/config-unixware-2.1.2-g++.h
@@ -0,0 +1,80 @@
+// The following configuration file is designed to work
+// for Unixware platforms running UnixWare 2.1.2 and gcc version 2.7.2.2
+
+#if !defined (ACE_CONFIG_H)
+#define ACE_CONFIG_H
+
+// See README for what the ACE_HAS... and ACE_LACKS... macros mean
+
+#if ! defined (__ACE_INLINE__)
+#define __ACE_INLINE__
+#endif /* ! __ACE_INLINE__ */
+
+#define ACE_NEEDS_SYSTIME_H
+
+#define ACE_HAS_SIZET_SOCKET_LEN
+#define ACE_HAS_AUTOMATIC_INIT_FINI
+#define ACE_HAS_CPLUSPLUS_HEADERS
+#define ACE_HAS_GNU_CSTRING_H
+#define ACE_HAS_STRING_CLASS
+#define ACE_HAS_MSG
+#define ACE_HAS_SVR4_GETTIMEOFDAY
+#define ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R
+#define ACE_HAS_MT_SAFE_SOCKETS
+#define ACE_HAS_NONCONST_GETBY
+#define ACE_HAS_POLL
+#define ACE_HAS_POSIX_NONBLOCK
+#define ACE_HAS_POSIX_TIME
+#define ACE_HAS_REENTRANT_FUNCTIONS
+#define ACE_HAS_REGEX
+#define ACE_HAS_LAZY_V
+#define ACE_HAS_SELECT_H
+#define ACE_HAS_SIGINFO_T
+#define ACE_HAS_UCONTEXT_T
+#define ACE_HAS_SIGWAIT
+#define ACE_HAS_SIG_ATOMIC_T
+#define ACE_HAS_SOCKIO_H
+#define ACE_HAS_SSIZE_T
+#define ACE_HAS_STHREADS
+#define ACE_HAS_THR_KEYDELETE
+#define ACE_HAS_STRBUF_T
+#define ACE_HAS_STREAMS
+#define ACE_HAS_STREAM_PIPES
+#define ACE_HAS_STRERROR
+#define ACE_HAS_SVR4_DYNAMIC_LINKING
+#define ACE_HAS_SVR4_TIME
+#define ACE_HAS_SYSCALL_H
+#define ACE_HAS_SYSINFO
+#define ACE_HAS_SYSV_IPC
+#define ACE_HAS_SYS_FILIO_H
+#define ACE_HAS_TERM_IOCTLS
+#define ACE_HAS_THREADS
+#define ACE_HAS_THREAD_SPECIFIC_STORAGE
+#define ACE_HAS_THREAD_T
+#define ACE_HAS_TIMOD_H
+#define ACE_HAS_TIUSER_H
+#define ACE_HAS_TLI
+#define ACE_HAS_TLI_PROTOTYPES
+#define ACE_HAS_UNIXWARE_SVR4_SIGNAL_T
+#define ACE_HAS_VOIDPTR_SOCKOPT
+#define ACE_HAS_THR_MINSTACK
+
+#define ACE_LACKS_MADVISE
+#define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
+#define ACE_LACKS_STRCASECMP
+#define ACE_LACKS_PRI_T
+#define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS
+#define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
+
+#define ACE_MT_SAFE
+#define ACE_PAGE_SIZE 4096
+#define ACE_REDEFINES_XTI_FUNCTIONS
+#define ACE_TEMPLATES_REQUIRE_SOURCE
+#define ACE_TEMPLATES_REQUIRE_SPECIALIZATION
+
+// Turns off the tracing feature.
+#if !defined (ACE_NTRACE)
+#define ACE_NTRACE 1
+#endif /* ACE_NTRACE */
+
+#endif /* ACE_CONFIG_H */