diff options
Diffstat (limited to 'src/os/macosx/G5_detector.cpp')
-rw-r--r-- | src/os/macosx/G5_detector.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/os/macosx/G5_detector.cpp b/src/os/macosx/G5_detector.cpp new file mode 100644 index 000000000..b4831c772 --- /dev/null +++ b/src/os/macosx/G5_detector.cpp @@ -0,0 +1,29 @@ +/* $Id$ */ + +#include <mach/mach.h> +#include <mach/mach_host.h> +#include <mach/host_info.h> +#include <mach/machine.h> +#include <stdio.h> + + +#ifndef CPU_SUBTYPE_POWERPC_970 +#define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100) +#endif + +// this function is a lightly modified version of some code from Apple's developer homepage to detect G5 CPUs at runtime +main() +{ + host_basic_info_data_t hostInfo; + mach_msg_type_number_t infoCount; + boolean_t is_G5; + + infoCount = HOST_BASIC_INFO_COUNT; + host_info(mach_host_self(), HOST_BASIC_INFO, + (host_info_t)&hostInfo, &infoCount); + + is_G5 = ((hostInfo.cpu_type == CPU_TYPE_POWERPC) && + (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_970)); + if (is_G5) + printf("1"); +} |