os_types.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file    os_types.h
00006  *
00007  *  data types
00008  *
00009  *  $Id: os_types.h 78593 2007-06-27 06:10:37Z johnnyw $
00010  *
00011  *  @author Don Hinton <dhinton@dresystems.com>
00012  *  @author This code was originally in various places including ace/OS.h.
00013  */
00014 //=============================================================================
00015 
00016 #ifndef ACE_OS_INCLUDE_SYS_OS_TYPES_H
00017 #define ACE_OS_INCLUDE_SYS_OS_TYPES_H
00018 
00019 #include /**/ "ace/pre.h"
00020 
00021 #include "ace/config-lite.h"
00022 
00023 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00024 # pragma once
00025 #endif /* ACE_LACKS_PRAGMA_ONCE */
00026 
00027 #include "ace/os_include/os_stddef.h"
00028 
00029 #if !defined (ACE_LACKS_SYS_TYPES_H)
00030 #  include /**/ <sys/types.h>
00031 #endif /* !ACE_LACKS_SYS_TYPES_H */
00032 
00033 #if defined (ACE_HAS_WINCE)
00034 #  include /**/ <types.h>
00035 #endif /* ACE_HAS_WINCE */
00036 
00037 # if defined (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB) && \
00038              (ACE_USES_STD_NAMESPACE_FOR_STDC_LIB != 0)
00039 using std::time_t;
00040 # endif /* ACE_USES_STD_NAMESPACE_FOR_STDC_LIB */
00041 
00042 // Place all additions (especially function declarations) within extern "C" {}
00043 #ifdef __cplusplus
00044 extern "C"
00045 {
00046 #endif /* __cplusplus */
00047 
00048 typedef double ACE_timer_t;
00049 
00050 // todo: don't forget to clean this up!  ;-)
00051 #if !defined (ACE_HAS_CLOCK_GETTIME) && !(defined (_CLOCKID_T_) || defined (_CLOCKID_T))
00052    typedef int clockid_t;
00053 #  if !defined (CLOCK_REALTIME)
00054 #    define CLOCK_REALTIME 0
00055 #  endif /* CLOCK_REALTIME */
00056 #endif /* ! ACE_HAS_CLOCK_GETTIME && ! _CLOCKID_T_ */
00057 
00058 #if defined (ACE_HAS_WINCE)
00059 
00060 // CE's add-on for c-style fstat/stat functionalities.  This struct is
00061 // by no mean complete compared to what you usually find in UNIX
00062 // platforms.  Only members that have direct conversion using Win32's
00063 // BY_HANDLE_FILE_INFORMATION are defined so that users can discover
00064 // non-supported members at compile time.  Time values are of type
00065 // ACE_Time_Value for easy comparison.
00066 
00067 // Since CE does not have _stat by default as NT/2000 does, the 'stat'
00068 // struct defined here will be used.  Also note that CE file system
00069 // struct is only for the CE 3.0 or later.
00070 // Refer to the WCHAR.H from Visual C++ and WIBASE.H from eVC 3.0.
00071 
00072    typedef unsigned int dev_t;
00073 #endif /* ACE_HAS_WINCE */
00074 
00075 #if defined(ACE_WIN32) && defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS==64)
00076   typedef __int64 ACE_OFF_T;
00077 #else
00078   typedef off_t ACE_OFF_T;
00079 #endif
00080 
00081 #if defined (ACE_SIZEOF_LONG) && ACE_SIZEOF_LONG == 8
00082    typedef off_t ACE_LOFF_T;
00083 #elif defined (ACE_HAS_RTEMS) || defined (__FreeBSD__) || defined (__NetBSD__) || defined (__OpenBSD__) || defined (__APPLE__) || \
00084   (defined (ACE_OPENVMS) && defined (_LARGEFILE)) || defined(ACE_MVS)
00085    typedef off_t ACE_LOFF_T;
00086 #elif defined (__sgi) || defined (AIX) || defined (HPUX) || defined (__QNX__)
00087    typedef off64_t ACE_LOFF_T;
00088 #elif defined (__sun)
00089    typedef offset_t ACE_LOFF_T;
00090 #elif defined (WIN32)
00091    typedef __int64  ACE_LOFF_T;
00092 #elif (defined (ACE_VXWORKS) && (ACE_VXWORKS <= 0x650)) || \
00093   defined (ACE_LYNXOS_MAJOR) || \
00094   (defined (ACE_OPENVMS) && !defined (_LARGEFILE))
00095    typedef long long ACE_LOFF_T;
00096 #else
00097    typedef loff_t ACE_LOFF_T;
00098 #endif
00099 
00100 #if defined (ACE_WIN32)
00101 #  if !defined (__BORLANDC__)
00102      typedef DWORD nlink_t;
00103 #    if !defined(__MINGW32__)
00104         typedef int mode_t;
00105 #    endif /* !__MINGW32__ */
00106      typedef long uid_t;
00107      typedef long gid_t;
00108 #  endif /* __BORLANDC__ */
00109    typedef char *caddr_t;
00110 #endif /* ACE_WIN32 */
00111 
00112 #if defined (ACE_LACKS_KEY_T)
00113 #  if defined (ACE_WIN32)
00114    // Win32 doesn't use numeric values to name its semaphores, it uses
00115    // strings!
00116      typedef char *key_t;
00117 #  else
00118      typedef int key_t;
00119 #  endif /* ACE_WIN32 */
00120 #endif /* ACE_LACKS_KEY_T */
00121 
00122 #if !defined (ACE_HAS_SSIZE_T)
00123 #  if defined (ACE_WIN64)
00124   typedef SSIZE_T ssize_t;
00125 #  else
00126   typedef int ssize_t;
00127 #  endif /* ACE_WIN64 */
00128 #endif /* ACE_HAS_SSIZE_T */
00129 
00130 #if defined (ACE_WIN32)
00131    typedef DWORD ACE_exitcode;
00132 #else
00133    typedef int ACE_exitcode;
00134 #endif /* ACE_WIN32 */
00135 
00136 #if defined (ACE_LACKS_SUSECONDS_T)
00137   typedef long suseconds_t;
00138 #endif
00139 
00140 #if defined (ACE_LACKS_USECONDS_T)
00141   typedef unsigned long useconds_t;
00142 #endif
00143 
00144 #if defined (ACE_WIN32) && !defined(__MINGW32__)
00145    typedef long pid_t;
00146 #endif /* ACE_WIN32 */
00147 
00148 # if !defined (ACE_INVALID_PID)
00149 # define ACE_INVALID_PID ((pid_t) -1)
00150 # endif /* ACE_INVALID_PID */
00151 
00152 #ifdef __cplusplus
00153 }
00154 #endif /* __cplusplus */
00155 
00156 #include /**/ "ace/post.h"
00157 #endif /* ACE_OS_INCLUDE_SYS_OS_TYPES_H */

Generated on Sun Jan 27 12:05:34 2008 for ACE by doxygen 1.3.6