// -*- C++ -*- //============================================================================= /** * @file OS.h * * $Id$ * * @author Douglas C. Schmidt * @author Jesper S. M|ller * @author and a cast of thousands... */ //============================================================================= #ifndef ACE_OS_H #define ACE_OS_H #include /**/ "ace/pre.h" #include "ace/config-all.h" #if !defined (ACE_LACKS_PRAGMA_ONCE) # pragma once #endif /* ACE_LACKS_PRAGMA_ONCE */ #if !defined (DO_NOT_INCLUDE_OS_H) #include "ace/Cleanup.h" #include "ace/Object_Manager_Base.h" #include "ace/OS_main.h" #include "ace/OS_NS_arpa_inet.h" #include "ace/OS_NS_ctype.h" #include "ace/OS_NS_dirent.h" #include "ace/OS_NS_dlfcn.h" #include "ace/OS_NS_errno.h" #include "ace/OS_NS_fcntl.h" #include "ace/OS_NS_math.h" #include "ace/OS_NS_netdb.h" #include "ace/OS_NS_poll.h" #include "ace/OS_NS_pwd.h" #include "ace/OS_NS_regex.h" #include "ace/OS_NS_signal.h" #include "ace/OS_NS_stdio.h" #include "ace/OS_NS_stdlib.h" #include "ace/OS_NS_string.h" #include "ace/OS_NS_strings.h" #include "ace/OS_NS_stropts.h" #include "ace/OS_NS_sys_mman.h" #include "ace/OS_NS_sys_msg.h" #include "ace/OS_NS_sys_resource.h" #include "ace/OS_NS_sys_select.h" #include "ace/OS_NS_sys_shm.h" #include "ace/OS_NS_sys_socket.h" #include "ace/OS_NS_sys_stat.h" #include "ace/OS_NS_sys_time.h" #include "ace/OS_NS_sys_uio.h" #include "ace/OS_NS_sys_utsname.h" #include "ace/OS_NS_sys_wait.h" #include "ace/OS_NS_Thread.h" #include "ace/OS_NS_time.h" #include "ace/OS_NS_unistd.h" #include "ace/OS_NS_wchar.h" // Include the split up ACE_OS classes #include "ace/OS_Dirent.h" #include "ace/OS_String.h" #include "ace/OS_Memory.h" #include "ace/OS_TLI.h" #include "ace/OS_Errno.h" #include "ace/os_include/os_dlfcn.h" #include "ace/os_include/sys/os_mman.h" #include "ace/os_include/os_netdb.h" #include "ace/os_include/sys/os_socket.h" #include "ace/os_include/net/os_if.h" #include "ace/os_include/sys/os_sem.h" #include "ace/Time_Value.h" ACE_BEGIN_VERSIONED_NAMESPACE_DECL class ACE_Timeout_Manager; ACE_END_VERSIONED_NAMESPACE_DECL // Here are all ACE-specific default constants, needed throughout ACE // and its applications. The values can be over written by user // specific values in config.h files. #include "ace/Default_Constants.h" // Here are all ACE-specific global declarations needed throughout // ACE. #include "ace/Global_Macros.h" // include the ACE min()/max() functions. # include "ace/Min_Max.h" /////////////////////////////////////////// // // // NOTE: Please do not add any #includes // // before this point. On VxWorks, // // vxWorks.h must be #included // // first! // // // /////////////////////////////////////////// #include "ace/os_include/netinet/os_tcp.h" #include "ace/os_include/sys/os_stat.h" #include "ace/os_include/os_stropts.h" #include "ace/os_include/os_unistd.h" #include "ace/os_include/sys/os_wait.h" // This needs to go here *first* to avoid problems with AIX. # if defined (ACE_HAS_PTHREADS) # include "ace/os_include/os_pthread.h" # endif /* ACE_HAS_PTHREADS */ # if defined (ACE_HAS_PROC_FS) # include /**/ # endif /* ACE_HAS_PROC_FS */ # if defined (ACE_HAS_POSIX_SEM) # include "ace/os_include/os_semaphore.h" # endif /* ACE_HAS_POSIX_SEM */ #include "ace/os_include/sys/os_types.h" #include "ace/os_include/os_stddef.h" #if !defined (ACE_LACKS_UNISTD_H) # include "ace/os_include/os_unistd.h" #endif /* ACE_LACKS_UNISTD_H */ // Standard C Library includes // NOTE: stdarg.h must be #included before stdio.h on LynxOS. # include "ace/os_include/os_stdarg.h" # if !defined (ACE_HAS_WINCE) # include "ace/os_include/os_assert.h" # include "ace/os_include/os_stdio.h" # if !defined (ACE_LACKS_NEW_H) # if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB) # include /**/ # else # include /**/ # endif /* ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB */ # endif /* ! ACE_LACKS_NEW_H */ # if !defined (ACE_VXWORKS) # define ACE_DONT_INCLUDE_ACE_SIGNAL_H # include "ace/os_include/os_signal.h" # undef ACE_DONT_INCLUDE_ACE_SIGNAL_H # endif /* ! VXWORKS */ # include "ace/os_include/os_fcntl.h" # endif /* ACE_HAS_WINCE */ # include "ace/os_include/os_limits.h" # include "ace/os_include/os_ctype.h" # include "ace/os_include/os_string.h" # include "ace/os_include/os_stdlib.h" # include "ace/os_include/os_float.h" # if defined (ACE_NEEDS_SCHED_H) # include "ace/os_include/os_sched.h" # endif /* ACE_NEEDS_SCHED_H */ # include "ace/iosfwd.h" # if !defined (ACE_HAS_WINCE) # include "ace/os_include/os_fcntl.h" # endif /* ACE_HAS_WINCE */ # if defined ACE_HAS_BYTESEX_H # include /**/ # endif /* ACE_HAS_BYTESEX_H */ # include "ace/Basic_Types.h" # if defined (ACE_HAS_UTIME) # include "ace/os_include/os_utime.h" # endif /* ACE_HAS_UTIME */ # if defined (ACE_WIN32) # if !defined (ACE_HAS_WINCE) # include "ace/os_include/sys/os_timeb.h" # endif /* ACE_HAS_WINCE */ # if defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 != 0) # include "ace/os_include/netinet/os_in.h" // # endif /* ACE_HAS_WINSOCK2 */ # if !defined (ACE_HAS_WINCE) # include "ace/os_include/os_time.h" # include "ace/os_include/sys/os_stat.h" // # include "ace/os_include/os_unistd.h" // # endif /* ACE_HAS_WINCE */ # include "ace/os_include/os_fcntl.h" # else /* !defined (ACE_WIN32) */ # if defined (CYGWIN32) # include "ace/os_include/sys/os_uio.h" # include "ace/os_include/os_fcntl.h" // # include "ace/os_include/sys/os_time.h" # include "ace/os_include/sys/os_resource.h" # include "ace/os_include/sys/os_wait.h" # include "ace/os_include/os_pwd.h" # elif defined (__QNX__) # include "ace/os_include/sys/os_uio.h" # include "ace/os_include/sys/os_ipc.h" # include "ace/os_include/sys/os_time.h" # include "ace/os_include/sys/os_wait.h" # include "ace/os_include/sys/os_resource.h" # include "ace/os_include/os_pwd.h" // sets O_NDELAY # include /**/ # include "ace/os_include/os_limits.h" // /* for NBBY */ # elif defined(__rtems__) # include "ace/os_include/os_fcntl.h" // # include "ace/os_include/sys/os_resource.h" # include "ace/os_include/sys/os_time.h" # include "ace/os_include/sys/os_utsname.h" # include "ace/os_include/sys/os_wait.h" # include "ace/os_include/os_pwd.h" # elif ! defined (ACE_VXWORKS) && ! defined (INTEGRITY) # include "ace/os_include/sys/os_uio.h" # include "ace/os_include/sys/os_ipc.h" # if !defined(ACE_LACKS_SYSV_SHMEM) // No reason to #include this if the platform lacks support for SHMEM # include "ace/os_include/sys/os_shm.h" # endif /* ACE_LACKS_SYSV_SHMEM */ # include "ace/os_include/os_fcntl.h" // # include "ace/os_include/sys/os_time.h" # include "ace/os_include/sys/os_resource.h" # include "ace/os_include/sys/os_wait.h" # include "ace/os_include/os_pwd.h" # endif /* ! VXWORKS */ # include "ace/os_include/os_stropts.h" // // IRIX5 defines bzero() in this odd file... # if defined (ACE_HAS_BSTRING) # include /**/ # endif /* ACE_HAS_BSTRING */ // AIX defines bzero() in this odd file... # if defined (ACE_HAS_STRINGS) # include "ace/os_include/os_strings.h" # endif /* ACE_HAS_STRINGS */ # if defined (ACE_HAS_TERMIOS) # include "ace/os_include/os_termios.h" # endif /* ACE_HAS_TERMIOS */ # if defined (ACE_HAS_AIO_CALLS) # include "ace/os_include/os_aio.h" # endif /* ACE_HAS_AIO_CALLS */ # include "ace/os_include/os_limits.h" // # if !defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS) # include "ace/os_include/sys/os_un.h" # endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */ # if defined (ACE_HAS_POLL) # include "ace/os_include/os_poll.h" # endif /* ACE_HAS_POLL */ # if defined (ACE_HAS_SELECT_H) # include "ace/os_include/sys/os_select.h" # endif /* ACE_HAS_SELECT_H */ # include "ace/os_include/sys/os_msg.h" # if defined (ACE_HAS_PRIOCNTL) # include /**/ # endif /* ACE_HAS_PRIOCNTL */ # endif /* !defined (ACE_WIN32) */ # if !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) # include "ace/os_include/os_syslog.h" # endif /* !defined (ACE_WIN32) && !defined (ACE_LACKS_UNIX_SYSLOG) */ ACE_BEGIN_VERSIONED_NAMESPACE_DECL /** * @namespace ACE_OS * * @brief This namespace defines an OS independent programming API that * shields developers from nonportable aspects of writing * efficient system programs on Win32, POSIX and other versions * of UNIX, and various real-time operating systems. * * This namespace encapsulates the differences between various OS * platforms. When porting ACE to a new platform, this class is * the place to focus on. Once this file is ported to a new * platform, pretty much everything else comes for "free." See * * for instructions on porting ACE. Please see the README file * in this directory for complete information on the meaning of * the various macros. */ namespace ACE_OS { // = A set of wrappers for miscellaneous operations. } /* namespace ACE_OS */ ACE_END_VERSIONED_NAMESPACE_DECL # if defined (ACE_HAS_INLINED_OSCALLS) # if defined (ACE_INLINE) # undef ACE_INLINE # endif /* ACE_INLINE */ # define ACE_INLINE inline # include "ace/OS.inl" # endif /* ACE_HAS_INLINED_OSCALLS */ #if defined (ACE_LEGACY_MODE) # include "ace/Log_Msg.h" # include "ace/Thread_Hook.h" # include "ace/Thread_Adapter.h" # include "ace/Thread_Exit.h" # include "ace/Thread_Control.h" #endif /* ACE_LEGACY_MODE */ #endif /* 0 */ #include /**/ "ace/post.h" #endif /* ACE_OS_H */