00001 #pragma ident "$Id: SysInfo.cpp 2967 2011-11-05 07:47:25Z yanweignss $"
00002
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "SysInfo.hpp"
00031
00032
00033
00034
00035 #define GPSTK_OS_FREE_BSD 0x0001
00036 #define GPSTK_OS_AIX 0x0002
00037 #define GPSTK_OS_HPUX 0x0003
00038 #define GPSTK_OS_TRU64 0x0004
00039 #define GPSTK_OS_LINUX 0x0005
00040 #define GPSTK_OS_MAC_OS_X 0x0006
00041 #define GPSTK_OS_NET_BSD 0x0007
00042 #define GPSTK_OS_OPEN_BSD 0x0008
00043 #define GPSTK_OS_IRIX 0x0009
00044 #define GPSTK_OS_SOLARIS 0x000a
00045 #define GPSTK_OS_QNX 0x000b
00046 #define GPSTK_OS_VXWORKS 0x000c
00047 #define GPSTK_OS_CYGWIN 0x000d
00048 #define GPSTK_OS_UNKNOWN_UNIX 0x00ff
00049 #define GPSTK_OS_WINDOWS_NT 0x1001
00050 #define GPSTK_OS_WINDOWS_CE 0x1011
00051 #define GPSTK_OS_VMS 0x2001
00052
00053
00054 #if defined(__FreeBSD__)
00055 #define GPSTK_OS_FAMILY_UNIX 1
00056 #define GPSTK_OS_FAMILY_BSD 1
00057 #define GPSTK_OS GPSTK_OS_FREE_BSD
00058 #elif defined(_AIX) || defined(__TOS_AIX__)
00059 #define GPSTK_OS_FAMILY_UNIX 1
00060 #define GPSTK_OS GPSTK_OS_AIX
00061 #elif defined(hpux) || defined(_hpux)
00062 #define GPSTK_OS_FAMILY_UNIX 1
00063 #define GPSTK_OS GPSTK_OS_HPUX
00064 #elif defined(__digital__) || defined(__osf__)
00065 #define GPSTK_OS_FAMILY_UNIX 1
00066 #define GPSTK_OS GPSTK_OS_TRU64
00067 #elif defined(linux) || defined(__linux) || defined(__linux__) || defined(__TOS_LINUX__)
00068 #define GPSTK_OS_FAMILY_UNIX 1
00069 #define GPSTK_OS GPSTK_OS_LINUX
00070 #elif defined(__APPLE__) || defined(__TOS_MACOS__)
00071 #define GPSTK_OS_FAMILY_UNIX 1
00072 #define GPSTK_OS_FAMILY_BSD 1
00073 #define GPSTK_OS GPSTK_OS_MAC_OS_X
00074 #elif defined(__NetBSD__)
00075 #define GPSTK_OS_FAMILY_UNIX 1
00076 #define GPSTK_OS_FAMILY_BSD 1
00077 #define GPSTK_OS GPSTK_OS_NET_BSD
00078 #elif defined(__OpenBSD__)
00079 #define GPSTK_OS_FAMILY_UNIX 1
00080 #define GPSTK_OS_FAMILY_BSD 1
00081 #define GPSTK_OS GPSTK_OS_OPEN_BSD
00082 #elif defined(sgi) || defined(__sgi)
00083 #define GPSTK_OS_FAMILY_UNIX 1
00084 #define GPSTK_OS GPSTK_OS_IRIX
00085 #elif defined(sun) || defined(__sun)
00086 #define GPSTK_OS_FAMILY_UNIX 1
00087 #define GPSTK_OS GPSTK_OS_SOLARIS
00088 #elif defined(__QNX__)
00089 #define GPSTK_OS_FAMILY_UNIX 1
00090 #define GPSTK_OS GPSTK_OS_QNX
00091 #elif defined(unix) || defined(__unix) || defined(__unix__)
00092 #define GPSTK_OS_FAMILY_UNIX 1
00093 #define GPSTK_OS GPSTK_OS_UNKNOWN_UNIX
00094 #elif defined(_WIN32_WCE)
00095 #define GPSTK_OS_FAMILY_WINDOWS 1
00096 #define GPSTK_OS GPSTK_OS_WINDOWS_CE
00097 #elif defined(_WIN32) || defined(_WIN64)
00098 #define GPSTK_OS_FAMILY_WINDOWS 1
00099 #define GPSTK_OS GPSTK_OS_WINDOWS_NT
00100 #elif defined(__CYGWIN__)
00101 #define GPSTK_OS_FAMILY_UNIX 1
00102 #define GPSTK_OS GPSTK_OS_CYGWIN
00103 #elif defined(__VMS)
00104 #define GPSTK_OS_FAMILY_VMS 1
00105 #define GPSTK_OS GPSTK_OS_VMS
00106 #elif defined(GPSTK_VXWORKS)
00107 #define GPSTK_OS_FAMILY_UNIX 1
00108 #define GPSTK_OS GPSTK_OS_VXWORKS
00109 #endif
00110
00111
00112
00113
00114
00115 #define GPSTK_ARCH_ALPHA 0x01
00116 #define GPSTK_ARCH_IA32 0x02
00117 #define GPSTK_ARCH_IA64 0x03
00118 #define GPSTK_ARCH_MIPS 0x04
00119 #define GPSTK_ARCH_HPPA 0x05
00120 #define GPSTK_ARCH_PPC 0x06
00121 #define GPSTK_ARCH_POWER 0x07
00122 #define GPSTK_ARCH_SPARC 0x08
00123 #define GPSTK_ARCH_AMD64 0x09
00124 #define GPSTK_ARCH_ARM 0x0a
00125 #define GPSTK_ARCH_M68K 0x0b
00126 #define GPSTK_ARCH_S390 0x0c
00127 #define GPSTK_ARCH_SH 0x0d
00128 #define GPSTK_ARCH_NIOS2 0x0e
00129
00130
00131 #if defined(__ALPHA) || defined(__alpha) || defined(__alpha__) || defined(_M_ALPHA)
00132 #define GPSTK_ARCH GPSTK_ARCH_ALPHA
00133 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00134 #elif defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_IX86)
00135 #define GPSTK_ARCH GPSTK_ARCH_IA32
00136 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00137 #elif defined(_IA64) || defined(__IA64__) || defined(__ia64__) || defined(__ia64) || defined(_M_IA64)
00138 #define GPSTK_ARCH GPSTK_ARCH_IA64
00139 #if defined(hpux) || defined(_hpux)
00140 #define GPSTK_ARCH_BIG_ENDIAN 1
00141 #else
00142 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00143 #endif
00144 #elif defined(__x86_64__) || defined(_M_X64)
00145 #define GPSTK_ARCH GPSTK_ARCH_AMD64
00146 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00147 #elif defined(__mips__) || defined(__mips) || defined(__MIPS__) || defined(_M_MRX000)
00148 #define GPSTK_ARCH GPSTK_ARCH_MIPS
00149 #define GPSTK_ARCH_BIG_ENDIAN 1
00150 #elif defined(__hppa) || defined(__hppa__)
00151 #define GPSTK_ARCH GPSTK_ARCH_HPPA
00152 #define GPSTK_ARCH_BIG_ENDIAN 1
00153 #elif defined(__PPC) || defined(__POWERPC__) || defined(__powerpc) || defined(__PPC__) || \
00154 defined(__powerpc__) || defined(__ppc__) || defined(__ppc) || defined(_ARCH_PPC) || defined(_M_PPC)
00155 #define GPSTK_ARCH GPSTK_ARCH_PPC
00156 #define GPSTK_ARCH_BIG_ENDIAN 1
00157 #elif defined(_POWER) || defined(_ARCH_PWR) || defined(_ARCH_PWR2) || defined(_ARCH_PWR3) || \
00158 defined(_ARCH_PWR4) || defined(__THW_RS6000)
00159 #define GPSTK_ARCH GPSTK_ARCH_POWER
00160 #define GPSTK_ARCH_BIG_ENDIAN 1
00161 #elif defined(__sparc__) || defined(__sparc) || defined(sparc)
00162 #define GPSTK_ARCH GPSTK_ARCH_SPARC
00163 #define GPSTK_ARCH_BIG_ENDIAN 1
00164 #elif defined(__arm__) || defined(__arm) || defined(ARM) || defined(_ARM_) || defined(__ARM__) || defined(_M_ARM)
00165 #define GPSTK_ARCH GPSTK_ARCH_ARM
00166 #if defined(__ARMEB__)
00167 #define GPSTK_ARCH_BIG_ENDIAN 1
00168 #else
00169 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00170 #endif
00171 #elif defined(__m68k__)
00172 #define GPSTK_ARCH GPSTK_ARCH_M68K
00173 #define GPSTK_ARCH_BIG_ENDIAN 1
00174 #elif defined(__s390__)
00175 #define GPSTK_ARCH GPSTK_ARCH_S390
00176 #define GPSTK_ARCH_BIG_ENDIAN 1
00177 #elif defined(__sh__) || defined(__sh)
00178 #define GPSTK_ARCH GPSTK_ARCH_SH
00179 #if defined(__LITTLE_ENDIAN__)
00180 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00181 #else
00182 #define GPSTK_ARCH_BIG_ENDIAN 1
00183 #endif
00184 #elif defined (nios2) || defined(__nios2) || defined(__nios2__)
00185 #define GPSTK_ARCH GPSTK_ARCH_NIOS2
00186 #if defined(__nios2_little_endian) || defined(nios2_little_endian) || defined(__nios2_little_endian__)
00187 #define GPSTK_ARCH_LITTLE_ENDIAN 1
00188 #else
00189 #define GPSTK_ARCH_BIG_ENDIAN 1
00190 #endif
00191
00192 #endif
00193
00194
00195 namespace gpstk
00196 {
00197
00198 std::string SysInfo::osName()
00199 {
00200 switch (GPSTK_OS)
00201 {
00202 case GPSTK_OS_FREE_BSD: return "Free BSD";
00203 case GPSTK_OS_AIX: return "AIX";
00204 case GPSTK_OS_HPUX: return "HPUX";
00205 case GPSTK_OS_TRU64: return "IRU64";
00206 case GPSTK_OS_LINUX: return "Linux";
00207 case GPSTK_OS_MAC_OS_X: return "Mac OS X";
00208 case GPSTK_OS_NET_BSD: return "Net BSD";
00209 case GPSTK_OS_OPEN_BSD: return "Open BSD";
00210 case GPSTK_OS_IRIX: return "IRIX";
00211 case GPSTK_OS_SOLARIS: return "Solaris";
00212 case GPSTK_OS_QNX: return "QNX";
00213 case GPSTK_OS_VXWORKS: return "Vxworks";
00214 case GPSTK_OS_CYGWIN: return "Cygwin";
00215 case GPSTK_OS_UNKNOWN_UNIX:return "Unknown Unix";
00216 case GPSTK_OS_WINDOWS_NT: return "Windows NT";
00217 case GPSTK_OS_WINDOWS_CE: return "Windows CE";
00218 case GPSTK_OS_VMS: return "VMS";
00219 default: return "Unknown";
00220 }
00221 }
00222
00223 std::string SysInfo::osArchitecture()
00224 {
00225 switch (GPSTK_ARCH)
00226 {
00227 case GPSTK_ARCH_ALPHA: return "ALPHA";
00228 case GPSTK_ARCH_IA32: return "IA32";
00229 case GPSTK_ARCH_IA64: return "IA64";
00230 case GPSTK_ARCH_MIPS: return "MIPS";
00231 case GPSTK_ARCH_HPPA: return "HPPA";
00232 case GPSTK_ARCH_PPC: return "PPC";
00233 case GPSTK_ARCH_POWER: return "POWER";
00234 case GPSTK_ARCH_SPARC: return "SPARC";
00235 case GPSTK_ARCH_AMD64: return "AMD64";
00236 case GPSTK_ARCH_ARM: return "ARM";
00237 case GPSTK_ARCH_M68K: return "M68K";
00238 case GPSTK_ARCH_S390: return "S390";
00239 case GPSTK_ARCH_SH: return "SH";
00240 case GPSTK_ARCH_NIOS2: return "NIOS2";
00241 default: return "Unknown";
00242 }
00243 }
00244
00245 }
00246