Root/
Source at commit 214 created 13 years 5 months ago. By ifabio, update to chameleon trunk 630, and now the pakage folder is the same as blackosx branch, also add Icon "building" into buildpkg script, and add mint theme info into the English localizable.strings. | |
---|---|
1 | /*␊ |
2 | * platform.h␊ |
3 | * AsereBLN: reworked and extended␊ |
4 | *␊ |
5 | */␊ |
6 | ␊ |
7 | #ifndef __LIBSAIO_PLATFORM_H␊ |
8 | #define __LIBSAIO_PLATFORM_H␊ |
9 | ␊ |
10 | #include "libsaio.h"␊ |
11 | ␊ |
12 | extern bool platformCPUFeature(uint32_t);␊ |
13 | extern void scan_platform(void);␊ |
14 | extern void dumpPhysAddr(const char * title, void * a, int len);␊ |
15 | ␊ |
16 | /* CPUID index into cpuid_raw */␊ |
17 | #define CPUID_0␉␉␉␉0␊ |
18 | #define CPUID_1␉␉␉␉1␊ |
19 | #define CPUID_2␉␉␉␉2␊ |
20 | #define CPUID_3␉␉␉␉3␊ |
21 | #define CPUID_4␉␉␉␉4␊ |
22 | #define CPUID_80␉␉␉5␊ |
23 | #define CPUID_81␉␉␉6␊ |
24 | #define CPUID_MAX␉␉␉7␊ |
25 | ␊ |
26 | #define CPU_MODEL_YONAH␉␉␉0x0E␊ |
27 | #define CPU_MODEL_MEROM␉␉␉0x0F␊ |
28 | #define CPU_MODEL_PENRYN␉␉0x17␊ |
29 | #define CPU_MODEL_NEHALEM␉␉0x1A␊ |
30 | #define CPU_MODEL_ATOM␉␉␉0x1C␊ |
31 | #define CPU_MODEL_FIELDS␉␉0x1E␉/* Lynnfield, Clarksfield, Jasper */␊ |
32 | #define CPU_MODEL_DALES␉␉␉0x1F␉/* Havendale, Auburndale */␊ |
33 | #define CPU_MODEL_DALES_32NM␉0x25␉/* Clarkdale, Arrandale */␊ |
34 | #define CPU_MODEL_WESTMERE␉␉0x2C␉/* Gulftown, Westmere-EP, Westmere-WS */␊ |
35 | #define CPU_MODEL_NEHALEM_EX␉0x2E␊ |
36 | #define CPU_MODEL_WESTMERE_EX␉0x2F␊ |
37 | ␊ |
38 | /* CPU Features */␊ |
39 | #define CPU_FEATURE_MMX␉␉␉0x00000001␉␉// MMX Instruction Set␊ |
40 | #define CPU_FEATURE_SSE␉␉␉0x00000002␉␉// SSE Instruction Set␊ |
41 | #define CPU_FEATURE_SSE2␉␉0x00000004␉␉// SSE2 Instruction Set␊ |
42 | #define CPU_FEATURE_SSE3␉␉0x00000008␉␉// SSE3 Instruction Set␊ |
43 | #define CPU_FEATURE_SSE41␉␉0x00000010␉␉// SSE41 Instruction Set␊ |
44 | #define CPU_FEATURE_SSE42␉␉0x00000020␉␉// SSE42 Instruction Set␊ |
45 | #define CPU_FEATURE_EM64T␉␉0x00000040␉␉// 64Bit Support␊ |
46 | #define CPU_FEATURE_HTT␉␉␉0x00000080␉␉// HyperThreading␊ |
47 | #define CPU_FEATURE_MOBILE␉␉0x00000100␉␉// Mobile CPU␊ |
48 | #define CPU_FEATURE_MSR␉␉␉0x00000200␉␉// MSR Support␊ |
49 | ␊ |
50 | /* SMBIOS Memory Types */ ␊ |
51 | #define SMB_MEM_TYPE_UNDEFINED␉0␊ |
52 | #define SMB_MEM_TYPE_OTHER␉␉1␊ |
53 | #define SMB_MEM_TYPE_UNKNOWN␉2␊ |
54 | #define SMB_MEM_TYPE_DRAM␉␉3␊ |
55 | #define SMB_MEM_TYPE_EDRAM␉␉4␊ |
56 | #define SMB_MEM_TYPE_VRAM␉␉5␊ |
57 | #define SMB_MEM_TYPE_SRAM␉␉6␊ |
58 | #define SMB_MEM_TYPE_RAM␉␉7␊ |
59 | #define SMB_MEM_TYPE_ROM␉␉8␊ |
60 | #define SMB_MEM_TYPE_FLASH␉␉9␊ |
61 | #define SMB_MEM_TYPE_EEPROM␉␉10␊ |
62 | #define SMB_MEM_TYPE_FEPROM␉␉11␊ |
63 | #define SMB_MEM_TYPE_EPROM␉␉12␊ |
64 | #define SMB_MEM_TYPE_CDRAM␉␉13␊ |
65 | #define SMB_MEM_TYPE_3DRAM␉␉14␊ |
66 | #define SMB_MEM_TYPE_SDRAM␉␉15␊ |
67 | #define SMB_MEM_TYPE_SGRAM␉␉16␊ |
68 | #define SMB_MEM_TYPE_RDRAM␉␉17␊ |
69 | #define SMB_MEM_TYPE_DDR␉␉18␊ |
70 | #define SMB_MEM_TYPE_DDR2␉␉19␊ |
71 | #define SMB_MEM_TYPE_FBDIMM␉␉20␊ |
72 | #define SMB_MEM_TYPE_DDR3␉␉24␉␉␉// Supported in 10.5.6+ AppleSMBIOS␊ |
73 | ␊ |
74 | /* Memory Configuration Types */ ␊ |
75 | #define SMB_MEM_CHANNEL_UNKNOWN␉␉0␊ |
76 | #define SMB_MEM_CHANNEL_SINGLE␉␉1␊ |
77 | #define SMB_MEM_CHANNEL_DUAL␉␉2␊ |
78 | #define SMB_MEM_CHANNEL_TRIPLE␉␉3␊ |
79 | ␊ |
80 | /* Maximum number of ram slots */␊ |
81 | #define MAX_RAM_SLOTS␉␉␉8␊ |
82 | #define RAM_SLOT_ENUMERATOR␉␉{0, 2, 4, 1, 3, 5, 6, 8, 10, 7, 9, 11}␊ |
83 | ␊ |
84 | /* Maximum number of SPD bytes */␊ |
85 | #define MAX_SPD_SIZE␉␉␉256␊ |
86 | ␊ |
87 | /* Size of SMBIOS UUID in bytes */␊ |
88 | #define UUID_LEN␉␉␉16␊ |
89 | ␊ |
90 | typedef struct _RamSlotInfo_t {␊ |
91 | uint32_t␉␉ModuleSize;␉␉␉␉␉␉// Size of Module in MB␊ |
92 | uint32_t␉␉Frequency; // in Mhz␊ |
93 | const char*␉␉Vendor;␊ |
94 | const char*␉␉PartNo;␊ |
95 | const char*␉␉SerialNo;␊ |
96 | char*␉␉␉spd;␉␉␉␉␉␉␉// SPD Dump␊ |
97 | bool␉␉␉InUse;␊ |
98 | uint8_t␉␉␉Type;␊ |
99 | uint8_t␉␉␉BankConnections; // table type 6, see (3.3.7)␊ |
100 | uint8_t␉␉␉BankConnCnt;␊ |
101 | ␊ |
102 | } RamSlotInfo_t;␊ |
103 | ␊ |
104 | typedef struct _PlatformInfo_t {␊ |
105 | ␉struct CPU {␊ |
106 | ␉␉uint32_t␉␉Features;␉␉// CPU Features like MMX, SSE2, VT, MobileCPU␊ |
107 | ␉␉uint32_t␉␉Vendor;␉␉␉// Vendor␊ |
108 | ␉␉uint32_t␉␉Signature;␉␉// Signature␊ |
109 | ␉␉uint32_t␉␉Stepping;␉␉// Stepping␊ |
110 | ␉␉uint32_t␉␉Model;␉␉␉// Model␊ |
111 | ␉␉uint32_t␉␉ExtModel;␉␉// Extended Model␊ |
112 | ␉␉uint32_t␉␉Family;␉␉␉// Family␊ |
113 | ␉␉uint32_t␉␉ExtFamily;␉␉// Extended Family␊ |
114 | ␉␉uint32_t␉␉NoCores;␉␉// No Cores per Package␊ |
115 | ␉␉uint32_t␉␉NoThreads;␉␉// Threads per Package␊ |
116 | ␉␉uint8_t␉␉␉MaxCoef;␉␉// Max Multiplier␊ |
117 | ␉␉uint8_t␉␉␉MaxDiv;␊ |
118 | ␉␉uint8_t␉␉␉CurrCoef;␉␉// Current Multiplier␊ |
119 | ␉␉uint8_t␉␉␉CurrDiv;␊ |
120 | ␉␉uint64_t␉␉TSCFrequency;␉␉// TSC Frequency Hz␊ |
121 | ␉␉uint64_t␉␉FSBFrequency;␉␉// FSB Frequency Hz␊ |
122 | ␉␉uint64_t␉␉CPUFrequency;␉␉// CPU Frequency Hz␊ |
123 | ␉␉char␉␉␉BrandString[48];␉// 48 Byte Branding String␊ |
124 | ␉␉uint32_t␉␉CPUID[CPUID_MAX][4];␉// CPUID 0..4, 80..81 Raw Values␊ |
125 | ␉} CPU;␊ |
126 | ␊ |
127 | ␉struct RAM {␊ |
128 | ␉␉uint64_t␉␉Frequency;␉␉␉␉// Ram Frequency␊ |
129 | ␉␉uint32_t␉␉Divider;␉␉␉␉// Memory divider␊ |
130 | ␉␉uint8_t␉␉␉CAS;␉␉␉␉␉// CAS 1/2/2.5/3/4/5/6/7␊ |
131 | ␉␉uint8_t␉␉␉TRC;␉␉␉␉␉␊ |
132 | ␉␉uint8_t␉␉␉TRP;␊ |
133 | ␉␉uint8_t␉␉␉RAS;␊ |
134 | ␉␉uint8_t␉␉␉Channels;␉␉␉␉// Channel Configuration Single,Dual or Triple␊ |
135 | ␉␉uint8_t␉␉␉NoSlots;␉␉␉␉// Maximum no of slots available␊ |
136 | ␉␉uint8_t␉␉␉Type;␉␉␉␉␉// Standard SMBIOS v2.5 Memory Type␊ |
137 | ␉␉RamSlotInfo_t␉DIMM[MAX_RAM_SLOTS];␉// Information about each slot␊ |
138 | ␉} RAM;␊ |
139 | ␊ |
140 | ␉struct DMI {␊ |
141 | ␉␉int␉␉␉MaxMemorySlots;␉␉// number of memory slots polulated by SMBIOS␊ |
142 | ␉␉int␉␉␉CntMemorySlots;␉␉// number of memory slots counted␊ |
143 | ␉␉int␉␉␉MemoryModules;␉␉// number of memory modules installed␊ |
144 | ␉␉int␉␉␉DIMM[MAX_RAM_SLOTS];␉// Information and SPD mapping for each slot␊ |
145 | ␉} DMI;␊ |
146 | ␉uint8_t␉␉␉␉Type;␉␉␉// System Type: 1=Desktop, 2=Portable... according ACPI2.0 (FACP: PM_Profile)␊ |
147 | } PlatformInfo_t;␊ |
148 | ␊ |
149 | extern PlatformInfo_t Platform;␊ |
150 | ␊ |
151 | #endif /* !__LIBSAIO_PLATFORM_H */␊ |
152 |