Index: trunk/i386/libsaio/bootstruct.c
===================================================================
--- trunk/i386/libsaio/bootstruct.c (revision 2782)
+++ trunk/i386/libsaio/bootstruct.c (revision 2783)
@@ -150,8 +150,8 @@
void *addr;
int i;
- EfiMemoryRange *memoryMap = NULL;
- MemoryRange *range = NULL;
+ EfiMemoryRange *memoryMap = NULL;
+ MemoryRange *range = NULL;
int memoryMapCount = bootInfo->memoryMapCount;
if (memoryMapCount == 0)
@@ -214,6 +214,11 @@
}
DT__FlattenDeviceTree((void **)&addr, &size);
+ if (!size)
+ {
+ stop("Couldn't get flatten device tree\n");
+ return;
+ }
bootArgs->deviceTreeP = (uint32_t)addr;
bootArgs->deviceTreeLength = size;
Index: trunk/i386/libsaio/efi.h
===================================================================
--- trunk/i386/libsaio/efi.h (revision 2782)
+++ trunk/i386/libsaio/efi.h (revision 2783)
@@ -156,6 +156,9 @@
#define EFI_ACPI_20_TABLE_GUID \
{0x8868E871, 0xE4f1, 0x11D3, {0xBC, 0x22, 0x0, 0x80, 0xC7, 0x3C, 0x88, 0x81} }
+// ACPI 3.0 Table GUID in EFI System Table
+#define EFI_ACPI_30_TABLE_GUID EFI_ACPI_20_TABLE_GUID
+
typedef union {
EFI_GUID Guid;
EFI_UINT8 Raw[16];
Index: trunk/i386/libsaio/hfs.c
===================================================================
--- trunk/i386/libsaio/hfs.c (revision 2782)
+++ trunk/i386/libsaio/hfs.c (revision 2783)
@@ -255,6 +255,7 @@
{
verbose("HFS signature was not present.\n");
gCurrentIH = 0;
+
return -1;
}
Index: trunk/i386/libsaio/nvidia.c
===================================================================
--- trunk/i386/libsaio/nvidia.c (revision 2782)
+++ trunk/i386/libsaio/nvidia.c (revision 2783)
@@ -1173,6 +1173,7 @@
// 1100 - 110F
// 1110 - 111F
// 1120 - 112F
+ { 0x10DE1128, "GeForce GTX 970M" },
// 1130 - 113F
// 1140 - 114F
{ 0x10DE1140, "GeForce GT 610M" },
@@ -1357,6 +1358,7 @@
// { 0x10DE1601, "Graphics Device" }, //
// { 0x10DE1602, "Graphics Device" }, //
// { 0x10DE1603, "Graphics Device" }, //
+ { 0x10DE1617, "GeForce GTX 980M" }, //
// { 0x10DE1630, "Graphics Device" }, //
// { 0x10DE1631, "Graphics Device" }, //
// { 0x10DE1780, "Graphics Device" }, //
@@ -1373,7 +1375,8 @@
// { 0x10DE17BD, "Graphics Device" }, //
{ 0x10DE17BE, "GM107 CS1" }, // GM107
// { 0x10DE17C1, "Graphics Device" }, //
-// { 0x10DE17C2, "Graphics Device" }, //
+ { 0x10DE17C2, "GeForce GTX Titan X" }, //
+ { 0x10DE17C8, "GeForce GTX 980 TI" },
// { 0x10DE17EE, "Graphics Device" }, //
// { 0x10DE17EF, "Graphics Device" }, //
{ 0x10DE17F0, "Quadro M6000" }
Index: trunk/i386/libsaio/ati.c
===================================================================
--- trunk/i386/libsaio/ati.c (revision 2782)
+++ trunk/i386/libsaio/ati.c (revision 2783)
@@ -107,7 +107,8 @@
/* AMD9000Controller */
{"Exmoor", 4},
{"Basset", 4},
- {"Greyhound", 6}
+ {"Greyhound", 6},
+ {"Labrador", 6}
};
static radeon_card_info_t radeon_cards[] = {
@@ -1180,17 +1181,17 @@
// TAHITI
//Framebuffers: Aji - 4 Desktop, Buri - 4 Mobile, Chutoro - 5 Mobile, Dashimaki - 4, IkuraS - HMDI
// Ebi - 5 Mobile, Gari - 5 M, Futomaki - 4 D, Hamachi - 4 D, OPM - 6 Server, Ikura - 6
- { 0x6780, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
+ { 0x6780, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kIkuraS },
{ 0x6784, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
{ 0x6788, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
- { 0x678A, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
- { 0x6790, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
+ { 0x678A, 0x00000000, CHIP_FAMILY_TAHITI, "AMD FirePro W8000", kFutomaki },
+ { 0x6790, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7970" , kFutomaki },
{ 0x6791, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
{ 0x6792, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7900 Series", kFutomaki },
{ 0x6798, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7970X/8970/R9 280X", kFutomaki },
{ 0x6799, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7990 Series", kAji },
{ 0x679A, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7950/8950/R9 280", kFutomaki },
- { 0x679B, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7990 Series", kFutomaki },
+ { 0x679B, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7990 Series", kChutoro },
{ 0x679E, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7870 XT", kFutomaki },
{ 0x679F, 0x00000000, CHIP_FAMILY_TAHITI, "AMD Radeon HD 7950 Series", kFutomaki },
@@ -1215,7 +1216,7 @@
{ 0x6806, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7600 Series", kFutomaki },
{ 0x6808, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon HD 7600 Series", kFutomaki },
{ 0x6809, 0x00000000, CHIP_FAMILY_PITCAIRN, "ATI FirePro V", kNull },
- { 0x6810, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon R9 270X", kFutomaki },
+ { 0x6810, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon R9 270X", kNamako },
{ 0x6811, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon R9 270", kFutomaki },
// { 0x6816, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon", kFutomaki },
// { 0x6817, 0x00000000, CHIP_FAMILY_PITCAIRN, "AMD Radeon", kFutomaki },
@@ -1296,9 +1297,9 @@
{ 0x68BF, 0x00000000, CHIP_FAMILY_JUNIPER, "ATI Radeon HD 6750 Series", kHoolock },
// REDWOOD
- { 0x68C0, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730 Series", kBaboon }, // Mobile
- { 0x68C1, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5650 Series", kBaboon }, // Mobile
- { 0x68C7, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5570", kEulemur }, // Mobile
+ { 0x68C0, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5730 Series", kGalago }, // Mobile
+ { 0x68C1, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5650 Series", kGalago }, // Mobile
+ { 0x68C7, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Mobility Radeon HD 5570", kGalago }, // Mobile
{ 0x68C8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI FirePro v4800", kBaboon },
{ 0x68C9, 0x00000000, CHIP_FAMILY_REDWOOD, "FirePro 3D V3800", kBaboon },
{ 0x68D8, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5670 Series", kBaboon },
@@ -1307,10 +1308,10 @@
{ 0x68DE, 0x00000000, CHIP_FAMILY_REDWOOD, "ATI Radeon HD 5000 Series", kNull },
// CEDAR
- { 0x68E0, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470 Series", kEulemur },
- { 0x68E1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD Radeon HD 6230", kEulemur },
- { 0x68E4, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6370M Series", kEulemur },
- { 0x68E5, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kEulemur },
+ { 0x68E0, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 5470 Series", kGalago },
+ { 0x68E1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD Radeon HD 6230", kGalago },
+ { 0x68E4, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6370M Series", kGalago },
+ { 0x68E5, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD 6300M Series", kGalago },
// { 0x68E8, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull },
// { 0x68E9, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull },
{ 0x68F1, 0x00000000, CHIP_FAMILY_CEDAR, "AMD FirePro 2460", kEulemur },
@@ -1321,11 +1322,13 @@
// { 0x68FE, 0x00000000, CHIP_FAMILY_CEDAR, "ATI Radeon HD ??? Series", kNull },
//
- { 0x6900, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R7 M260/M265", kBuri },
- { 0x6901, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R5 M255", kBuri },
- { 0x6921, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M295X", kBuri },
- { 0x6938, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M295X", kBuri },
- { 0x6939, 0x00000000, CHIP_FAMILY_TONGA, "ATI Radeon R9 285", kFutomaki },
+ { 0x6900, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R7 M260/M265", kExmoor },
+ { 0x6901, 0x00000000, CHIP_FAMILY_TOPAS, "ATI Radeon R5 M255", kExmoor },
+ { 0x6920, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M395X", kLabrador },
+ { 0x6921, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M295X", kExmoor },
+ { 0x692B, 0x00000000, CHIP_FAMILY_TONGA, "ATI Firepro W7100", kBaladi },
+ { 0x6938, 0x00000000, CHIP_FAMILY_AMETHYST, "ATI Radeon R9 M295X", kExmoor },
+ { 0x6939, 0x00000000, CHIP_FAMILY_TONGA, "ATI Radeon R9 285", kBaladi },
// R520
{ 0x7100, 0x00000000, CHIP_FAMILY_R520, "ATI Radeon HD Desktop ", kNull },
Index: trunk/i386/libsaio/ati.h
===================================================================
--- trunk/i386/libsaio/ati.h (revision 2782)
+++ trunk/i386/libsaio/ati.h (revision 2783)
@@ -196,6 +196,7 @@
kExmoor,
kBasset,
kGreyhound,
+ kLabrador,
kCfgEnd
} config_name_t;
Index: trunk/i386/libsaio/cpu.c
===================================================================
--- trunk/i386/libsaio/cpu.c (revision 2782)
+++ trunk/i386/libsaio/cpu.c (revision 2783)
@@ -530,6 +530,14 @@
p->CPU.NoCores = 4;
p->CPU.NoThreads = 4;
}
+
+ //workaround for Xeon Harpertown
+
+ if ( strstr(p->CPU.BrandString, "E5405") )
+ {
+ p->CPU.NoCores = 4;
+ p->CPU.NoThreads = 4;
+ }
}
break;
Index: trunk/i386/libsaio/platform.h
===================================================================
--- trunk/i386/libsaio/platform.h (revision 2782)
+++ trunk/i386/libsaio/platform.h (revision 2783)
@@ -38,41 +38,46 @@
#define CPUID_MODEL_DOTHAN 0x0D // Dothan Pentium M, Celeron M (90nm)
#define CPUID_MODEL_YONAH 0x0E // Sossaman, Yonah
#define CPUID_MODEL_MEROM 0x0F // Allendale, Conroe, Kentsfield, Woodcrest, Clovertown, Tigerton, Merom
-#define CPUID_MODEL_CONROE 0x0F //
-#define CPUID_MODEL_CELERON 0x16 // Merom, Conroe (65nm), Celeron (45nm)
+#define CPUID_MODEL_CONROE 0x16 // Merom, Conroe (65nm), Celeron (45nm)
#define CPUID_MODEL_PENRYN 0x17 // Wolfdale, Yorkfield, Harpertown, Penryn
#define CPUID_MODEL_WOLFDALE 0x17 // Xeon 31xx, 33xx, 52xx, 54xx, Core 2 Quad 8xxx and 9xxx
#define CPUID_MODEL_NEHALEM 0x1A // Bloomfield. Nehalem-EP, Nehalem-WS, Gainestown
#define CPUID_MODEL_ATOM 0x1C // Pineview, Bonnell
#define CPUID_MODEL_XEON_MP 0x1D // MP 7400
-#define CPUID_MODEL_FIELDS 0x1E // Lynnfield, Clarksfield, Jasper Forest
-#define CPUID_MODEL_CLARKDALE 0x1F // Havendale, Auburndale
-#define CPUID_MODEL_DALES 0x25 // Clarkdale, Arrandale
+#define CPUID_MODEL_FIELDS 0x1E // Core i7 and i5 Processor - Clarksfield, Lynnfield, Jasper Forest
+#define CPUID_MODEL_CLARKDALE 0x1F // Core i7 and i5 Processor - Nehalem (Havendale, Auburndale)
+#define CPUID_MODEL_DALES 0x25 // Westmere Client - Clarkdale, Arrandale
#define CPUID_MODEL_ATOM_SAN 0x26 // Lincroft
-#define CPUID_MODEL_LINCROFT 0x27 // Bonnell
+#define CPUID_MODEL_LINCROFT 0x27 // Bonnell, penwell
#define CPUID_MODEL_SANDYBRIDGE 0x2A // Sandy Bridge
#define CPUID_MODEL_WESTMERE 0x2C // Gulftown, Westmere-EP, Westmere-WS
#define CPUID_MODEL_JAKETOWN 0x2D // Sandy Bridge-E, Sandy Bridge-EP
-#define CPUID_MODEL_NEHALEM_EX 0x2E // Beckton
-#define CPUID_MODEL_WESTMERE_EX 0x2F // Westmere-EX
-//#define CPUID_MODEL_BONNELL_ATOM 0x35 // Atom Family Bonnell
+#define CPUID_MODEL_NEHALEM_EX 0x2E // Nehalem-EX Xeon - Beckton
+#define CPUID_MODEL_WESTMERE_EX 0x2F // Westmere-EX Xeon - Eagleton
+#define CPUID_MODEL_CLOVERVIEW 0x35 // Atom Family Bonnell, cloverview
#define CPUID_MODEL_ATOM_2000 0x36 // Cedarview / Saltwell
-#define CPUID_MODEL_ATOM_3700 0x37 // Atom E3000, Z3000 Atom Silvermont
+#define CPUID_MODEL_ATOM_3700 0x37 // Atom E3000, Z3000 Atom Silvermont **BYT
#define CPUID_MODEL_IVYBRIDGE 0x3A // Ivy Bridge
-#define CPUID_MODEL_HASWELL 0x3C // Haswell DT
+#define CPUID_MODEL_HASWELL 0x3C // Haswell DT ex.i7 4790K
#define CPUID_MODEL_HASWELL_U5 0x3D // Haswell U5 5th generation Broadwell, Core M / Core-AVX2
#define CPUID_MODEL_IVYBRIDGE_XEON 0x3E // Ivy Bridge Xeon
-#define CPUID_MODEL_HASWELL_SVR 0x3F // Haswell Server, Xeon E5-2600/1600 v3 (Haswell-E)
+#define CPUID_MODEL_HASWELL_SVR 0x3F // Haswell Server, Xeon E5-2600/1600 v3 (Haswell-E) **HSX
//#define CPUID_MODEL_HASWELL_H 0x?? // Haswell H
-#define CPUID_MODEL_HASWELL_ULT 0x45 // Haswell ULT, 4th gen Core, Xeon E3-12xx v3
+#define CPUID_MODEL_HASWELL_ULT 0x45 // Haswell ULT, 4th gen Core, Xeon E3-12xx v3 C8/C9/C10
#define CPUID_MODEL_HASWELL_ULX 0x46 // Crystal Well, 4th gen Core, Xeon E3-12xx v3
-//#define CPUID_MODEL_ 0x4A // Future Atom E3000, Z3000 silvermont / atom
-#define CPUID_MODEL_AVOTON 0x4D // Silvermont/Avoton Atom C2000
-//#define CPUID_MODEL_ 0x4E // Future Core
-#define CPUID_MODEL_BRODWELL_SVR 0x4F // Broadwell Server
-#define CPUID_MODEL_BRODWELL_MSVR 0x56 // Broadwell Micro Server, Future Xeon
-//#define CPUID_MODEL_ 0x5A // Silvermont, Future Atom E3000, Z3000
-//#define CPUID_MODEL_ 0x5D // Silvermont, Future Atom E3000, Z3000
+#define CPUID_MODEL_BROADWELL_HQ 0x47 // Broadwell BDW
+#define CPUID_MODEL_MERRIFIELD 0x4A // Future Atom E3000, Z3000 silvermont / atom (Marrifield)
+#define CPUID_MODEL_BRASWELL 0x4C // Atom (Braswell)
+#define CPUID_MODEL_AVOTON 0x4D // Silvermont/Avoton Atom C2000 **AVN
+#define CPUID_MODEL_SKYLAKE 0x4E // Future Core **SKL
+#define CPUID_MODEL_BRODWELL_SVR 0x4F // Broadwell Server **BDX
+#define CPUID_MODEL_BRODWELL_MSVR 0x56 // Broadwell Micro Server, Future Xeon **BDX-DE
+//#define CPUID_MODEL_KNIGHT 0x57
+#define CPUID_MODEL_ANNIDALE 0x5A // Silvermont, Future Atom E3000, Z3000 (Annidale)
+//#define CPUID_MODEL_GOLDMONT 0x5C
+#define CPUID_MODEL_VALLEYVIEW 0x5D // Silvermont, Future Atom E3000, Z3000
+#define CPUID_MODEL_SKYLAKE_S 0x5E // Skylake **SKL
+//#define CPUID_MODEL_CANNONLAKE 0x66
/* CPUID Vendor */
#define CPUID_VID_INTEL "GenuineIntel"
@@ -247,6 +252,15 @@
#define IA32_PLATFORM_DCA_CAP 0x01F8
#define MSR_POWER_CTL 0x01FC // MSR 000001FC 0000-0000-0004-005F
+// Nehalem (NHM) adds support for additional MSRs
+#define MSR_SMI_COUNT 0x034
+#define MSR_NHM_PLATFORM_INFO 0x0ce
+#define MSR_NHM_SNB_PKG_CST_CFG_CTL 0x0e2
+#define MSR_PKG_C3_RESIDENCY 0x3f8
+#define MSR_PKG_C6_RESIDENCY 0x3f9
+#define MSR_CORE_C3_RESIDENCY 0x3fc
+#define MSR_CORE_C6_RESIDENCY 0x3fd
+
// Sandy Bridge & JakeTown specific 'Running Average Power Limit' MSR's.
#define MSR_RAPL_POWER_UNIT 0x606 // R/O
//MSR 00000606 0000-0000-000A-1003
@@ -257,6 +271,10 @@
//Valid + 010=1024ns + 0x54=84mks
#define MSR_PKGC7_IRTL 0x60C // RW time limit to go C7
//MSR 0000060C 0000-0000-0000-8854
+
+// Sandy Bridge (SNB) adds support for additional MSRs
+#define MSR_PKG_C7_RESIDENCY 0x3FA
+#define MSR_CORE_C7_RESIDENCY 0x3FE
#define MSR_PKG_C2_RESIDENCY 0x60D // same as TSC but in C2 only
#define MSR_PKG_RAPL_POWER_LIMIT 0x610 //MSR 00000610 0000-A580-0000-8960
@@ -271,8 +289,7 @@
// Sandy Bridge Uncore (IGPU) domain MSR's (Not on JakeTown).
#define MSR_PP1_POWER_LIMIT 0x640
-#define MSR_PP1_ENERGY_STATUS 0x641
-//MSR 00000641 0000-0000-0000-0000
+#define MSR_PP1_ENERGY_STATUS 0x641
#define MSR_PP1_POLICY 0x642
// JakeTown only Memory MSR's.
@@ -282,17 +299,28 @@
#define MSR_DRAM_PERF_STATUS 0x61B
#define MSR_DRAM_POWER_INFO 0x61C
-//IVY_BRIDGE
+// Ivy Bridge
#define MSR_CONFIG_TDP_NOMINAL 0x648
#define MSR_CONFIG_TDP_LEVEL1 0x649
#define MSR_CONFIG_TDP_LEVEL2 0x64A
#define MSR_CONFIG_TDP_CONTROL 0x64B // write once to lock
#define MSR_TURBO_ACTIVATION_RATIO 0x64C
+// Haswell (HSW) adds support for additional MSRs
+#define MSR_PKG_C8_RESIDENCY 0x630
+#define MSR_PKG_C9_RESIDENCY 0x631
+#define MSR_PKG_C10_RESIDENCY 0x632
+
+// Skylake (SKL) adds support for additional MSRs
+#define MSR_PKG_WEIGHTED_CORE_C0_RES 0x658
+#define MSR_PKG_ANY_CORE_C0_RES 0x659
+#define MSR_PKG_ANY_GFXE_C0_RES 0x65A
+#define MSR_PKG_BOTH_CORE_GFXE_C0_RES 0x65B
+
/* AMD Defined MSRs */
-#define MSR_K6_EFER 0xC0000080
-#define MSR_K6_STAR 0xC0000081
-#define MSR_K6_WHCR 0xC0000082
+#define MSR_K6_EFER 0xC0000080 // extended feature register
+#define MSR_K6_STAR 0xC0000081 // legacy mode SYSCALL target
+#define MSR_K6_WHCR 0xC0000082 // long mode SYSCALL target
#define MSR_K6_UWCCR 0xC0000085
#define MSR_K6_EPMR 0xC0000086
#define MSR_K6_PSOR 0xC0000087
Index: trunk/i386/libsaio/disk.c
===================================================================
--- trunk/i386/libsaio/disk.c (revision 2782)
+++ trunk/i386/libsaio/disk.c (revision 2783)
@@ -1697,7 +1697,7 @@
//==============================================================================
static bool getOSVersion(BVRef bvr, char *str)
{
- bool valid = false;
+ bool valid = false;
config_file_t systemVersion;
char dirSpec[512];
Index: trunk/i386/libsaio/stringTable.c
===================================================================
--- trunk/i386/libsaio/stringTable.c (revision 2782)
+++ trunk/i386/libsaio/stringTable.c (revision 2783)
@@ -660,10 +660,10 @@
{
char *dirspec[] = {
"/com.apple.recovery.boot/com.apple.Boot.plist", // OS X Recovery
- "/OS X Install Data/com.apple.Boot.plist", // OS X Installer (10.8+)
- "/Mac OS X Install Data/com.apple.Boot.plist", // OS X Installer (Lion 10.7)
+ "/OS X Install Data/com.apple.Boot.plist", // OS X Upgrade (10.8+)
+ "/Mac OS X Install Data/com.apple.Boot.plist", // OS X Upgrade (Lion 10.7)
//"/.IABootFiles/com.apple.Boot.plist", // OS X Installer
- "/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" // com.apple.Boot.plist
+ "/Library/Preferences/SystemConfiguration/com.apple.Boot.plist" // (Installed System or Installer)
};
int i, fd, count, ret=-1;
Index: trunk/i386/libsaio/state_generator.c
===================================================================
--- trunk/i386/libsaio/state_generator.c (revision 2782)
+++ trunk/i386/libsaio/state_generator.c (revision 2783)
@@ -298,6 +298,8 @@
case CPUID_MODEL_HASWELL_SVR: //
case CPUID_MODEL_HASWELL_ULT: //
case CPUID_MODEL_HASWELL_ULX: //
+ case CPUID_MODEL_BROADWELL_HQ:
+ case CPUID_MODEL_SKYLAKE_S:
case CPUID_MODEL_ATOM_3700:
{
Index: trunk/i386/libsaio/smbios_getters.c
===================================================================
--- trunk/i386/libsaio/smbios_getters.c (revision 2782)
+++ trunk/i386/libsaio/smbios_getters.c (revision 2783)
@@ -208,7 +208,7 @@
return true;
case CPUID_MODEL_PRESLER:
- case CPUID_MODEL_CELERON:
+ case CPUID_MODEL_CONROE:
case CPUID_MODEL_YONAH: // 0x0E - Intel Mobile Core Solo, Duo
value->word = 0x201; // 513
return true;
@@ -384,6 +384,7 @@
return true;
case CPUID_MODEL_HASWELL_U5: // 0x3D -
+ case CPUID_MODEL_SKYLAKE_S: // 0x5E
if (strstr(Platform.CPU.BrandString, CORE_M))
{
@@ -428,6 +429,7 @@
case CPUID_MODEL_HASWELL_SVR: // 0x3F -
case CPUID_MODEL_HASWELL_ULT: // 0x45 -
case CPUID_MODEL_HASWELL_ULX: // 0x46 -
+ case CPUID_MODEL_BROADWELL_HQ: // 0x47
if (strstr(Platform.CPU.BrandString, XEON))
{
Index: trunk/i386/include/IOKit/graphics/IOFramebuffer.h
===================================================================
--- trunk/i386/include/IOKit/graphics/IOFramebuffer.h (revision 2782)
+++ trunk/i386/include/IOKit/graphics/IOFramebuffer.h (revision 2783)
@@ -130,8 +130,19 @@
kIOFBNotifyDisplayDimsChange = 50,
kIOFBNotifyProbed = 60,
+
+ kIOFBNotifyVRAMReady = 70,
+
+ kIOFBNotifyWillNotify = 80,
+ kIOFBNotifyDidNotify = 81,
};
+struct IOFramebufferNotificationNotify
+{
+ IOIndex event;
+ void * info;
+};
+
enum {
kFBDisplayUsablePowerState = 0x80000000,
kFBDisplayPowerStateMask = 0x0000ffff
@@ -142,6 +153,7 @@
struct StdFBShmem_t;
class IOFramebufferUserClient;
+class IODisplay;
/*! @class IOFramebuffer : public IOGraphicsDevice
@abstract The base class for graphics devices to be made available as part of the desktop.
@@ -156,6 +168,7 @@
{
friend class IOFramebufferUserClient;
friend class IOFramebufferSharedUserClient;
+ friend class IOFramebufferParameterHandler;
friend class IODisplay;
OSDeclareDefaultStructors(IOFramebuffer)
@@ -217,7 +230,8 @@
unsigned int captured:1;
unsigned int sleepConnectCheck:1;
unsigned int messaged:1;
- unsigned int _IOFramebuffer_reservedC:28;
+ unsigned int cursorEnable:1;
+ unsigned int _IOFramebuffer_reservedC:27;
IOFramebuffer * nextDependent;
OSSet * fbNotifications;
@@ -811,6 +825,11 @@
virtual IOReturn getNotificationSemaphore( IOSelect interruptType,
semaphore_t * semaphore );
+ IOReturn setBackingFramebuffer(const IOPixelInformation * info,
+ uint32_t bufferCount,
+ void * mappedAddress[]);
+ IOReturn switchBackingFramebuffer(uint32_t bufferIndex);
+
/* non WL clients apis
*/
IOReturn setAttributeExt( IOSelect attribute, uintptr_t value );
Index: trunk/i386/include/IOKit/graphics/IODisplay.h
===================================================================
--- trunk/i386/include/IOKit/graphics/IODisplay.h (revision 2782)
+++ trunk/i386/include/IOKit/graphics/IODisplay.h (revision 2783)
@@ -35,6 +35,9 @@
extern const OSSymbol * gIODisplayContrastKey;
extern const OSSymbol * gIODisplayBrightnessKey;
+extern const OSSymbol * gIODisplayLinearBrightnessKey;
+extern const OSSymbol * gIODisplayUsableLinearBrightnessKey;
+extern const OSSymbol * gIODisplayBrightnessFadeKey;
extern const OSSymbol * gIODisplayHorizontalPositionKey;
extern const OSSymbol * gIODisplayHorizontalSizeKey;
extern const OSSymbol * gIODisplayVerticalPositionKey;
@@ -45,7 +48,13 @@
extern const OSSymbol * gIODisplayRotationKey;
extern const OSSymbol * gIODisplayOverscanKey;
extern const OSSymbol * gIODisplayVideoBestKey;
+extern const OSSymbol * gIODisplaySelectedColorModeKey;
+extern const OSSymbol * gIODisplayRedGammaScaleKey;
+extern const OSSymbol * gIODisplayGreenGammaScaleKey;
+extern const OSSymbol * gIODisplayBlueGammaScaleKey;
+extern const OSSymbol * gIODisplayGammaScaleKey;
+
extern const OSSymbol * gIODisplayParametersTheatreModeKey;
extern const OSSymbol * gIODisplayParametersTheatreModeWindowKey;
@@ -66,10 +75,24 @@
extern const OSSymbol * gIODisplayPowerModeKey;
extern const OSSymbol * gIODisplayManufacturerSpecificKey;
+extern const OSSymbol * gIODisplayPowerStateKey;
+extern const OSSymbol * gIODisplayControllerIDKey;
+extern const OSSymbol * gIODisplayCapabilityStringKey;
+
extern const OSSymbol * gIODisplayParametersCommitKey;
extern const OSSymbol * gIODisplayParametersDefaultKey;
extern const OSSymbol * gIODisplayParametersFlushKey;
+extern const OSSymbol * gIODisplayFadeTime1Key;
+extern const OSSymbol * gIODisplayFadeTime2Key;
+extern const OSSymbol * gIODisplayFadeTime3Key;
+extern const OSSymbol * gIODisplayFadeStyleKey;
+
+extern UInt32 gIODisplayFadeTime1;
+extern UInt32 gIODisplayFadeTime2;
+extern UInt32 gIODisplayFadeTime3;
+extern UInt32 gIODisplayFadeStyle;
+
enum {
kIODisplayNumPowerStates = 4,
kIODisplayMaxPowerState = kIODisplayNumPowerStates - 1
@@ -93,13 +116,10 @@
IOIndex connection;
protected:
-/*! @struct ExpansionData
- @discussion This structure will be used to expand the capablilties of this class in the future.
- */
+/* Reserved for future use. (Internal use only) */
struct ExpansionData { };
-/*! @var reserved
- Reserved for future use. (Internal use only) */
+/* Reserved for future use. (Internal use only) */
ExpansionData * reserved;
public:
@@ -126,7 +146,7 @@
IONotifier * fNotifier;
// pointer to protected instance variables for power management
- struct DisplayPMVars * fDisplayPMVars;
+ struct IODisplayPMVars * fDisplayPMVars;
// reserved for future expansion
void * _IODisplay_reserved[32];
@@ -180,6 +200,7 @@
virtual void initPowerManagement( IOService * provider);
virtual void dropOneLevel( void );
virtual void makeDisplayUsable( void );
+ void setDisplayPowerState(unsigned long state);
private:
OSMetaClassDeclareReservedUnused(IODisplay, 0);
@@ -207,6 +228,7 @@
static IOReturn _framebufferEvent( OSObject * self, void * ref,
IOFramebuffer *framebuffer, IOIndex event, void * info );
+ void searchParameterHandlers(IORegistryEntry * entry);
bool addParameterHandler( IODisplayParameterHandler * parameterHandler );
bool removeParameterHandler( IODisplayParameterHandler * parameterHandler );
static bool updateNumber( OSDictionary * params, const OSSymbol * key, SInt32 value );
Index: trunk/i386/include/IOKit/graphics/IOGraphicsTypes.h
===================================================================
--- trunk/i386/include/IOKit/graphics/IOGraphicsTypes.h (revision 2782)
+++ trunk/i386/include/IOKit/graphics/IOGraphicsTypes.h (revision 2783)
@@ -31,7 +31,7 @@
extern "C" {
#endif
-#define IOGRAPHICSTYPES_REV 24
+#define IOGRAPHICSTYPES_REV 42
typedef SInt32 IOIndex;
typedef UInt32 IOSelect;
@@ -138,6 +138,8 @@
* kDisplayModeSimulscanFlag mode is available on multiple display connections.
* kDisplayModeNotPresetFlag mode is not a factory preset for the display (geometry may need correction).
* kDisplayModeStretchedFlag mode is stretched/distorted to match the display aspect ratio.
+ * @field imageWidth Physical width of active image if known, in millimeters, otherwise zero.
+ * @field imageHeight Physical height of active image if known, in millimeters, otherwise zero.
* @field reserved Set to zero.
*/
@@ -147,7 +149,9 @@
IOFixed1616 refreshRate;
IOIndex maxDepthIndex;
UInt32 flags;
- UInt32 reserved[ 4 ];
+ UInt16 imageWidth;
+ UInt16 imageHeight;
+ UInt32 reserved[ 3 ];
};
typedef struct IODisplayModeInformation IODisplayModeInformation;
@@ -169,7 +173,11 @@
kDisplayModeNotGraphicsQualityFlag = 0x00001000,
kDisplayModeValidateAgainstDisplay = 0x00002000,
kDisplayModeTelevisionFlag = 0x00100000,
- kDisplayModeValidForMirroringFlag = 0x00200000
+ kDisplayModeValidForMirroringFlag = 0x00200000,
+ kDisplayModeAcceleratorBackedFlag = 0x00400000,
+ kDisplayModeValidForHiResFlag = 0x00800000,
+ kDisplayModeValidForAirPlayFlag = 0x01000000,
+ kDisplayModeNativeFlag = 0x02000000
};
enum {
kDisplayModeValidFlag = 0x00000001,
@@ -253,16 +261,20 @@
kIOCursorControlAttribute = 'crsc',
kIOSystemPowerAttribute = 'spwr',
+ kIOWindowServerActiveAttribute = 'wsrv',
kIOVRAMSaveAttribute = 'vrsv',
kIODeferCLUTSetAttribute = 'vclt',
- kIOClamshellStateAttribute = 'clam'
+ kIOClamshellStateAttribute = 'clam',
+
+ kIOFBDisplayPortTrainingAttribute = 'dpta',
};
// values for kIOMirrorAttribute
enum {
kIOMirrorIsPrimary = 0x80000000,
- kIOMirrorHWClipped = 0x40000000
+ kIOMirrorHWClipped = 0x40000000,
+ kIOMirrorIsMirrored = 0x20000000
};
// values for kIOMirrorDefaultAttribute
@@ -696,7 +708,11 @@
kConnectionRedGammaScale = 'rgsc',
kConnectionGreenGammaScale = 'ggsc',
kConnectionBlueGammaScale = 'bgsc',
+ kConnectionGammaScale = 'gsc ',
+ kConnectionFlushParameters = 'flus',
+ kConnectionVBLMultiplier = 'vblm',
+
kConnectionHandleDisplayPortEvent = 'dpir',
kConnectionPanelTimingDisable = 'pnlt',
@@ -710,6 +726,9 @@
kConnectionControllerDitherControl = '\0gdc',
kConnectionDisplayFlags = 'dflg',
+
+ kConnectionEnableAudio = 'aud ',
+ kConnectionAudioStreaming = 'auds',
};
// kConnectionFlags values
@@ -750,10 +769,11 @@
#define kIODisplaySupportsBasicAudioKey "IODisplaySupportsBasicAudio"
#define kIODisplaySupportsYCbCr444Key "IODisplaySupportsYCbCr444"
#define kIODisplaySupportsYCbCr422Key "IODisplaySupportsYCbCr422"
+#define kIODisplaySelectedColorModeKey "cmod"
enum
{
- kIODisplayColorMode = kConnectionColorMode,
+ kIODisplayColorMode = kConnectionColorMode,
};
#if 0
@@ -817,6 +837,12 @@
kIODisplayNeedsCEAUnderscan = 0x00000001,
};
+enum
+{
+ kIODisplayPowerStateOff = 0,
+ kIODisplayPowerStateMinUsable = 1,
+ kIODisplayPowerStateOn = 2,
+};
#define IO_DISPLAY_CAN_FILL 0x00000040
#define IO_DISPLAY_CAN_BLIT 0x00000020
@@ -985,7 +1011,9 @@
// DisplayPort link event
kIOFBDisplayPortLinkChangeInterruptType = 'dplk',
// MCCS
- kIOFBMCCSInterruptType = 'mccs'
+ kIOFBMCCSInterruptType = 'mccs',
+ // early vram notification
+ kIOFBWakeInterruptType = 'vwak'
};
// IOAppleTimingID's
@@ -1014,6 +1042,7 @@
kIOTimingIDVESA_1024x768_75hz = 204, /* 1024x768 (75 Hz) VESA 1K-75Hz timing (very similar to kIOTimingIDApple_1024x768_75hz). */
kIOTimingIDVESA_1024x768_85hz = 208, /* 1024x768 (85 Hz) VESA timing. */
kIOTimingIDApple_1024x768_75hz = 210, /* 1024x768 (75 Hz) Apple 19" RGB. */
+ kIOTimingIDVESA_1152x864_75hz = 215, /* 1152x864 (75 Hz) VESA timing. */
kIOTimingIDApple_1152x870_75hz = 220, /* 1152x870 (75 Hz) Apple 21" RGB. */
kIOTimingIDAppleNTSC_ST = 230, /* 512x384 (60 Hz, interlaced, non-convolved). */
kIOTimingIDAppleNTSC_FF = 232, /* 640x480 (60 Hz, interlaced, non-convolved). */
@@ -1070,16 +1099,21 @@
#define kIOFBTimingRangeKey "IOFBTimingRange"
#define kIOFBScalerInfoKey "IOFBScalerInfo"
#define kIOFBCursorInfoKey "IOFBCursorInfo"
+#define kIOFBHDMIDongleROMKey "IOFBHDMIDongleROM"
#define kIOFBHostAccessFlagsKey "IOFBHostAccessFlags"
#define kIOFBMemorySizeKey "IOFBMemorySize"
+#define kIOFBNeedsRefreshKey "IOFBNeedsRefresh"
+
#define kIOFBProbeOptionsKey "IOFBProbeOptions"
#define kIOFBGammaWidthKey "IOFBGammaWidth"
#define kIOFBGammaCountKey "IOFBGammaCount"
#define kIOFBCLUTDeferKey "IOFBCLUTDefer"
+
+#define kIOFBDisplayPortConfigurationDataKey "dpcd-registers"
// exists on the hibernate progress display device
#ifndef kIOHibernatePreviewActiveKey
@@ -1091,6 +1125,8 @@
};
#endif
+#define kIOHibernateEFIGfxStatusKey "IOHibernateEFIGfxStatus"
+
// CFNumber/CFData
#define kIOFBAVSignalTypeKey "av-signal-type"
enum {
@@ -1101,6 +1137,63 @@
kIOFBAVSignalTypeDP = 0x00000010,
};
+// kIOFBDisplayPortTrainingAttribute data
+
+struct IOFBDPLinkConfig
+{
+ uint16_t version; // 8 bit high (major); 8 bit low (minor)
+ uint8_t bitRate; // same encoding as the spec
+ uint8_t __reservedA[1]; // reserved set to zero
+ uint16_t t1Time; // minimum duration of the t1 pattern (microseconds)
+ uint16_t t2Time; // minimum duration of the t2 pattern
+ uint16_t t3Time; // minimum duration of the t3 pattern
+ uint8_t idlePatterns; // minimum number of idle patterns
+ uint8_t laneCount; // number of lanes in the link
+ uint8_t voltage;
+ uint8_t preEmphasis;
+ uint8_t downspread;
+ uint8_t scrambler;
+ uint8_t maxBitRate; // same encoding as the bitRate field
+ uint8_t maxLaneCount; // an integer
+ uint8_t maxDownspread; // 0 = Off. 1 = 0.5
+ uint8_t __reservedB[9]; // reserved set to zero - fix align and provide 8 bytes of padding.
+};
+typedef struct IOFBDPLinkConfig IOFBDPLinkConfig;
+
+enum
+{
+ kIOFBBitRateRBR = 0x06, // 1.62 Gbps per lane
+ kIOFBBitRateHBR = 0x0A, // 2.70 Gbps per lane
+ kIOFBBitRateHBR2 = 0x14, // 5.40 Gbps per lane
+};
+
+enum {
+ kIOFBLinkVoltageLevel0 = 0x00,
+ kIOFBLinkVoltageLevel1 = 0x01,
+ kIOFBLinkVoltageLevel2 = 0x02,
+ kIOFBLinkVoltageLevel3 = 0x03
+};
+
+enum
+{
+ kIOFBLinkPreEmphasisLevel0 = 0x00,
+ kIOFBLinkPreEmphasisLevel1 = 0x01,
+ kIOFBLinkPreEmphasisLevel2 = 0x02,
+ kIOFBLinkPreEmphasisLevel3 = 0x03
+};
+
+enum
+{
+ kIOFBLinkDownspreadNone = 0x0,
+ kIOFBLinkDownspreadMax = 0x1
+};
+
+enum
+{
+ kIOFBLinkScramblerNormal = 0x0, // for external displays
+ kIOFBLinkScramblerAlternate = 0x1 // used for eDP
+};
+
// diagnostic keys
#define kIOFBConfigKey "IOFBConfig"
@@ -1110,10 +1203,12 @@
#define kIOFBModeTMKey "TM"
#define kIOFBModeAIDKey "AID"
#define kIOFBModeDFKey "DF"
+#define kIOFBModePIKey "PI"
// display property keys
#define kIODisplayEDIDKey "IODisplayEDID"
+#define kIODisplayEDIDOriginalKey "IODisplayEDIDOriginal"
#define kIODisplayLocationKey "IODisplayLocation" // CFString
#define kIODisplayConnectFlagsKey "IODisplayConnectFlags" // CFNumber
#define kIODisplayHasBacklightKey "IODisplayHasBacklight" // CFBoolean
@@ -1217,20 +1312,23 @@
#define kIODisplayMinValueKey "min"
#define kIODisplayMaxValueKey "max"
-#define kIODisplayBrightnessKey "brightness"
-#define kIODisplayContrastKey "contrast"
-#define kIODisplayHorizontalPositionKey "horizontal-position"
-#define kIODisplayHorizontalSizeKey "horizontal-size"
-#define kIODisplayVerticalPositionKey "vertical-position"
-#define kIODisplayVerticalSizeKey "vertical-size"
-#define kIODisplayTrapezoidKey "trapezoid"
-#define kIODisplayPincushionKey "pincushion"
-#define kIODisplayParallelogramKey "parallelogram"
-#define kIODisplayRotationKey "rotation"
-#define kIODisplayTheatreModeKey "theatre-mode"
-#define kIODisplayTheatreModeWindowKey "theatre-mode-window"
-#define kIODisplayOverscanKey "oscn"
-#define kIODisplayVideoBestKey "vbst"
+#define kIODisplayBrightnessKey "brightness"
+#define kIODisplayLinearBrightnessKey "linear-brightness"
+#define kIODisplayUsableLinearBrightnessKey "usable-linear-brightness"
+#define kIODisplayBrightnessFadeKey "brightness-fade"
+#define kIODisplayContrastKey "contrast"
+#define kIODisplayHorizontalPositionKey "horizontal-position"
+#define kIODisplayHorizontalSizeKey "horizontal-size"
+#define kIODisplayVerticalPositionKey "vertical-position"
+#define kIODisplayVerticalSizeKey "vertical-size"
+#define kIODisplayTrapezoidKey "trapezoid"
+#define kIODisplayPincushionKey "pincushion"
+#define kIODisplayParallelogramKey "parallelogram"
+#define kIODisplayRotationKey "rotation"
+#define kIODisplayTheatreModeKey "theatre-mode"
+#define kIODisplayTheatreModeWindowKey "theatre-mode-window"
+#define kIODisplayOverscanKey "oscn"
+#define kIODisplayVideoBestKey "vbst"
#define kIODisplaySpeakerVolumeKey "speaker-volume"
#define kIODisplaySpeakerSelectKey "speaker-select"
@@ -1244,10 +1342,15 @@
#define kIODisplayPowerModeKey "power-mode"
#define kIODisplayManufacturerSpecificKey "manufacturer-specific"
+#define kIODisplayPowerStateKey "dsyp"
+#define kIODisplayControllerIDKey "IODisplayControllerID"
+#define kIODisplayCapabilityStringKey "IODisplayCapabilityString"
+
#define kIODisplayRedGammaScaleKey "rgsc"
#define kIODisplayGreenGammaScaleKey "ggsc"
#define kIODisplayBlueGammaScaleKey "bgsc"
+#define kIODisplayGammaScaleKey "gsc "
#define kIODisplayParametersCommitKey "commit"
#define kIODisplayParametersDefaultKey "defaults"
Index: trunk/i386/include/IOKit/graphics/IOGraphicsEngine.h
===================================================================
--- trunk/i386/include/IOKit/graphics/IOGraphicsEngine.h (revision 2782)
+++ trunk/i386/include/IOKit/graphics/IOGraphicsEngine.h (revision 2783)
@@ -29,7 +29,7 @@
struct IOGraphicsEngineContext {
- IOSharedLockData contextLock;
+ OSSpinLock contextLock;
IOOptionBits state;
void * owner;
UInt32 version;
Index: trunk/i386/include/IOKit/graphics/IOFramebufferShared.h
===================================================================
--- trunk/i386/include/IOKit/graphics/IOFramebufferShared.h (revision 2782)
+++ trunk/i386/include/IOKit/graphics/IOFramebufferShared.h (revision 2783)
@@ -25,6 +25,7 @@
#include
#include
+#include
#ifdef __cplusplus
extern "C" {
@@ -174,7 +175,7 @@
*/
struct StdFBShmem_t {
- ev_lock_data_t cursorSema;
+ OSSpinLock cursorSema;
int frame;
char cursorShow;
char cursorObscured;
@@ -192,7 +193,10 @@
AbsoluteTime vblDelta;
unsigned long long int vblCount;
#if IOFB_ARBITRARY_FRAMES_CURSOR
- unsigned int reservedC[28];
+ unsigned long long int vblDrift;
+ unsigned long long int vblDeltaMeasured;
+ AbsoluteTime vblDeltaReal;
+ unsigned int reservedC[22];
#else
unsigned int reservedC[27];
unsigned char hardwareCursorFlags[kIOFBNumCursorFrames];
Index: trunk/i386/include/IOKit/IONVRAM.h
===================================================================
--- trunk/i386/include/IOKit/IONVRAM.h (revision 2782)
+++ trunk/i386/include/IOKit/IONVRAM.h (revision 2783)
@@ -1,5 +1,6 @@
/*
- * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 1998-2006 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2007-2012 Apple Inc. All rights reserved.
*
* @APPLE_OSREFERENCE_LICENSE_HEADER_START@
*
@@ -76,16 +77,19 @@
OSDictionary *_ofDict;
OSDictionary *_nvramPartitionOffsets;
OSDictionary *_nvramPartitionLengths;
- UInt32 _xpramPartitionOffset;
- UInt32 _xpramPartitionSize;
- UInt8 *_xpramImage;
- UInt32 _nrPartitionOffset;
- UInt32 _nrPartitionSize;
- UInt8 *_nrImage;
+ UInt32 _resv0 __unused;
+ UInt32 _resv1 __unused;
+ IOLock *_ofLock;
+ UInt32 _resv2 __unused;
+ UInt32 _resv3 __unused;
+ UInt8 *_resv4 __unused;
UInt32 _piPartitionOffset;
UInt32 _piPartitionSize;
UInt8 *_piImage;
bool _systemPaniced;
+ SInt32 _lastDeviceSync;
+ bool _freshInterval;
+ bool _isProxied;
virtual UInt8 calculatePartitionChecksum(UInt8 *partitionHeader);
virtual IOReturn initOFVariables(void);
@@ -125,6 +129,9 @@
const OSSymbol *name,
OSData *value);
+ void initNVRAMImage(void);
+ void initProxyData(void);
+
public:
virtual bool init(IORegistryEntry *old, const IORegistryPlane *plane);
@@ -133,6 +140,8 @@
virtual void sync(void);
virtual bool serializeProperties(OSSerialize *s) const;
+ virtual OSObject *copyProperty(const OSSymbol *aKey) const;
+ virtual OSObject *copyProperty(const char *aKey) const;
virtual OSObject *getProperty(const OSSymbol *aKey) const;
virtual OSObject *getProperty(const char *aKey) const;
virtual bool setProperty(const OSSymbol *aKey, OSObject *anObject);
@@ -162,6 +171,7 @@
IOByteCount length);
virtual IOByteCount savePanicInfo(UInt8 *buffer, IOByteCount length);
+ virtual bool safeToSync(void);
};
#endif /* !_IOKIT_IONVRAM_H */
Index: trunk/i386/boot2/options.c
===================================================================
--- trunk/i386/boot2/options.c (revision 2782)
+++ trunk/i386/boot2/options.c (revision 2783)
@@ -1663,6 +1663,13 @@
size = MAX_TEXT_FILE_SIZE;
}
buf = malloc(size);
+
+ if (!buf)
+ {
+ printf("Couldn't allocate memory for the buf in showTextFile\n");
+ return;
+ }
+
read(fd, buf, size);
close(fd);
showTextBuffer(buf, size);
Index: trunk/i386/modules/Resolution/edid.c
===================================================================
--- trunk/i386/modules/Resolution/edid.c (revision 2782)
+++ trunk/i386/modules/Resolution/edid.c (revision 2783)
@@ -410,7 +410,7 @@
return ret;
}
-int getEDID( void * edidBlock, UInt8 block)
+int getEDID( void *edidBlock, UInt8 block)
{
biosBuf_t bb;
bzero(&bb, sizeof(bb));
Index: trunk/i386/libsa/zalloc.c
===================================================================
--- trunk/i386/libsa/zalloc.c (revision 2782)
+++ trunk/i386/libsa/zalloc.c (revision 2783)
@@ -109,12 +109,9 @@
size = ((size + 0xf) & ~0xf);
- if (size == 0)
+ if (size == 0 && zerror)
{
- if (zerror)
- {
- (*zerror)((char *)0xdeadbeef, 0, file, line);
- }
+ (*zerror)((char *)0xdeadbeef, 0, file, line);
}
#if BEST_FIT
smallestSize = 0;