1 // Specialized configuration for FACE Safety Profiles
2 // See http://www.opengroup.org/face for more info about the Future Airborne
3 // Capability Environment
6 // In ace/config.h, #define ACE_FACE_SAFETY_BASE or ACE_FACE_SAFETY_EXTENDED
7 // Optionally #define ACE_FACE_DEV
8 // ACE_FACE_DEV is a development mode setting which produces an ACE library
9 // that allows debug logging (doesn't enforce ACE_NDEBUG) and ACE_OS::getenv().
11 // Maintaining this header:
12 // This version of the header is written for FACE technical standard 2.1.
13 // See Appendix A for a chart of POSIX calls that are excluded from the
15 // The top half of this file is only included if the user enables Safety Base,
16 // so these are exclusions that apply to Base but not to Extended.
17 // The bottom half is included for either profile, so it contains restrictions
18 // that are common to both Based and Extended.
19 // Keep macro definitions in sorted order. Macros set by this file that are
20 // also set by some platform-specific config-*.h are "protected" from double
21 // definition by this construct:
22 //# ifndef ACE_LACKS_X
23 //# define ACE_LACKS_X
25 // Macros that are undefined in this file are similarly guarded:
30 #ifdef ACE_FACE_SAFETY_BASE
32 # ifndef ACE_FACE_SAFETY_EXTENDED
33 # define ACE_FACE_SAFETY_EXTENDED
36 # ifndef ACE_HAS_ALLOC_HOOKS
37 # define ACE_HAS_ALLOC_HOOKS
40 // Due to ACE_LACKS_PTHREAD_KEY_DELETE, ACE must explicitly clear out TSS
41 // when keyfree would have normally occurred. This prevents the system's
42 // TSS destructors running later, which could be after libACE unloading.
43 # ifndef ACE_HAS_BROKEN_THREAD_KEYFREE
44 # define ACE_HAS_BROKEN_THREAD_KEYFREE
47 # ifndef ACE_HAS_REACTOR_NOTIFICATION_QUEUE
48 # define ACE_HAS_REACTOR_NOTIFICATION_QUEUE
51 // TSS emulation required with ACE_LACKS_PTHREAD_JOIN
52 # ifndef ACE_HAS_TSS_EMULATION
53 # define ACE_HAS_TSS_EMULATION
56 # define ACE_LACKS_ABORT
57 # define ACE_LACKS_EXIT
58 # define ACE_LACKS__EXIT
59 # define ACE_LACKS_FREE
60 # define ACE_LACKS_PTHREAD_EXIT
61 # define ACE_LACKS_PTHREAD_JOIN
62 # define ACE_LACKS_PTHREAD_KEY_DELETE
63 # define ACE_LACKS_PTHREAD_MUTEX_DESTROY
64 # define ACE_LACKS_REALLOC
65 # define ACE_LACKS_SEM_DESTROY
66 # define ACE_LACKS_SEM_UNLINK
67 # define ACE_LACKS_SETPID
68 # define ACE_LACKS_SLEEP
69 # define ACE_LACKS_SSCANF
70 # define ACE_LACKS_VA_FUNCTIONS
71 # define ACE_LACKS_VFPRINTF
73 # ifndef ACE_LACKS_ACCEPT
74 # define ACE_LACKS_ACCEPT
77 # ifndef ACE_LACKS_BSEARCH
78 # define ACE_LACKS_BSEARCH
81 # ifndef ACE_LACKS_DUP2
82 # define ACE_LACKS_DUP2
85 # ifndef ACE_LACKS_EXEC
86 # define ACE_LACKS_EXEC
89 # ifndef ACE_LACKS_FCNTL
90 # define ACE_LACKS_FCNTL
93 # ifndef ACE_LACKS_FORK
94 # define ACE_LACKS_FORK
97 # ifndef ACE_LACKS_GETEGID
98 # define ACE_LACKS_GETEGID
101 # if !defined ACE_LACKS_GETENV && !defined ACE_FACE_DEV
102 # define ACE_LACKS_GETENV
105 # ifndef ACE_LACKS_GETEUID
106 # define ACE_LACKS_GETEUID
109 # ifndef ACE_LACKS_GETGID
110 # define ACE_LACKS_GETGID
113 # ifndef ACE_LACKS_GETPID
114 # define ACE_LACKS_GETPID
117 # ifndef ACE_LACKS_GETPPID
118 # define ACE_LACKS_GETPPID
121 # ifndef ACE_LACKS_GETUID
122 # define ACE_LACKS_GETUID
125 # ifndef ACE_LACKS_KILL
126 # define ACE_LACKS_KILL
129 # ifndef ACE_LACKS_LISTEN
130 # define ACE_LACKS_LISTEN
133 # ifndef ACE_LACKS_LSTAT
134 # define ACE_LACKS_LSTAT
137 # ifndef ACE_LACKS_MKFIFO
138 # define ACE_LACKS_MKFIFO
141 # ifndef ACE_LACKS_PIPE
142 # define ACE_LACKS_PIPE
145 # ifndef ACE_LACKS_PTHREAD_KILL
146 # define ACE_LACKS_PTHREAD_KILL
149 # ifndef ACE_LACKS_PTHREAD_CANCEL
150 # define ACE_LACKS_PTHREAD_CANCEL
153 # ifndef ACE_LACKS_PTHREAD_CLEANUP
154 # define ACE_LACKS_PTHREAD_CLEANUP
157 # ifndef ACE_LACKS_RAISE
158 # define ACE_LACKS_RAISE
161 # ifndef ACE_LACKS_SETDETACH
162 # define ACE_LACKS_SETDETACH
165 # ifndef ACE_LACKS_SETEGID
166 # define ACE_LACKS_SETEGID
169 # ifndef ACE_LACKS_SETEUID
170 # define ACE_LACKS_SETEUID
173 # ifndef ACE_LACKS_SETGID
174 # define ACE_LACKS_SETGID
177 # ifndef ACE_LACKS_SETSCHED
178 # define ACE_LACKS_SETSCHED
181 # ifndef ACE_LACKS_SETUID
182 # define ACE_LACKS_SETUID
185 # ifndef ACE_LACKS_STRFTIME
186 # define ACE_LACKS_STRFTIME
189 # ifndef ACE_LACKS_STRTOLL
190 # define ACE_LACKS_STRTOLL
193 # ifndef ACE_LACKS_SYSCONF
194 # define ACE_LACKS_SYSCONF
197 # ifndef ACE_LACKS_UNAME
198 # define ACE_LACKS_UNAME
201 # ifndef ACE_LACKS_VSNPRINTF
202 # define ACE_LACKS_VSNPRINTF
205 # ifndef ACE_LACKS_WAITPID
206 # define ACE_LACKS_WAITPID
209 # if !defined ACE_FACE_DEV && !defined ACE_NDEBUG
213 # define ACE_STDIO_USE_STDLIB_FOR_VARARGS
215 #endif // ACE_FACE_SAFETY_BASE
217 #ifdef ACE_FACE_SAFETY_EXTENDED
219 # if defined ACE_WIN32
220 # error "FACE Safety profile not compatible with win32"
223 # ifndef ACE_EMULATE_POSIX_DEVCTL
224 # define ACE_EMULATE_POSIX_DEVCTL 1
227 # ifdef ACE_HAS_AIO_CALLS
228 # undef ACE_HAS_AIO_CALLS
231 # ifdef ACE_HAS_DEV_POLL
232 # undef ACE_HAS_DEV_POLL
235 # ifdef ACE_HAS_EVENT_POLL
236 # undef ACE_HAS_EVENT_POLL
239 # ifdef ACE_HAS_ICONV
240 # undef ACE_HAS_ICONV
243 # ifdef ACE_HAS_P_READ_WRITE
244 # undef ACE_HAS_P_READ_WRITE
247 # ifdef ACE_HAS_RECURSIVE_MUTEXES
248 # undef ACE_HAS_RECURSIVE_MUTEXES
251 # ifdef ACE_HAS_SCANDIR
252 # undef ACE_HAS_SCANDIR
255 # ifdef ACE_HAS_STREAM_PIPES
256 # undef ACE_HAS_STREAM_PIPES
259 # ifdef ACE_HAS_STRNLEN
260 # undef ACE_HAS_STRNLEN
263 # ifdef ACE_HAS_SVR4_GETTIMEOFDAY
264 # undef ACE_HAS_SVR4_GETTIMEOFDAY
267 # ifdef ACE_HAS_SYSV_IPC
268 # undef ACE_HAS_SYSV_IPC
271 # ifdef ACE_HAS_TIMEZONE_GETTIMEOFDAY
272 # undef ACE_HAS_TIMEZONE_GETTIMEOFDAY
275 # ifdef ACE_HAS_VFWPRINTF
276 # undef ACE_HAS_VFWPRINTF
279 # ifdef ACE_HAS_VOIDPTR_GETTIMEOFDAY
280 # undef ACE_HAS_VOIDPTR_GETTIMEOFDAY
283 # ifdef ACE_HAS_VSWPRINTF
284 # undef ACE_HAS_VSWPRINTF
287 # ifdef ACE_HAS_VWPRINTF
288 # undef ACE_HAS_VWPRINTF
291 # ifdef ACE_HAS_WCHAR
292 # undef ACE_HAS_WCHAR
295 # ifdef ACE_HAS_XPG4_MULTIBYTE_CHAR
296 # undef ACE_HAS_XPG4_MULTIBYTE_CHAR
299 # define ACE_LACKS_CTIME
300 # define ACE_LACKS_FDOPEN
301 # define ACE_LACKS_FGETPOS
302 # define ACE_LACKS_FPUTC
303 # define ACE_LACKS_FPUTS
304 # define ACE_LACKS_FSCANF
305 # define ACE_LACKS_FSETPOS
306 # define ACE_LACKS_GETC
307 # define ACE_LACKS_GETTIMEOFDAY
308 # define ACE_LACKS_IF_NAMEINDEX
309 # define ACE_LACKS_IF_NAMETOINDEX
310 # define ACE_LACKS_IOCTL
311 # define ACE_LACKS_LOCALECONV
312 # define ACE_LACKS_MUNMAP
313 # define ACE_LACKS_OPENLOG
314 # define ACE_LACKS_PRAGMA_ONCE
315 # define ACE_LACKS_PTHREAD_MUTEXATTR_SETTYPE
316 # define ACE_LACKS_PUTC
317 # define ACE_LACKS_PUTS
318 # define ACE_LACKS_RAND
319 # define ACE_LACKS_REWIND
320 # define ACE_LACKS_SHM_UNLINK
321 # define ACE_LACKS_SIGNAL
322 # define ACE_LACKS_SRAND
323 # define ACE_LACKS_STDERR
324 # define ACE_LACKS_STDIN
325 # define ACE_LACKS_STDOUT
326 # define ACE_LACKS_STRTOK
327 # define ACE_LACKS_UNGETC
328 # define ACE_LACKS_VA_COPY
329 # define ACE_LACKS_VPRINTF
330 # define ACE_LACKS_VSPRINTF
332 # ifndef ACE_LACKS_ACE_IOSTREAM
333 # define ACE_LACKS_ACE_IOSTREAM
336 # ifndef ACE_LACKS_ALPHASORT
337 # define ACE_LACKS_ALPHASORT
340 # ifndef ACE_LACKS_ASCTIME
341 # define ACE_LACKS_ASCTIME
344 # ifndef ACE_LACKS_CONDATTR_PSHARED
345 # define ACE_LACKS_CONDATTR_PSHARED
348 # ifndef ACE_LACKS_CUSERID
349 # define ACE_LACKS_CUSERID
352 # ifndef ACE_LACKS_DUP
353 # define ACE_LACKS_DUP
356 # ifndef ACE_LACKS_EXECVP
357 # define ACE_LACKS_EXECVP
360 # ifndef ACE_LACKS_GAI_STRERROR
361 # define ACE_LACKS_GAI_STRERROR
364 # ifndef ACE_LACKS_GETHOSTBYADDR
365 # define ACE_LACKS_GETHOSTBYADDR
368 # ifndef ACE_LACKS_GETHOSTBYADDR_R
369 # define ACE_LACKS_GETHOSTBYADDR_R
372 # ifndef ACE_LACKS_GETHOSTBYNAME
373 # define ACE_LACKS_GETHOSTBYNAME
376 # ifndef ACE_LACKS_GETHOSTENT
377 # define ACE_LACKS_GETHOSTENT
380 # ifndef ACE_LACKS_GETOPT
381 # define ACE_LACKS_GETOPT
384 # ifndef ACE_LACKS_GETPGID
385 # define ACE_LACKS_GETPGID
388 # ifndef ACE_LACKS_GETPROTOBYNAME
389 # define ACE_LACKS_GETPROTOBYNAME
392 # ifndef ACE_LACKS_GETPROTOBYNUMBER
393 # define ACE_LACKS_GETPROTOBYNUMBER
396 # ifndef ACE_LACKS_GETSERVBYNAME
397 # define ACE_LACKS_GETSERVBYNAME
400 # ifndef ACE_LACKS_GMTIME
401 # define ACE_LACKS_GMTIME
404 # ifndef ACE_LACKS_INET_ADDR
405 # define ACE_LACKS_INET_ADDR
408 # ifndef ACE_LACKS_INET_ATON
409 # define ACE_LACKS_INET_ATON
412 # ifndef ACE_LACKS_INET_NTOA
413 # define ACE_LACKS_INET_NTOA
416 # ifndef ACE_LACKS_IOSTREAM_TOTALLY
417 # define ACE_LACKS_IOSTREAM_TOTALLY
420 # ifndef ACE_LACKS_ISASCII
421 # define ACE_LACKS_ISASCII
424 # ifndef ACE_LACKS_ISATTY
425 # define ACE_LACKS_ISATTY
428 # ifndef ACE_LACKS_ISBLANK
429 # define ACE_LACKS_ISBLANK
432 # ifndef ACE_LACKS_ISWASCII
433 # define ACE_LACKS_ISWASCII
436 # ifndef ACE_LACKS_ISWBLANK
437 # define ACE_LACKS_ISWBLANK
440 # ifndef ACE_LACKS_ISWCTYPE
441 # define ACE_LACKS_ISWCTYPE
444 # ifndef ACE_LACKS_LOCALTIME
445 # define ACE_LACKS_LOCALTIME
448 # ifndef ACE_LACKS_LOG2
449 # define ACE_LACKS_LOG2
452 # ifndef ACE_LACKS_MADVISE
453 # define ACE_LACKS_MADVISE
456 # ifndef ACE_LACKS_MKSTEMP
457 # define ACE_LACKS_MKSTEMP
460 # ifndef ACE_LACKS_MKTEMP
461 # define ACE_LACKS_MKTEMP
464 # ifndef ACE_LACKS_MPROTECT
465 # define ACE_LACKS_MPROTECT
468 # ifndef ACE_LACKS_MSYNC
469 # define ACE_LACKS_MSYNC
472 # ifndef ACE_LACKS_MUTEXATTR_PSHARED
473 # define ACE_LACKS_MUTEXATTR_PSHARED
476 # ifndef ACE_LACKS_PERROR
477 # define ACE_LACKS_PERROR
480 # ifndef ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
481 # define ACE_LACKS_PTHREAD_ATTR_SETSTACKADDR
484 # ifndef ACE_LACKS_PTHREAD_CANCEL
485 # define ACE_LACKS_PTHREAD_CANCEL
488 # ifndef ACE_LACKS_PUTENV
489 # define ACE_LACKS_PUTENV
492 # ifndef ACE_LACKS_PWD_FUNCTIONS
493 # define ACE_LACKS_PWD_FUNCTIONS
496 # ifndef ACE_LACKS_QSORT
497 # define ACE_LACKS_QSORT
500 # ifndef ACE_LACKS_READLINK
501 # define ACE_LACKS_READLINK
504 # ifndef ACE_LACKS_READV
505 # define ACE_LACKS_READV
508 # ifndef ACE_LACKS_RECVMSG
509 # define ACE_LACKS_RECVMSG
512 # ifndef ACE_LACKS_REALPATH
513 # define ACE_LACKS_REALPATH
516 # ifndef ACE_LACKS_RLIMIT
517 # define ACE_LACKS_RLIMIT
520 # ifndef ACE_LACKS_RWLOCK_T
521 # define ACE_LACKS_RWLOCK_T
524 # ifndef ACE_LACKS_SBRK
525 # define ACE_LACKS_SBRK
528 # ifndef ACE_LACKS_SEEKDIR
529 # define ACE_LACKS_SEEKDIR
532 # ifndef ACE_LACKS_SENDMSG
533 # define ACE_LACKS_SENDMSG
536 # ifndef ACE_LACKS_SETLOGMASK
537 # define ACE_LACKS_SETLOGMASK
540 # ifndef ACE_LACKS_SETPGID
541 # define ACE_LACKS_SETPGID
544 # ifndef ACE_LACKS_SETREGID
545 # define ACE_LACKS_SETREGID
548 # ifndef ACE_LACKS_SETREUID
549 # define ACE_LACKS_SETREUID
552 # ifndef ACE_LACKS_SETSID
553 # define ACE_LACKS_SETSID
556 # ifndef ACE_LACKS_SIGPROCMASK
557 # define ACE_LACKS_SIGPROCMASK
560 # ifndef ACE_LACKS_SOCKETPAIR
561 # define ACE_LACKS_SOCKETPAIR
564 # ifndef ACE_LACKS_STD_WSTRING
565 # define ACE_LACKS_STD_WSTRING
568 # ifndef ACE_LACKS_STRCASECMP
569 # define ACE_LACKS_STRCASECMP
572 # ifndef ACE_LACKS_STRDUP
573 # define ACE_LACKS_STRDUP
576 # ifndef ACE_LACKS_STRERROR
577 # define ACE_LACKS_STRERROR
580 # ifndef ACE_LACKS_STRPTIME
581 # define ACE_LACKS_STRPTIME
584 # ifndef ACE_LACKS_STRTOLL
585 # define ACE_LACKS_STRTOLL
588 # ifndef ACE_LACKS_STRTOULL
589 # define ACE_LACKS_STRTOULL
592 # ifndef ACE_LACKS_SWAB
593 # define ACE_LACKS_SWAB
596 # ifndef ACE_LACKS_SYMLINKS
597 # define ACE_LACKS_SYMLINKS
600 # ifndef ACE_LACKS_SYSTEM
601 # define ACE_LACKS_SYSTEM
604 # ifndef ACE_LACKS_SYS_SHM_H
605 # define ACE_LACKS_SYS_SHM_H
608 # ifndef ACE_LACKS_TELLDIR
609 # define ACE_LACKS_TELLDIR
612 # ifndef ACE_LACKS_TMPNAM
613 # define ACE_LACKS_TMPNAM
616 # ifndef ACE_LACKS_TEMPNAM
617 # define ACE_LACKS_TEMPNAM
620 # ifndef ACE_LACKS_TRUNCATE
621 # define ACE_LACKS_TRUNCATE
624 # ifndef ACE_LACKS_UNIX_SYSLOG
625 # define ACE_LACKS_UNIX_SYSLOG
628 # ifndef ACE_LACKS_WAIT
629 # define ACE_LACKS_WAIT
632 # ifndef ACE_LACKS_WCSCAT
633 # define ACE_LACKS_WCSCAT
636 # ifndef ACE_LACKS_WCSCHR
637 # define ACE_LACKS_WCSCHR
640 # ifndef ACE_LACKS_WCSCMP
641 # define ACE_LACKS_WCSCMP
644 # ifndef ACE_LACKS_WCSCPY
645 # define ACE_LACKS_WCSCPY
648 # ifndef ACE_LACKS_WCSCSPN
649 # define ACE_LACKS_WCSCSPN
652 # ifndef ACE_LACKS_WCSDUP
653 # define ACE_LACKS_WCSDUP
656 # ifndef ACE_LACKS_WCSLEN
657 # define ACE_LACKS_WCSLEN
660 # ifndef ACE_LACKS_WCSNCAT
661 # define ACE_LACKS_WCSNCAT
664 # ifndef ACE_LACKS_WCSNCMP
665 # define ACE_LACKS_WCSNCMP
668 # ifndef ACE_LACKS_WCSNCPY
669 # define ACE_LACKS_WCSNCPY
672 # ifndef ACE_LACKS_WCSNLEN
673 # define ACE_LACKS_WCSNLEN
676 # ifndef ACE_LACKS_WCSPBRK
677 # define ACE_LACKS_WCSPBRK
680 # ifndef ACE_LACKS_WCSRCHR
681 # define ACE_LACKS_WCSRCHR
684 # ifndef ACE_LACKS_WCSRTOMBS
685 # define ACE_LACKS_WCSRTOMBS
688 # ifndef ACE_LACKS_WCSSPN
689 # define ACE_LACKS_WCSSPN
692 # ifndef ACE_LACKS_WCSSTR
693 # define ACE_LACKS_WCSSTR
696 # ifndef ACE_LACKS_WCSTOK
697 # define ACE_LACKS_WCSTOK
700 # ifndef ACE_LACKS_WCSLEN
701 # define ACE_LACKS_WCSLEN
704 # ifndef ACE_LACKS_WRITEV
705 # define ACE_LACKS_WRITEV
708 // due to ACE_LACKS_GETHOSTBYNAME:
709 # ifndef ACE_LOCALHOST
710 # define ACE_LOCALHOST ACE_TEXT ("127.0.0.1")
713 # ifdef ACE_USES_GPROF
714 # undef ACE_USES_GPROF
717 #endif // ACE_FACE_SAFETY_EXTENDED