src/os/macosx/G5_detector.cpp
author rubidium
Sun, 25 May 2008 19:17:03 +0000
changeset 9354 845e07db4549
parent 9111 48ce04029fe4
permissions -rw-r--r--
(svn r13251) -Codechange: rename _patches to _settings as that is more logic.
-Codechange: move all Settings into substructs of _settings in a way that they are logically grouped.
3093
e48b7a12895f (svn r3682) -Fix: didn't write $ correct in G5_detector in r3673, which caused problems for tortoisesvn
bjarni
parents: 3084
diff changeset
     1
/* $Id$ */
3084
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
     2
9111
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 5584
diff changeset
     3
/** @file G5_detector.cpp Detection for G5 machines (PowerPC). */
48ce04029fe4 (svn r12971) -Documentation: add @file in files that missed them and add something more than whitespace as description of files that don't have a description.
rubidium
parents: 5584
diff changeset
     4
3084
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
     5
#include <mach/mach.h>
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
     6
#include <mach/mach_host.h>
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
     7
#include <mach/host_info.h>
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
     8
#include <mach/machine.h>
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
     9
#include <stdio.h>
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    10
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    11
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    12
#ifndef CPU_SUBTYPE_POWERPC_970
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    13
#define CPU_SUBTYPE_POWERPC_970 ((cpu_subtype_t) 100)
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    14
#endif
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    15
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    16
// this function is a lightly modified version of some code from Apple's developer homepage to detect G5 CPUs at runtime
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    17
main()
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    18
{
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    19
	host_basic_info_data_t hostInfo;
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    20
	mach_msg_type_number_t infoCount;
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    21
	boolean_t is_G5;
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    22
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    23
	infoCount = HOST_BASIC_INFO_COUNT;
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    24
	host_info(mach_host_self(), HOST_BASIC_INFO,
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    25
			  (host_info_t)&hostInfo, &infoCount);
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    26
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    27
	 is_G5 = ((hostInfo.cpu_type == CPU_TYPE_POWERPC) &&
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    28
			(hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_970));
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    29
	 if (is_G5)
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    30
		 printf("1");
6540f61eea49 (svn r3673) -Codechange: [OSX] changed the makefile to autodetect if it compiles on G5 and then adds flags to optimise for G5
bjarni
parents:
diff changeset
    31
}