diff options
Diffstat (limited to 'ACE/ace/OS.h')
-rw-r--r-- | ACE/ace/OS.h | 329 |
1 files changed, 329 insertions, 0 deletions
diff --git a/ACE/ace/OS.h b/ACE/ace/OS.h new file mode 100644 index 00000000000..ea758da6bd5 --- /dev/null +++ b/ACE/ace/OS.h @@ -0,0 +1,329 @@ +// -*- C++ -*- + +//============================================================================= +/** + * @file OS.h + * + * $Id$ + * + * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> + * @author Jesper S. M|ller<stophph@diku.dk> + * @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 /**/ <sys/procfs.h> +# 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 +# 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 /**/ <new> +# else +# include /**/ <new.h> +# 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 /**/ <bytesex.h> +# 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" // <ws2tcpip.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" // <direct.h> +# include "ace/os_include/os_unistd.h" // <process.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" // <sys/file.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 /**/ <unix.h> +# include "ace/os_include/os_limits.h" // <sys/param.h> /* for NBBY */ +# elif defined(__rtems__) +# include "ace/os_include/os_fcntl.h" // <sys/file.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" // <sys/file.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" // <sys/ioctl.h> + +// IRIX5 defines bzero() in this odd file... +# if defined (ACE_HAS_BSTRING) +# include /**/ <bstring.h> +# 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" // <sys/param.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 /**/ <sys/priocntl.h> +# 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 + * <www.cs.wustl.edu/~schmidt/ACE_wrappers/etc/ACE-porting.html> + * 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 */ |