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