3 // $Id: config-tandem-nsk-mips-v3.h 81935 2008-06-12 22:01:53Z jtc $
6 #ifndef ACE_CONFIG_NSK_H
7 #define ACE_CONFIG_NSK_H
9 #include /**/ "ace/pre.h"
11 // The following configuration file contains defines for Tandem NSK
12 // platform, MIPS processor, version 3 C++ compiler.
15 //=========================================================================
16 // Tandem NSK specific parts
17 //=========================================================================
20 // Disable pthread renaming of symbols such as "open" and "close"
21 #define _CMA_NOWRAPPERS_ 1
23 // Get Handle_Set.cpp to generate correct bit operations for NSK platform
24 #define ACE_TANDEM_NSK_BIT_ORDER
26 // Use facilities provided by T1248 version of pthreads.
27 // (If not defined, will use old version of pthreads.)
28 #define ACE_TANDEM_T1248_PTHREADS
30 // Use all available T1248 thread aware wrapper functions for providing
32 // [Note: this causes a significant performance degradation]
33 //#define ACE_TANDEM_T1248_PTHREADS_ALL_IO_WRAPPERS
36 // Need this include here because some symbols defined by pthreads
37 // (e.g. timespec_t) are needed before spthread.h is normally included
39 #ifdef ACE_TANDEM_T1248_PTHREADS
43 #include "dce/cma_dispatch_coop.h"
46 // The following #defines are hacks to get around things
47 // that seem to be missing or different in Tandem land
48 #define NSIG 32 // missing from Signal.h
49 // note: on nsk TNS/R there is room in
50 // sigset_t for 128 signals but those
51 // above 31 are not valid.
52 typedef long fd_mask
; // should be in select.h but no such file
53 #define NBBY 8 // must be consistent with value in sys/types.h
54 #define NFDBITS (sizeof (fd_mask) * NBBY) /* bits per mask */
55 #define MAXNAMLEN 248 // missing from dirent.h
56 #define ERRMAX 4218 // from errno.h
58 // Following seems to be missing from G06.20 version of standard
59 // pthreads includes (it appeared in older version of standard pthreads)
60 // (SCHED_FIFO (aka cma_c_sched_fifo) used in Dynamic_Priority_Test)
61 #ifdef ACE_TANDEM_T1248_PTHREADS
62 typedef enum CMA_T_SCHED_POLICY
{
65 cma_c_sched_throughput
= 2,
66 cma_c_sched_background
= 3,
67 cma_c_sched_ada_low
= 4
71 // T1248 doesn't define these constants. They're defined in spt/cma.h
72 // (formerly dce/cma.h), but this header is not included or provided
74 #define cma_c_prio_fifo_min 16
75 #define cma_c_prio_fifo_mid 24
76 #define cma_c_prio_fifo_max 31
77 #define cma_c_prio_rr_min 16
78 #define cma_c_prio_rr_mid 24
79 #define cma_c_prio_rr_max 31
80 #define cma_c_prio_through_min 8
81 #define cma_c_prio_through_mid 12
82 #define cma_c_prio_through_max 15
83 #define cma_c_prio_back_min 1
84 #define cma_c_prio_back_mid 4
85 #define cma_c_prio_back_max 7
87 // Enable NSK Pluggable Protocols
88 #define TAO_HAS_NSKPW 1
89 #define TAO_HAS_NSKFS 1
91 //=========================================================================
92 // Platform specific parts
93 //=========================================================================
95 // Platform lacks getpwnam_r() methods (e.g., SGI 6.2).
96 #define ACE_LACKS_PWD_REENTRANT_FUNCTIONS
98 // Platform/compiler lacks {get,set}rlimit() function
99 #define ACE_LACKS_RLIMIT
101 // The platform doesn't have mmap(2)
102 #define ACE_LACKS_MMAP
104 // Platform lacks streambuf "linebuffered ()". [C++ iostream]
105 #define ACE_LACKS_LINEBUFFERED_STREAMBUF
107 // Platform supports recvmsg and sendmsg
110 // Platform defines ACE_HAS_MSG, but lacks msg_accrights{,len}.
111 #define ACE_LACKS_MSG_ACCRIGHTS
113 // Platform supports sigsuspend()
114 #define ACE_HAS_SIGSUSPEND
116 // Platform/compiler has the sigwait(2) prototype
117 #define ACE_HAS_SIGWAIT
119 // Compiler/platform defines the sig_atomic_t typedef
120 #define ACE_HAS_SIG_ATOMIC_T
122 // OS/compiler uses size_t * rather than int * for socket lengths
123 #define ACE_HAS_SIZET_SOCKET_LEN
125 // OS/compiler uses void * arg 4 setsockopt() rather than const char *
126 #define ACE_HAS_VOIDPTR_SOCKOPT
128 // The platform doesn't have mprotect(2)
129 #define ACE_LACKS_MPROTECT
131 // Platform lacks msync()
132 #define ACE_LACKS_MSYNC
134 // Platform does not support reentrant netdb functions (getprotobyname_r,
135 // getprotobynumber_r, gethostbyaddr_r, gethostbyname_r, getservbyname_r).
136 #define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS Platform does not support
138 // Platform lacks madvise()
139 #define ACE_LACKS_MADVISE
141 // Platform lacks pri_t
142 #define ACE_LACKS_PRI_T
144 // Platform lacks a working sbrk()
145 #define ACE_LACKS_SBRK
147 // Platform doesn't have syscall() prototype
148 #define ACE_LACKS_SYSCALL
150 // Platform lacks the inet_aton() function.
151 #define ACE_LACKS_INET_ATON
153 // Compiler/platform has Dirent iterator functions
154 #define ACE_HAS_DIRENT
156 // Platform uses ACE_HAS_DIRENT but does not have readdir_r()
157 #define ACE_LACKS_READDIR_R
159 // Platform supports getpagesize() call (otherwise,
160 // ACE_PAGE_SIZE must be defined)
161 #define ACE_HAS_GETPAGESIZE
163 // Platform supports IP multicast
164 #define ACE_HAS_IP_MULTICAST
166 // Platform's select() uses non-const timeval*
167 #define ACE_HAS_NONCONST_SELECT_TIMEVAL
169 // Platform supports POSIX O_NONBLOCK semantics
170 #define ACE_HAS_POSIX_NONBLOCK
172 // Platform lacks named POSIX semaphores
173 #define ACE_LACKS_NAMED_POSIX_SEM
175 // Platform has support for multi-byte character support compliant
176 // with the XPG4 Worldwide Portability Interface wide-character
178 #define ACE_HAS_XPG4_MULTIBYTE_CHAR
180 // No wcsstr function available for this compiler
181 #define ACE_LACKS_WCSSTR
183 // No wctype.h available for this compiler
184 #define ACE_LACKS_WCTYPE_H
186 // Platform supports the POSIX regular expression library.
187 // [Note Tandem NSK platform does have regular expresson support but it
188 // does not follow the assumptions made by ACE. To use it would need
189 // to make some ACE modifications.]
190 //#define ACE_HAS_REGEX
192 // Compiler/platform supports strerror ()
193 #define ACE_HAS_STRERROR
195 // Platform doesn't have truncate()
196 #define ACE_LACKS_TRUNCATE
198 // Platform lacks readers/writer locks.
199 #define ACE_LACKS_RWLOCK_T
201 // Compiler's 'new' throws exception on failure (ANSI C++ behavior).
202 #define ACE_NEW_THROWS_EXCEPTIONS
204 // Optimize ACE_Handle_Set::count_bits for select() operations (common
206 #define ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT
208 // Platform lacks setreuid()
209 #define ACE_LACKS_SETREUID
211 // Platform lacks setregid()
212 #define ACE_LACKS_SETREGID
214 // Compile using multi-thread libraries
215 #define ACE_MT_SAFE 1
219 // Platform supports System V IPC
220 #define ACE_HAS_SYSV_IPC
222 // Platform lacks the socketpair() call
223 // [Needed due to failure of Pipe_Test. even though nsk platform
224 // has socketpair(), Pipe.cpp tries to set socket buf size but this
225 // is not allowed for AF_UNIX protocol on nsk.]
226 #define ACE_LACKS_SOCKET_BUFSIZ
228 // Platform lacks the socketpair() call
229 #define ACE_LACKS_SOCKETPAIR
231 // Platform limits the maximum socket message size.
232 #define ACE_HAS_SOCK_BUF_SIZE_MAX
234 // hrtime_t is a basic type that doesn't require ACE_U64_TO_U32 conversion
235 #define ACE_HRTIME_T_IS_BASIC_TYPE
237 // printf format specifiers for 64 bit integers
238 # define ACE_UINT64_FORMAT_SPECIFIER ACE_TEXT ("%Ld")
239 # define ACE_INT64_FORMAT_SPECIFIER ACE_TEXT ("%Ld")
241 // Use larger default buffer size for ease of interoperability
242 #define ACE_DEFAULT_CDR_BUFSIZE 4096
245 #define ACE_SIZEOF_WCHAR 2
247 // Platform lacks time typedefs
248 #define ACE_LACKS_SUSECONDS_T
249 #define ACE_LACKS_USECONDS_T
251 // Platform lacks setegid() and seteuid()
252 #define ACE_LACKS_SETEGID
253 #define ACE_LACKS_SETEUID
255 // Platform lacks vsnprintf()
256 #define ACE_LACKS_VSNPRINTF
258 // Platform lacks log2()
259 #define ACE_LACKS_LOG2
261 // Platform lacks alphasort()
262 #define ACE_LACKS_ALPHASORT
265 //=========================================================================
266 // Threads specific parts
267 //=========================================================================
269 // Platform supports threads
270 #define ACE_HAS_THREADS
272 // Platform supports POSIX Pthreads, of one form or another. This
273 // macro says the platform has a pthreads variety - should also define
274 // one of the below to say which one. Also may need some
275 // ACE_HAS_... thing for extensions.
276 #define ACE_HAS_PTHREADS
278 // Standard pthreads supports only SCHED_FIFO
279 #define ACE_HAS_ONLY_SCHED_FIFO
281 // Compiler/platform has thread-specific storage
282 #define ACE_HAS_THREAD_SPECIFIC_STORAGE
284 // Platform has no implementation of pthread_condattr_setpshared(),
285 // even though it supports pthreads!
286 #define ACE_LACKS_CONDATTR_PSHARED
288 // pthread_cond_timedwait does *not* reset the time argument when the
290 #define ACE_LACKS_COND_TIMEDWAIT_RESET
292 // Platform lacks pthread_attr_setsched()
293 #define ACE_LACKS_SETSCHED
295 // Platform has pthread_getschedparam and pthread_setschedparam
296 // even when ACE_LACKS_SETSCHED is defined.
297 #define ACE_HAS_PTHREAD_SCHEDPARAM
299 // Platform has pthread_mutexattr_setkind_np().
300 #define ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP
302 // Platform lacks pthread_mutexattr_setpshared().
303 #define ACE_LACKS_MUTEXATTR_PSHARED
305 // Platform lacks pthread_attr_setscope()
306 #define ACE_LACKS_THREAD_PROCESS_SCOPING
308 // Platform lacks pthread_attr_setstackaddr
309 #define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
311 // Platform lacks pthread_attr_setstack
312 #define ACE_LACKS_PTHREAD_ATTR_SETSTACK
314 // Defining ACE_HAS_UCONTEXT_T since G06.21 version of spthreads has
315 // a definition for it.
316 #ifdef ACE_TANDEM_T1248_PTHREADS
317 #define ACE_HAS_UCONTEXT_T
320 //=========================================================================
321 // Include file characteristics
322 //=========================================================================
324 // Compiler/platform contains the <sys/syscall.h> file.
325 #define ACE_HAS_SYS_SYSCALL_H
327 // Platform lacks malloc.h
328 #define ACE_LACKS_MALLOC_H
330 // Platform lacks the siginfo.h include file
331 #define ACE_LACKS_SIGINFO_H
333 // Platform doesn't define struct strrecvfd.
334 #define ACE_LACKS_STRRECVFD
336 // Platform lacks the ucontext.h file
337 #define ACE_LACKS_UCONTEXT_H
339 // Prototypes for both signal() and struct sigaction are consistent.
340 #define ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
342 // Platform supports the POSIX struct timespec type
343 #define ACE_HAS_POSIX_TIME
345 // Platform/compiler supports timezone * as second parameter to gettimeofday()
346 #define ACE_HAS_TIMEZONE_GETTIMEOFDAY
348 // Platform has <strings.h> (which contains bzero() prototype)
349 #define ACE_HAS_STRINGS 1
352 // OS/compiler omits the const from the iovec parameter in the
353 // writev() prototype.
354 #define ACE_HAS_NONCONST_WRITEV
356 // Platform lacks <stdint.h>
357 #define ACE_LACKS_STDINT_H
359 // Platform lacks <inttypes.h>
360 #define ACE_LACKS_INTTYPES_H
362 // Platform lacks <sys/select.h>
363 #define ACE_LACKS_SYS_SELECT_H
365 // Platform lacks <dlfcn.h>
366 #define ACE_LACKS_DLFCN_H
368 // Platform lacks <semaphore.h>
369 #define ACE_LACKS_SEMAPHORE_H
371 // Platform lacks <poll.h>
372 #define ACE_LACKS_POLL_H
374 // Platform lacks <sys/sysctl.h>
375 #define ACE_LACKS_SYS_SYSCTL_H
377 //=========================================================================
378 // Compiler specific parts
379 //=========================================================================
381 // Compiler supports C++ exception handling
382 #define ACE_HAS_EXCEPTIONS 1
384 // Compiler/platform has correctly prototyped header files
385 #define ACE_HAS_CPLUSPLUS_HEADERS
387 // Compiler/platform does not support the unsigned long long datatype.
388 #define ACE_LACKS_UNSIGNEDLONGLONG_T
390 // Compiler supports the ssize_t typedef
391 #define ACE_HAS_SSIZE_T
393 // Platform/compiler supports Standard C++ Library
394 #define ACE_HAS_STANDARD_CPP_LIBRARY 1
396 // Compiler's template mechanism must see source code (i.e.,
398 #define ACE_TEMPLATES_REQUIRE_SOURCE
400 // Compiler implements templates that support typedefs inside
401 // of classes used as formal arguments to a template class.
402 #define ACE_HAS_TEMPLATE_TYPEDEFS
404 // Platform/Compiler supports a String class
405 #define ACE_HAS_STRING_CLASS
406 #define ACE_HAS_STDCPP_STL_INCLUDES
408 // Platform has its standard c++ library in the namespace std.
409 #define ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB 1
411 // Compiler doesn't support static data member templates
412 #define ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES
414 // Platform lacks "signed char" type (broken!)
415 // Following will not be needed if use standard c library (G06.20 and later)
416 #define ACE_LACKS_SIGNED_CHAR
418 // Compiler can handle any operators in namespace
419 #define ACE_ANY_OPS_USE_NAMESPACE
421 // Platform lacks intptr_t typedef
422 #define ACE_LACKS_INTPTR_T
424 //=========================================================================
425 // C++ version3 import/export macros
426 //=========================================================================
428 // Define the export macros needed to export symbols outside a DLL
429 // The ACE_IMPORT_SINGLETON_DECLARE macro has been modified to not explicitly
430 // instantiate the class template.
431 #if defined(USE_EXPLICIT_EXPORT)
432 #define ACE_LACKS_INLINE_FUNCTIONS
434 #define ACE_HAS_CUSTOM_EXPORT_MACROS
435 #define ACE_Proper_Export_Flag export$
436 #define ACE_Proper_Import_Flag import$
437 #define ACE_EXPORT_SINGLETON_DECLARATION(T) template class export$ T
438 #define ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class export$ SINGLETON_TYPE<CLASS, LOCK>;
439 #define ACE_IMPORT_SINGLETON_DECLARATION(T) template class import$ T
440 #define ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK) template class import$ SINGLETON_TYPE <CLASS, LOCK>;
444 //=========================================================================
446 //=========================================================================
448 // Disable the inclusion of RCS ids in the generated code.
449 #define ACE_USE_RCSID 0
451 // For debugging problems in os calls (but this doesn't work too well
452 // since output is not interleaved properly with output from ACE_TRACE
453 //# define ACE_OS_TRACE(X) ::printf(X)
455 // Uncomment the following if timed message blocks are needed (e.g.
456 // for Dynamic_Priority_Test. Otherwise leave this disabled because
457 // enabling it adds overhead to message blocks and timed message blocks
458 // are "rarely used."
459 //#define ACE_HAS_TIMED_MESSAGE_BLOCKS
461 // Uncomment the following if tokens library is needed.
462 //#define ACE_HAS_TOKENS_LIBRARY
464 // NonStop CORBA uses the XML Service Configurator
465 #define ACE_HAS_XML_SVC_CONF
467 #define ACE_LD_SEARCH_PATH "_RLD_LIB_PATH"
469 #include /**/ "ace/post.h"
471 #endif /* ACE_CONFIG_NSK_H */