testplatform.c revision 9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f
19682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 29682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include <stdio.h> 39682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 49682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include "SDL.h" 59682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include "SDL_endian.h" 69682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#include "SDL_cpuinfo.h" 79682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 89682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* 99682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall * Watcom C flags these as Warning 201: "Unreachable code" if you just 109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall * compare them directly, so we push it through a function to keep the 119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall * compiler quiet. --ryan. 129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall */ 139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallstatic int badsize(size_t sizeoftype, size_t hardcodetype) 149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall{ 159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall return sizeoftype != hardcodetype; 169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall} 179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallint TestTypes(SDL_bool verbose) 199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall{ 209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall int error = 0; 219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( badsize(sizeof(Uint8), 1) ) { 239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) 249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("sizeof(Uint8) != 1, instead = %lu\n", 259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall (unsigned long) sizeof(Uint8)); 269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( badsize(sizeof(Uint16), 2) ) { 299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) 309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("sizeof(Uint16) != 2, instead = %lu\n", 319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall (unsigned long) sizeof(Uint16)); 329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( badsize(sizeof(Uint32), 4) ) { 359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) 369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("sizeof(Uint32) != 4, instead = %lu\n", 379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall (unsigned long) sizeof(Uint32)); 389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifdef SDL_HAS_64BIT_TYPE 419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( badsize(sizeof(Uint64), 8) ) { 429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) 439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("sizeof(Uint64) != 8, instead = %lu\n", 449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall (unsigned long) sizeof(Uint64)); 459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#else 489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("WARNING: No 64-bit datatype on this platform\n"); 509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose && !error ) 539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("All data types are the expected size.\n"); 549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall return( error ? 1 : 0 ); 569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall} 579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 589682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallint TestEndian(SDL_bool verbose) 599682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall{ 609682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall int error = 0; 619682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall Uint16 value = 0x1234; 629682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall int real_byteorder; 639682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall Uint16 value16 = 0xCDAB; 649682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall Uint16 swapped16 = 0xABCD; 659682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall Uint32 value32 = 0xEFBEADDE; 669682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall Uint32 swapped32 = 0xDEADBEEF; 679682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifdef SDL_HAS_64BIT_TYPE 689682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall Uint64 value64, swapped64; 699682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall value64 = 0xEFBEADDE; 709682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall value64 <<= 32; 719682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall value64 |= 0xCDAB3412; 729682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall swapped64 = 0x1234ABCD; 739682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall swapped64 <<= 32; 749682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall swapped64 |= 0xDEADBEEF; 759682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 769682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 779682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 789682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("Detected a %s endian machine.\n", 799682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall (SDL_BYTEORDER == SDL_LIL_ENDIAN) ? "little" : "big"); 809682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 819682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( (*((char *)&value) >> 4) == 0x1 ) { 829682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall real_byteorder = SDL_BIG_ENDIAN; 839682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } else { 849682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall real_byteorder = SDL_LIL_ENDIAN; 859682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 869682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( real_byteorder != SDL_BYTEORDER ) { 879682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 889682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("Actually a %s endian machine!\n", 899682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall (real_byteorder == SDL_LIL_ENDIAN) ? "little" : "big"); 909682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 919682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 929682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 939682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 949682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("Value 16 = 0x%X, swapped = 0x%X\n", value16, SDL_Swap16(value16)); 959682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 969682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( SDL_Swap16(value16) != swapped16 ) { 979682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 989682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("16 bit value swapped incorrectly!\n"); 999682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1009682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 1019682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1029682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 1039682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("Value 32 = 0x%X, swapped = 0x%X\n", value32, SDL_Swap32(value32)); 1049682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1059682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( SDL_Swap32(value32) != swapped32 ) { 1069682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 1079682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("32 bit value swapped incorrectly!\n"); 1089682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1099682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 1109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1119682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifdef SDL_HAS_64BIT_TYPE 1129682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 1139682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifdef _MSC_VER 1149682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("Value 64 = 0x%I64X, swapped = 0x%I64X\n", value64, SDL_Swap64(value64)); 1159682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#else 1169682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("Value 64 = 0x%llX, swapped = 0x%llX\n", (unsigned long long) value64, (unsigned long long) SDL_Swap64(value64)); 1179682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 1189682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1199682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( SDL_Swap64(value64) != swapped64 ) { 1209682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 1219682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("64 bit value swapped incorrectly!\n"); 1229682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1239682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ++error; 1249682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1259682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 1269682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall return( error ? 1 : 0 ); 1279682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall} 1289682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 1299682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 1309682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallint TestCPUInfo(SDL_bool verbose) 1319682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall{ 1329682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 1339682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("RDTSC %s\n", SDL_HasRDTSC() ? "detected" : "not detected"); 1349682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("MMX %s\n", SDL_HasMMX() ? "detected" : "not detected"); 1359682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("MMX Ext %s\n", SDL_HasMMXExt() ? "detected" : "not detected"); 1369682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("3DNow %s\n", SDL_Has3DNow() ? "detected" : "not detected"); 1379682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("3DNow Ext %s\n", SDL_Has3DNowExt() ? "detected" : "not detected"); 1389682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("SSE %s\n", SDL_HasSSE() ? "detected" : "not detected"); 1399682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("SSE2 %s\n", SDL_HasSSE2() ? "detected" : "not detected"); 1409682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("AltiVec %s\n", SDL_HasAltiVec() ? "detected" : "not detected"); 1419682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1429682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall return(0); 1439682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall} 1449682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 1459682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hallint main(int argc, char *argv[]) 1469682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall{ 1479682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall SDL_bool verbose = SDL_TRUE; 1489682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall int status = 0; 1499682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 1509682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( argv[1] && (SDL_strcmp(argv[1], "-q") == 0) ) { 1519682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall verbose = SDL_FALSE; 1529682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 1539682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall if ( verbose ) { 1549682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall printf("This system is running %s\n", 1559682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#if __AIX__ 1569682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "AIX" 1579682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __HAIKU__ 1589682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall/* Haiku must appear here before BeOS, since it also defines __BEOS__ */ 1599682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Haiku" 1609682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __BEOS__ 1619682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "BeOS" 1629682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __BSDI__ 1639682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "BSDI" 1649682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __DREAMCAST__ 1659682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Dreamcast" 1669682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __FREEBSD__ 1679682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "FreeBSD" 1689682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __HPUX__ 1699682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "HP-UX" 1709682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __IRIX__ 1719682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Irix" 1729682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __LINUX__ 1739682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Linux" 1749682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __MINT__ 1759682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Atari MiNT" 1769682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __MACOS__ 1779682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "MacOS Classic" 1789682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __MACOSX__ 1799682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Mac OS X" 1809682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __NETBSD__ 1819682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "NetBSD" 1829682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __OPENBSD__ 1839682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "OpenBSD" 1849682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __OS2__ 1859682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "OS/2" 1869682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __OSF__ 1879682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "OSF/1" 1889682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __QNXNTO__ 1899682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "QNX Neutrino" 1909682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __RISCOS__ 1919682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "RISC OS" 1929682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __SOLARIS__ 1939682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Solaris" 1949682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#elif __WIN32__ 1959682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#ifdef _WIN32_WCE 1969682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Windows CE" 1979682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#else 1989682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "Windows" 1999682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 2009682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#else 2019682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall "an unknown operating system! (see SDL_platform.h)" 2029682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall#endif 2039682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall ); 2049682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall } 2059682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall 2069682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall status += TestTypes(verbose); 2079682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall status += TestEndian(verbose); 2089682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall status += TestCPUInfo(verbose); 2099682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall return status; 2109682c8870b8ff5e4ac2e4c70b759f791c6f38c1fJesse Hall} 211