| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 | /+ sed -e 's///g' -e 's///g' -e 's///g' +/ module tango.sys.darwin.consts.machine; alias int cpu_type_t; alias int cpu_subtype_t; alias int cpu_threadtype_t; enum{ CPU_STATE_MAX = 4, CPU_STATE_USER = 0 , CPU_STATE_SYSTEM = 1, CPU_STATE_IDLE = 2 , CPU_STATE_NICE = 3 , /* * Capability bits used in the definition of cpu_type. */ CPU_ARCH_MASK = 0xff000000 , /* mask for architecture bits */ CPU_ARCH_ABI64 = 0x01000000, /* 64 bit ABI */ /* * Machine types known by all. */ CPU_TYPE_ANY = ( -1), CPU_TYPE_VAX = ( 1) , CPU_TYPE_MC680x0 = ( 6) , CPU_TYPE_X86 = ( 7) , CPU_TYPE_I386 = ( 7) , /* compatibility */ CPU_TYPE_X86_64 = (( 7) | 0x01000000) , /* skip CPU_TYPE_MIPS ( 8) */ CPU_TYPE_MC98000 = ( 10), CPU_TYPE_HPPA = ( 11) , CPU_TYPE_ARM = ( 12) , CPU_TYPE_MC88000 = ( 13), CPU_TYPE_SPARC = ( 14) , CPU_TYPE_I860 = ( 15) , /* skip CPU_TYPE_ALPHA ( 16) */ CPU_TYPE_POWERPC = ( 18) , CPU_TYPE_POWERPC64 = (( 18) | 0x01000000) , /* * Machine subtypes (these are defined here, instead of in a machine * dependent directory, so that any program can get all definitions * regardless of where is it compiled). */ /* * Capability bits used in the definition of cpu_subtype. */ CPU_SUBTYPE_MASK = 0xff000000 , /* mask for feature flags */ CPU_SUBTYPE_LIB64 = 0x80000000, /* 64 bit libraries */ /* * Object files that are hand-crafted to run on any * implementation of an architecture are tagged with * CPU_SUBTYPE_MULTIPLE. This functions essentially the same as * the "ALL" subtype of an architecture except that it allows us * to easily find object files that may need to be modified * whenever a new implementation of an architecture comes out. * * It is the responsibility of the implementor to make sure the * software handles unsupported implementations elegantly. */ CPU_SUBTYPE_MULTIPLE = ( -1) , CPU_SUBTYPE_LITTLE_ENDIAN = ( 0) , CPU_SUBTYPE_BIG_ENDIAN = ( 1) , /* * Machine threadtypes. * This is none - not defined - for most machine types/subtypes. */ CPU_THREADTYPE_NONE = ( 0), /* * VAX subtypes (these do *not* necessary conform to the actual cpu * ID assigned by DEC available via the SID register). */ CPU_SUBTYPE_VAX_ALL = ( 0) , CPU_SUBTYPE_VAX780 = ( 1) , CPU_SUBTYPE_VAX785 = ( 2) , CPU_SUBTYPE_VAX750 = ( 3) , CPU_SUBTYPE_VAX730 = ( 4) , CPU_SUBTYPE_UVAXI = ( 5) , CPU_SUBTYPE_UVAXII = ( 6) , CPU_SUBTYPE_VAX8200 = ( 7) , CPU_SUBTYPE_VAX8500 = ( 8) , CPU_SUBTYPE_VAX8600 = ( 9) , CPU_SUBTYPE_VAX8650 = ( 10) , CPU_SUBTYPE_VAX8800 = ( 11) , CPU_SUBTYPE_UVAXIII = ( 12) , /* * 680x0 subtypes * * The subtype definitions here are unusual for historical reasons. * NeXT used to consider 68030 code as generic 68000 code. For * backwards compatability: * * CPU_SUBTYPE_MC68030 symbol has been preserved for source code * compatability. * * CPU_SUBTYPE_MC680x0_ALL has been defined to be the same * subtype as CPU_SUBTYPE_MC68030 for binary comatability. * * CPU_SUBTYPE_MC68030_ONLY has been added to allow new object * files to be tagged as containing 68030-specific instructions. */ CPU_SUBTYPE_MC680x0_ALL = ( 1) , CPU_SUBTYPE_MC68030 = ( 1) ,/* compat */ CPU_SUBTYPE_MC68040 = ( 2) , CPU_SUBTYPE_MC68030_ONLY = ( 3) , /* * I386 subtypes */ CPU_SUBTYPE_I386_ALL = ( (3) + ((0) << 4)) , CPU_SUBTYPE_386 = ( (3) + ((0) << 4)) , CPU_SUBTYPE_486 = ( (4) + ((0) << 4)) , CPU_SUBTYPE_486SX = ( (4) + ((8) << 4)) , CPU_SUBTYPE_586 = ( (5) + ((0) << 4)) , CPU_SUBTYPE_PENT = ( (5) + ((0) << 4)) , CPU_SUBTYPE_PENTPRO = ( (6) + ((1) << 4)) , CPU_SUBTYPE_PENTII_M3 = ( (6) + ((3) << 4)) , CPU_SUBTYPE_PENTII_M5 = ( (6) + ((5) << 4)) , CPU_SUBTYPE_CELERON = ( (7) + ((6) << 4)) , CPU_SUBTYPE_CELERON_MOBILE = ( (7) + ((7) << 4)) , CPU_SUBTYPE_PENTIUM_3 = ( (8) + ((0) << 4)) , CPU_SUBTYPE_PENTIUM_3_M = ( (8) + ((1) << 4)) , CPU_SUBTYPE_PENTIUM_3_XEON = ( (8) + ((2) << 4)) , CPU_SUBTYPE_PENTIUM_M = ( (9) + ((0) << 4)) , CPU_SUBTYPE_PENTIUM_4 = ( (10) + ((0) << 4)) , CPU_SUBTYPE_PENTIUM_4_M = ( (10) + ((1) << 4)) , CPU_SUBTYPE_ITANIUM = ( (11) + ((0) << 4)) , CPU_SUBTYPE_ITANIUM_2 = ( (11) + ((1) << 4)) , CPU_SUBTYPE_XEON = ( (12) + ((0) << 4)) , CPU_SUBTYPE_XEON_MP = ( (12) + ((1) << 4)) , } uint extractSubtypeFamily(uint x){ return ((x) & 15); } uint extractCpuSubtypeModel(uint x){ return ((x) >> 4); } enum{ CPU_SUBTYPE_INTEL_FAMILY_MAX = 15, CPU_SUBTYPE_INTEL_MODEL_ALL = 0, /* * X86 subtypes. */ CPU_SUBTYPE_X86_ALL = (3) , CPU_SUBTYPE_X86_64_ALL = (3) , CPU_SUBTYPE_X86_ARCH1 = (4) , CPU_THREADTYPE_INTEL_HTT = ( 1) , /* * Mips subtypes. */ CPU_SUBTYPE_MIPS_ALL = ( 0) , CPU_SUBTYPE_MIPS_R2300 = ( 1) , CPU_SUBTYPE_MIPS_R2600 = ( 2) , CPU_SUBTYPE_MIPS_R2800 = ( 3) , CPU_SUBTYPE_MIPS_R2000a = ( 4) , /* pmax */ CPU_SUBTYPE_MIPS_R2000 = ( 5) , CPU_SUBTYPE_MIPS_R3000a = ( 6) , /* 3max */ CPU_SUBTYPE_MIPS_R3000 = ( 7) , /* * MC98000 (PowerPC) subtypes */ CPU_SUBTYPE_MC98000_ALL = ( 0) , CPU_SUBTYPE_MC98601 = ( 1) , /* * HPPA subtypes for Hewlett-Packard HP-PA family of * risc processors. Port by NeXT to 700 series. */ CPU_SUBTYPE_HPPA_ALL = ( 0) , CPU_SUBTYPE_HPPA_7100 = ( 0) , /* compat */ CPU_SUBTYPE_HPPA_7100LC = ( 1), /* * MC88000 subtypes. */ CPU_SUBTYPE_MC88000_ALL = ( 0) , CPU_SUBTYPE_MC88100 = ( 1) , CPU_SUBTYPE_MC88110 = ( 2) , /* * SPARC subtypes */ CPU_SUBTYPE_SPARC_ALL = ( 0) , /* * I860 subtypes */ CPU_SUBTYPE_I860_ALL = ( 0), CPU_SUBTYPE_I860_860 = ( 1), /* * PowerPC subtypes */ CPU_SUBTYPE_POWERPC_ALL = ( 0) , CPU_SUBTYPE_POWERPC_601 = ( 1) , CPU_SUBTYPE_POWERPC_602 = ( 2) , CPU_SUBTYPE_POWERPC_603 = ( 3) , CPU_SUBTYPE_POWERPC_603e = ( 4) , CPU_SUBTYPE_POWERPC_603ev = ( 5) , CPU_SUBTYPE_POWERPC_604 = ( 6) , CPU_SUBTYPE_POWERPC_604e = ( 7) , CPU_SUBTYPE_POWERPC_620 = ( 8) , CPU_SUBTYPE_POWERPC_750 = ( 9) , CPU_SUBTYPE_POWERPC_7400 = ( 10) , CPU_SUBTYPE_POWERPC_7450 = ( 11) , CPU_SUBTYPE_POWERPC_970 = ( 100) , /* * ARM subtypes */ CPU_SUBTYPE_ARM_ALL = ( 0), CPU_SUBTYPE_ARM_V4T = ( 5), CPU_SUBTYPE_ARM_V6 = ( 6) , /* * CPU families (sysctl hw.cpufamily) * * These are meant to identify the CPU's marketing name - an * application can map these to (possibly) localized strings. * NB: the encodings of the CPU families are intentionally arbitrary. * There is no ordering, and you should never try to deduce whether * or not some feature is available based on the family. * Use feature flags (eg, hw.optional.altivec) to test for optional * functionality. */ CPUFAMILY_UNKNOWN = 0 , CPUFAMILY_POWERPC_G3 = 0xcee41549 , CPUFAMILY_POWERPC_G4 = 0x77c184ae , CPUFAMILY_POWERPC_G5 = 0xed76d8aa , CPUFAMILY_INTEL_6_13 = 0xaa33392b , CPUFAMILY_INTEL_6_14 = 0x73d67300 ,/* " Core Solo" and " Core Duo" (32-bit Pentium-M with SSE3) */ CPUFAMILY_INTEL_6_15 = 0x426f69ef ,/* " Core 2 Duo" */ CPUFAMILY_INTEL_6_23 = 0x78ea4fbc ,/* Penryn */ CPUFAMILY_INTEL_6_26 = 0x6b5a4cd2 ,/* Nehalem */ CPUFAMILY_ARM_9 = 0xe73283ae , CPUFAMILY_ARM_11 = 0x8ff620d8 , CPUFAMILY_INTEL_YONAH = 0x73d67300 , CPUFAMILY_INTEL_MEROM = 0x426f69ef , CPUFAMILY_INTEL_PENRYN = 0x78ea4fbc , CPUFAMILY_INTEL_NEHALEM = 0x6b5a4cd2 , CPUFAMILY_INTEL_CORE = 0x73d67300 , CPUFAMILY_INTEL_CORE2 = 0x426f69ef , } |