#ifndef CPU_FEATURES_INCLUDE_CPUINFO_PPC_H_
#define CPU_FEATURES_INCLUDE_CPUINFO_PPC_H_
#include "cpu_features_cache_info.h"
#include "cpu_features_macros.h"
CPU_FEATURES_START_CPP_NAMESPACE
typedef struct {
int ppc32 : 1;
int ppc64 : 1;
int ppc601 : 1;
int altivec : 1;
int fpu : 1;
int mmu : 1;
int mac_4xx : 1;
int unifiedcache : 1;
int spe : 1;
int efpsingle : 1;
int efpdouble : 1;
int no_tb : 1;
int power4 : 1;
int power5 : 1;
int power5plus : 1;
int cell : 1;
int booke : 1;
int smt : 1;
int icachesnoop : 1;
int arch205 : 1;
int pa6t : 1;
int dfp : 1;
int power6ext : 1;
int arch206 : 1;
int vsx : 1;
int pseries_perfmon_compat : 1;
int truele : 1;
int ppcle : 1;
int arch207 : 1;
int htm : 1;
int dscr : 1;
int ebb : 1;
int isel : 1;
int tar : 1;
int vcrypto : 1;
int htm_nosc : 1;
int arch300 : 1;
int ieee128 : 1;
int darn : 1;
int scv : 1;
int htm_no_suspend : 1;
} PPCFeatures;
typedef struct {
PPCFeatures features;
} PPCInfo;
PPCInfo GetPPCInfo(void);
typedef struct {
char platform[64]; char base_platform[64]; } PPCPlatformTypeStrings;
typedef struct {
char platform[64]; char model[64]; char machine[64]; char cpu[64]; PPCPlatformTypeStrings type;
} PPCPlatformStrings;
PPCPlatformStrings GetPPCPlatformStrings(void);
typedef enum {
PPC_32,
PPC_64,
PPC_601_INSTR,
PPC_HAS_ALTIVEC,
PPC_HAS_FPU,
PPC_HAS_MMU,
PPC_HAS_4xxMAC,
PPC_UNIFIED_CACHE,
PPC_HAS_SPE,
PPC_HAS_EFP_SINGLE,
PPC_HAS_EFP_DOUBLE,
PPC_NO_TB,
PPC_POWER4,
PPC_POWER5,
PPC_POWER5_PLUS,
PPC_CELL,
PPC_BOOKE,
PPC_SMT,
PPC_ICACHE_SNOOP,
PPC_ARCH_2_05,
PPC_PA6T,
PPC_HAS_DFP,
PPC_POWER6_EXT,
PPC_ARCH_2_06,
PPC_HAS_VSX,
PPC_PSERIES_PERFMON_COMPAT,
PPC_TRUE_LE,
PPC_PPC_LE,
PPC_ARCH_2_07,
PPC_HTM,
PPC_DSCR,
PPC_EBB,
PPC_ISEL,
PPC_TAR,
PPC_VEC_CRYPTO,
PPC_HTM_NOSC,
PPC_ARCH_3_00,
PPC_HAS_IEEE128,
PPC_DARN,
PPC_SCV,
PPC_HTM_NO_SUSPEND,
PPC_LAST_,
} PPCFeaturesEnum;
int GetPPCFeaturesEnumValue(const PPCFeatures* features, PPCFeaturesEnum value);
const char* GetPPCFeaturesEnumName(PPCFeaturesEnum);
CPU_FEATURES_END_CPP_NAMESPACE
#if !defined(CPU_FEATURES_ARCH_PPC)
#error "Including cpuinfo_ppc.h from a non-ppc target."
#endif
#endif