Chameleon

Chameleon Commit Details

Date:2010-12-23 12:37:11 (8 years 6 months ago)
Author:Sergey Slice
Commit:689
Parents: 688
Message:different correction
Changes:
M/branches/slice/i386/libsaio/biosfn.c
M/branches/slice/i386/libsaio/pci_root.h
M/branches/slice/i386/modules/Memory/spd.c
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
M/branches/slice/i386/modules/KextPatcher/kext_patcher.c
M/branches/slice/i386/modules/Resolution/915resolution.c
M/branches/slice/i386/libsaio/device_inject.c
M/branches/slice/i386/modules/NVRAM/NVRAM.c
M/branches/slice/i386/modules/GraphicsEnabler/ati.c
M/branches/slice/i386/modules/ACPIPatcher/ACPIPatcher.c
M/branches/slice/i386/boot2/ramdisk.c
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
M/branches/slice/i386/libsaio/xml.c
M/branches/slice/i386/modules/KernelPatcher/kernel_patcher.c
M/branches/slice/i386/boot2/boot.c
M/branches/slice/i386/boot2/boot.h
M/branches/slice/i386/libsaio/sys.c
M/branches/slice/i386/libsaio/device_tree.c
M/branches/slice/i386/boot2/drivers.c
M/branches/slice/i386/modules/GraphicsEnabler/gma.c
M/branches/slice/i386/libsaio/platform.c
M/branches/slice/i386/modules/HPET/HPET.c
M/branches/slice/i386/libsaio/cpu.c
M/branches/slice/i386/modules/GraphicsEnabler/nvidia.c
M/branches/slice/i386/modules/ACPIPatcher/acpi_patcher.c
M/branches/slice/i386/util/bdmesg.c
M/branches/slice/i386/modules/Resolution/edid.c
M/branches/slice/revision
M/branches/slice/i386/modules/KextPatcher/hex_editor.c
M/branches/slice/i386/libsaio/smbios_patcher.c
M/branches/slice/i386/boot2/graphics.c
M/branches/slice/i386/modules/Networking/Networking.c
M/branches/slice/i386/modules/Memory/dram_controllers.c
M/branches/slice/i386/modules/GUI/graphic_utils.c
M/branches/slice/i386/modules/klibc/sha1hash.c
M/branches/slice/i386/boot2/modules.c
M/branches/slice/i386/libsaio/pci_root.c
M/branches/slice/i386/modules/USBFix/usb.c

File differences

branches/slice/i386/libsaio/xml.c
357357
358358
359359
360
360
361361
362362
363363
......
430430
431431
432432
433
433
434434
435435
436436
......
457457
458458
459459
460
460
461461
462462
463463
......
690690
691691
692692
693
693
694694
695695
696696
......
723723
724724
725725
726
726
727727
728728
729729
......
746746
747747
748748
749
749
750750
751751
752752
......
818818
819819
820820
821
821
822822
823823
824824
......
11421142
11431143
11441144
1145
1145
11461146
11471147
11481148
}
else
{
printf("ParseStringID error (0x%x)\n", *val);
verbose("ParseStringID error (0x%x)\n", *val);
getc();
return -1;
}
else
{
printf("ParseIntegerID error (0x%x)\n", *val);
verbose("ParseIntegerID error (0x%x)\n", *val);
getc();
return -1;
}
else
{
printf("ParseStringIDREF error (0x%x)\n", *val);
verbose("ParseStringIDREF error (0x%x)\n", *val);
getc();
return -1;
if(buffer[0] == '<')
{
printf("Warning integer is non existant\n");
verbose("Warning integer is non existant\n");
//getc();
tmpTag->type = kTagTypeInteger;
tmpTag->string = 0;
}
else
{
printf("ParseTagInteger hex error (0x%x) in buffer %s\n", *val, buffer);
verbose("ParseTagInteger hex error (0x%x) in buffer %s\n", *val, buffer);
getc();
return -1;
{
if (*val < '0' || *val > '9')
{
printf("ParseTagInteger decimal error (0x%x) in buffer %s\n", *val, buffer);
verbose("ParseTagInteger decimal error (0x%x) in buffer %s\n", *val, buffer);
getc();
return -1;
}
tmpTag = NewTag();
if (tmpTag == 0) return -1;
printf("ParseTagDate unimplimented\n");
verbose("ParseTagDate unimplimented\n");
getc();
tmpTag->type = kTagTypeDate;
{
if(!dict)
{
printf("XMLCastInteger: null dict\n");
verbose("XMLCastInteger: null dict\n");
return 0;
}
if(dict->type == kTagTypeInteger) return (int)(dict->string);
branches/slice/i386/libsaio/device_tree.c
365365
366366
367367
368
368
369369
370370
371371
......
373373
374374
375375
376
376
377377
378
378
379379
380380
381
381
382382
383383
384384
......
410410
411411
412412
413
413
414414
415
415
416416
417417
418418
419419
420420
421
421
422422
423423
424424
425
425
426426
427427
428428
......
482482
483483
484484
485
485
486486
487487
488488
489489
490490
491
491
492492
493493
494494
495
495
496496
497497
498498
while (level--) *cp++ = ' ';
*cp = '\0';
printf("%s===Node===\n", spaces);
verbose("%s===Node===\n", spaces);
for (prop = node->properties; prop; prop = prop->next) {
char c = *((char *)prop->value);
if (prop->length < 64 && (
(c >= '0' && c <= '9') ||
(c >= 'a' && c <= 'z') ||
(c >= 'A' && c <= 'Z') || c == '_')) {
printf("%s Property '%s' [%d] = '%s'\n", spaces, prop->name, prop->length, prop->value);
verbose("%s Property '%s' [%d] = '%s'\n", spaces, prop->name, prop->length, prop->value);
} else {
printf("%s Property '%s' [%d] = (data)\n", spaces, prop->name, prop->length);
verbose("%s Property '%s' [%d] = (data)\n", spaces, prop->name, prop->length);
}
}
printf("%s==========\n", spaces);
verbose("%s==========\n", spaces);
}
static void
while (level--) *cp++ = ' ';
*cp = '\0';
printf("%s===Entry %p===\n", spaces, entry);
verbose("%s===Entry %p===\n", spaces, entry);
if (kSuccess != DTCreatePropertyIterator(entry, &propIter)) {
printf("Couldn't create property iterator\n");
verbose("Couldn't create property iterator\n");
return;
}
while( kSuccess == DTIterateProperties( propIter, &name)) {
if( kSuccess != DTGetProperty( entry, name, &prop, &propSize ))
continue;
printf("%s Property %s = %s\n", spaces, name, prop);
verbose("%s Property %s = %s\n", spaces, name, prop);
}
DTDisposePropertyIterator(propIter);
printf("%s==========\n", spaces);
verbose("%s==========\n", spaces);
}
static void
node = FindNode("/this/is/a/test", 1);
AddProperty(node, "dddd", 12, "abcdefghijk");
printf("In-memory tree:\n\n");
verbose("In-memory tree:\n\n");
PrintTree(rootNode);
FlattenDeviceTree(&flatTree, &flatSize);
printf("Flat tree = %p, size %d\n", flatTree, flatSize);
verbose("Flat tree = %p, size %d\n", flatTree, flatSize);
dtEntry = (DTEntry)flatTree;
printf("\n\nPrinting flat tree\n\n");
verbose("\n\nPrinting flat tree\n\n");
DTInit(dtEntry);
branches/slice/i386/libsaio/smbios_patcher.c
1919
2020
2121
22
22
2323
2424
2525
......
10341034
10351035
10361036
1037
1038
1037
1038
10391039
10401040
10411041
......
10551055
10561056
10571057
1058
1058
10591059
10601060
1061
1061
10621062
10631063
10641064
......
11231123
11241124
11251125
1126
1126
11271127
11281128
11291129
11301130
1131
1131
11321132
11331133
11341134
......
11381138
11391139
11401140
1141
1141
11421142
11431143
11441144
#endif
#if DEBUG_SMBIOS
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
if (ftTablePairInit && smbios!=NULL) {
ftTablePairInit = false;
#if DEBUG_SMBIOS
printf(">>> SMBIOSAddr=0x%08x\n", smbios);
printf(">>> DMI: addr=0x%08x, len=%d, count=%d\n", smbios->dmi.tableAddress,
verbose(">>> SMBIOSAddr=0x%08x\n", smbios);
verbose(">>> DMI: addr=0x%08x, len=%d, count=%d\n", smbios->dmi.tableAddress,
smbios->dmi.tableLength, smbios->dmi.structureCount);
#endif
p = (SMBByte *) smbios->dmi.tableAddress;
DmiTablePairCount++;
}
else {
printf("DMI table entries list is full! Next entries won't be stored.\n");
verbose("DMI table entries list is full! Next entries won't be stored.\n");
}
#if DEBUG_SMBIOS
printf("DMI header found for table type %d, length = %d\n", dmihdr->type, dmihdr->length);
verbose("DMI header found for table type %d, length = %d\n", dmihdr->type, dmihdr->length);
#endif
p = p + dmihdr->length;
while ((p - (SMBByte *)smbios->dmi.tableAddress + 1 < smbios->dmi.tableLength) && (p[0] != 0x00 || p[1] != 0x00)) {
return orig;
case SMBIOS_PATCHED:
if (orig==NULL && (orig = getAddressOfSmbiosTable())==NULL ) {
printf("Could not find original SMBIOS !!\n");
verbose("Could not find original SMBIOS !!\n");
pause();
} else {
patched = smbios_dry_run(orig);
if(patched==NULL) {
printf("Could not create new SMBIOS !!\n");
verbose("Could not create new SMBIOS !!\n");
pause();
}
else {
getSmbiosMacModel();//Dunno if it is a right place to do that
return patched;
default:
printf("ERROR: invalid option for getSmbios() !!\n");
verbose("ERROR: invalid option for getSmbios() !!\n");
break;
}
branches/slice/i386/libsaio/pci_root.c
1212
1313
1414
15
15
1616
1717
1818
1919
2020
21
21
2222
2323
2424
......
4343
4444
4545
46
46
4747
4848
4949
#endif
#if DEBUG_PCIROOT
#define DBG(x...) printf(x)
#define DBG(x...) verbose(x)
#else
#define DBG(x...)msglog(x)
#endif
static int rootuid = 10; //value means function wasnt ran yet
#if NOTYET //it present in ACPIPatcher
static unsigned int findrootuid(unsigned char * dsdt, int len)
{
int i;
}
return 10;
}
#endif
int getPciRootUID(void)
{
//void *new_dsdt;
branches/slice/i386/libsaio/pci_root.h
99
1010
1111
12
12
1313
1414
extern int getPciRootUID(void);
unsigned int findpciroot(unsigned char * dsdt,int len);
//unsigned int findpciroot(unsigned char * dsdt,int len);
#endif /* !__LIBSAIO_DSDT_PATCHER_H */
branches/slice/i386/libsaio/device_inject.c
1818
1919
2020
21
21
2222
2323
2424
......
9696
9797
9898
99
99
100100
101101
102102
......
124124
125125
126126
127
127
128128
129129
130130
......
143143
144144
145145
146
146
147147
148148
149149
#endif
#if DEBUG_INJECT
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
device = malloc(sizeof(struct DevPropDevice));
if (strncmp(path, pciroot_string, strlen(pciroot_string))) {
printf("ERROR parsing device path\n");
verbose("ERROR parsing device path\n");
return NULL;
}
}
else
{
printf("ERROR parsing device path\n");
verbose("ERROR parsing device path\n");
numpaths = 0;
break;
}
}
else
{
printf("ERROR parsing device path\n");
verbose("ERROR parsing device path\n");
numpaths = 0;
break;
}
branches/slice/i386/libsaio/sys.c
370370
371371
372372
373
373
374374
375375
376376
// Resolve the boot volume from the file spec.
if ((bvr = getBootVolumeRef(fileSpec, &filePath)) == NULL) {
printf("Boot volume for '%s' is bogus\n", fileSpec);
verbose("Boot volume for '%s' is bogus\n", fileSpec);
return -1;
}
branches/slice/i386/libsaio/platform.c
1717
1818
1919
20
20
2121
2222
2323
#endif
#if DEBUG_PLATFORM
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
branches/slice/i386/libsaio/cpu.c
1010
1111
1212
13
13
1414
1515
1616
17
17
1818
1919
2020
......
400400
401401
402402
403
403
404404
405405
406406
407407
408408
409
409
410410
411411
412
412
413413
414414
415415
#include "cpu.h"
#ifndef DEBUG_CPU
#define DEBUG_CPU 1
#define DEBUG_CPU 0
#endif
#if DEBUG_CPU
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)msglog(x)
#endif
}
msr = rdmsr64(MSR_NANO_FCR2);
printf("MSR_IA32_EBL_CR_POWERON Returns 0x%X 0x%X\n", msr >> 32, msr & 0xffffffff);
verbose("MSR_IA32_EBL_CR_POWERON Returns 0x%X 0x%X\n", msr >> 32, msr & 0xffffffff);
//msr = msr >> 32;
msr |= VIA_ALTERNATIVE_VENDOR_BIT;
//msr = msr << 32;
printf("MSR_IA32_EBL_CR_POWERON Returns 0x%X 0x%X\n", msr >> 32, msr & 0xffffffff);
verbose("MSR_IA32_EBL_CR_POWERON Returns 0x%X 0x%X\n", msr >> 32, msr & 0xffffffff);
wrmsr64(MSR_NANO_FCR2, msr);
msr = rdmsr64(MSR_NANO_FCR2);
printf("MSR_IA32_EBL_CR_POWERON Returns 0x%X 0x%X\n", msr >> 32, msr & 0xffffffff);
verbose("MSR_IA32_EBL_CR_POWERON Returns 0x%X 0x%X\n", msr >> 32, msr & 0xffffffff);
/* get cpuid values */
branches/slice/i386/libsaio/biosfn.c
250250
251251
252252
253
253
254254
255
255
256256
257257
258258
#if DEBUG
{
int i;
printf("%d total ranges\n", count);getc();
verbose("%d total ranges\n", count);getc();
for (i=0, range = rangeArray; i<count; i++, range++) {
printf("range: type %d, base 0x%x, length 0x%x\n",
verbose("range: type %d, base 0x%x, length 0x%x\n",
range->type, (unsigned int)range->base, (unsigned int)range->length); getc();
}
}
branches/slice/i386/boot2/graphics.c
104104
105105
106106
107
107
108108
109109
110110
......
683683
684684
685685
686
687
686
687
688
689
690
691
692
693
694
688695
689696
690697
}
#if DEBUG
printf("Mode %x: %dx%dx%d mm:%d attr:%x\n",
verbose("Mode %x: %dx%dx%d mm:%d attr:%x\n",
*modePtr, modeInfo.XResolution, modeInfo.YResolution,
modeInfo.BitsPerPixel, modeInfo.MemoryModel,
modeInfo.ModeAttributes);
// Try to find a resolution if "Graphics Mode" setting is not available.
if ( count < 3 )
{
params[0] = DEFAULT_SCREEN_WIDTH;
params[1] = DEFAULT_SCREEN_HEIGHT;
// Use the default resolution if we don't have an initialized GUI.
/* if (gui.screen.width == 0 || gui.screen.height == 0)
{
gui.screen.width = DEFAULT_SCREEN_WIDTH;
gui.screen.height = DEFAULT_SCREEN_HEIGHT;
}
*/
params[0] = DEFAULT_SCREEN_WIDTH; //gui.screen.width;
params[1] = DEFAULT_SCREEN_HEIGHT; // gui.screen.height;
params[2] = 32;
}
branches/slice/i386/boot2/boot.c
192192
193193
194194
195
195
196196
197197
198198
......
307307
308308
309309
310
310
311311
312312
313313
......
346346
347347
348348
349
349
350350
351351
352352
......
354354
355355
356356
357
357
358358
359359
360360
......
363363
364364
365365
366
366
367367
368368
369369
......
388388
389389
390390
391
391
392392
393393
394394
......
472472
473473
474474
475
476
475
476
477
478
479
480
481
482
483
484
485
486
487
477488
478489
479490
if ( (gBootFileType == kNetworkDeviceType) && gUnloadPXEOnExit ) {
if ( (ret = nbpUnloadBaseCode()) != nbpStatusSuccess )
{
printf("nbpUnloadBaseCode error %d\n", (int) ret);
verbose("nbpUnloadBaseCode error %d\n", (int) ret);
sleep(2);
}
}
int part_no; /* partition number (1 based) */
#endif
#if DEBUG
printf("get bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x80 - flash-stick
verbose("get bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x80 - flash-stick
#endif
setBootGlobals(bvChain);
gBootVolume = selectBootVolume(bvChain);
#if DEBUG
printf("separated bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x81 - HDD
verbose("separated bvChain dev=%02x type=%02x part_no=%d\n", bvChain->biosdev, bvChain->type, bvChain->part_no); //dev=0x81 - HDD
pause();
#endif
if(init_module_system())
{
#if DEBUG
printf("begin load_all_modules\n");
verbose("begin load_all_modules\n");
pause();
#endif
execute_hook("ModulesLoaded", NULL, NULL, NULL, NULL);
#if DEBUG
printf("ModulesLoaded\n");
verbose("ModulesLoaded\n");
pause();
#endif
#endif
#if DEBUG
printf("After rescan\n");
verbose("After rescan\n");
pause();
#endif
// Other status (e.g. 0) means that we should proceed with boot.
/*
// Turn off any GUI elements
if( bootArgs->Video.v_display == GRAPHICS_MODE )
{
gui.devicelist.draw = false;
gui.bootprompt.draw = false;
gui.menu.draw = false;
gui.infobox.draw = false;
gui.logo.draw = false;
drawBackground();
updateVRAM();
}
*/
// Find out which version mac os we're booting.
getOSVersion(gMacOSVersion);
branches/slice/i386/boot2/modules.c
1414
1515
1616
17
17
1818
1919
2020
......
3535
3636
3737
38
38
3939
4040
41
41
4242
4343
4444
4545
46
46
4747
4848
4949
......
9292
9393
9494
95
96
95
96
9797
9898
9999
......
102102
103103
104104
105
105
106106
107107
108108
......
126126
127127
128128
129
129
130130
131131
132132
......
162162
163163
164164
165
165
166166
167167
168168
......
182182
183183
184184
185
185
186186
187187
188188
189
189
190190
191191
192192
193193
194194
195195
196
196
197197
198198
199199
......
319319
320320
321321
322
322
323323
324
324
325325
326326
327327
......
373373
374374
375375
376
376
377377
378378
379379
......
382382
383383
384384
385
385
386386
387387
388388
......
935935
936936
937937
938
938
939939
940940
941941
......
966966
967967
968968
969
969
970970
971971
972972
......
985985
986986
987987
988
988
989989
990990
991991
......
10321032
10331033
10341034
1035
1035
10361036
10371037
10381038
#endif
#if DEBUG_MODULES
#define DBG(x...)printf(x); getc()
#define DBG(x...)verbose(x); //getc()
#else
#define DBG(x...)
#endif
#if DEBUG_MODULES
#if 1 //DEBUG_MODULES
void print_hook_list()
{
printf("---Hook Table---\n");
msglog("---Hook Table---\n");
moduleHook_t* hooks = moduleCallbacks;
while(hooks)
{
printf("Hook: %s\n", hooks->name);
msglog("Hook: %s\n", hooks->name);
hooks = hooks->next;
}
}
}
else {
// The module does not have a valid start function
printf("Unable to start %s\n", SYMBOLS_MODULE);
getc();
verbose("Unable to start %s\n", SYMBOLS_MODULE);
//getc();
}
return 0;
}
/*
* Load all modules in the /Extra/modules/ directory
* Module depencdies will be loaded first
* MOdules will only be loaded once. When loaded a module must
* Modules will only be loaded once. When loaded a module must
* setup apropriete function calls and hooks as required.
* NOTE: To ensure a module loads after another you may
* link one module with the other. For dyld to allow this, you must
{
// failed to load
// free(tmp);
verbose("...failed to load\n");
DBG("...failed to load\n");
}
}
else
fh = open(modString, 0);
if(fh < 0)
{
printf("Unable to locate module %s\n", modString);
verbose("Unable to locate module %s\n", modString);
getc();
return 0;
}
// Notify the system that it was laoded
module_loaded(module/*moduleName, moduleVersion, moduleCompat*/);
(*module_start)();// Start the module
DBG("Module %s Loaded.\n", module);
verbose("Module %s Loaded.\n", module);
}
else {
// The module does not have a valid start function
printf("Unable to start %s\n", module);
verbose("Unable to start %s\n", module);
getc();
}
}
else
{
DBG("Unable to read in module %s\n.", module);
getc();
//getc();
}
close(fh);
return 1;
}
}
#if DEBUG_MODULES
#if 1 //DEBUG_MODULES
print_hook_list();
getc();
//getc();
#endif
}
}
else
{
printf("Invalid mach magic\n");
verbose("Invalid mach magic\n");
getc();
return NULL;
}
/*if(((struct mach_header*)binary)->filetype != MH_DYLIB)
{
printf("Module is not a dylib. Unable to load.\n");
verbose("Module is not a dylib. Unable to load.\n");
getc();
return NULL; // Module is in the incorrect format
}*/
}
else //if(strcmp(symbolName, SYMBOL_DYLD_STUB_BINDER) != 0)
{
printf("Unable to bind symbol %s\n", symbolName);
verbose("Unable to bind symbol %s\n", symbolName);
getc();
}
}
else //if(strcmp(symbolName, SYMBOL_DYLD_STUB_BINDER) != 0)
{
printf("Unable to bind symbol %s\n", symbolName);
verbose("Unable to bind symbol %s\n", symbolName);
getc();
}
segmentAddress += tmp + sizeof(void*);
}
else //if(strcmp(symbolName, SYMBOL_DYLD_STUB_BINDER) != 0)
{
printf("Unable to bind symbol %s\n", symbolName);
verbose("Unable to bind symbol %s\n", symbolName);
getc();
}
segmentAddress += (immediate * sizeof(void*)) + sizeof(void*);
}
else //if(strcmp(symbolName, SYMBOL_DYLD_STUB_BINDER) != 0)
{
printf("Unable to bind symbol %s\n", symbolName);
verbose("Unable to bind symbol %s\n", symbolName);
getc();
}
branches/slice/i386/boot2/boot.h
6767
6868
6969
70
7071
7172
7273
#define kWaitForKeypressKey"Wait"
/* AsereBLN: added the other keys */
#define kUseAtiROM"UseAtiROM"/* ati.c */
#define kAtiConfig"AtiConfig"/* ati.c */
#define kWake"Wake"/* boot.c */
#define kForceWake"ForceWake"/* boot.c */
#define kWakeImage"WakeImage"/* boot.c */
branches/slice/i386/boot2/drivers.c
755755
756756
757757
758
759
760
761
762
763
758
759
760
761
762
763
764764
765765
766766
......
787787
788788
789789
790
790
791791
792792
793793
unsigned long len;
#if 0
printf("kernel header:\n");
printf("signature: 0x%x\n", kernel_header->signature);
printf("compress_type: 0x%x\n", kernel_header->compress_type);
printf("adler32: 0x%x\n", kernel_header->adler32);
printf("uncompressed_size: 0x%x\n", kernel_header->uncompressed_size);
printf("compressed_size: 0x%x\n", kernel_header->compressed_size);
verbose("kernel header:\n");
verbose("signature: 0x%x\n", kernel_header->signature);
verbose("compress_type: 0x%x\n", kernel_header->compress_type);
verbose("adler32: 0x%x\n", kernel_header->adler32);
verbose("uncompressed_size: 0x%x\n", kernel_header->uncompressed_size);
verbose("compressed_size: 0x%x\n", kernel_header->compressed_size);
getc();
#endif
}
if (OSSwapBigToHostInt32(kernel_header->adler32) !=
Adler32(binary, uncompressed_size)) {
printf("adler mismatch\n");
verbose("adler mismatch\n");
return -1;
}
}
branches/slice/i386/boot2/ramdisk.c
124124
125125
126126
127
127
128128
129129
130130
......
185185
186186
187187
188
189
188
189
190190
191191
192192
......
217217
218218
219219
220
220
221221
222222
223223
224
224
225225
226226
227227
......
234234
235235
236236
237
237
238238
239
239
240240
241241
242242
243243
244
244
245245
246246
247247
248
248
249249
250250
251251
252252
253
253
254254
255255
256256
......
259259
260260
261261
262
262
263263
264264
265265
// Reset ramdisk bvr
gRAMDiskVolume = NULL;
printf("\nunmounting: done");
verbose("\nunmounting: done");
}
}
if(gRAMDiskVolume == NULL)
{
umountRAMDisk();
printf("\nRamdisk contains no partitions.\n");
pause();
verbose("\nRamdisk contains no partitions.\n");
//pause();
}
else
gRAMDiskBTAliased = mode;
if (mode)
{
printf("\nEnabled bt(0,0) alias.");
verbose("\nEnabled bt(0,0) alias.");
}
else
{
printf("\nDisabled bt(0,0) alias.");
verbose("\nDisabled bt(0,0) alias.");
}
}
{
struct multiboot_module * ramdisk_module = (void *)gRAMDiskMI->mi_mods_addr;
printf("\nfile: %s %d", gRAMDiskFile,
verbose("\nfile: %s %d", gRAMDiskFile,
ramdisk_module->mm_mod_end - ramdisk_module->mm_mod_start);
printf("\nalias: %s", gRAMDiskBTAliased ? "enabled" : "disabled");
verbose("\nalias: %s", gRAMDiskBTAliased ? "enabled" : "disabled");
// Display ramdisk information if available.
if (getValueForKey("Info", &val, &len, &bootInfo->ramdiskConfig))
{
printf("\ninfo: %s", val);
verbose("\ninfo: %s", val);
}
else
{
printf("\nramdisk info not available.");
verbose("\nramdisk info not available.");
}
}
else
{
printf("\nNo ramdisk mounted.");
verbose("\nNo ramdisk mounted.");
}
}
mountRAMDisk("bt(0,0)/Extra/Preboot.dmg");
if (gRAMDiskMI != NULL)
{
printf("\n");
verbose("\n");
return 0;
}
else
branches/slice/i386/modules/KextPatcher/kext_patcher.c
2828
2929
3030
31
31
3232
3333
3434
......
222222
223223
224224
225
225
226226
227227
228228
......
454454
455455
456456
457
457
458458
459459
460460
......
566566
567567
568568
569
569
570570
571571
572572
573573
574
574
575575
576576
577577
......
783783
784784
785785
786
787
786
787
788788
789789
790790
#endif
#if DEBUG_KEXT_PATCHER
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
zlib_result = inflateInit(&zstream);
if (Z_OK != zlib_result)
{
printf("ZLIB Error: %s\n", zstream.msg);
verbose("ZLIB Error: %s\n", zstream.msg);
getc();
}
else
char* orig_string = "0x04020000&amp;0xFFFE0000"; //XMLCastString(match_class);
printf("Attemting to replace '%s' with '%s'\n", orig_string, new_str);
verbose("Attemting to replace '%s' with '%s'\n", orig_string, new_str);
// TODO: verify string doesn't exist first.
/* deflate filled output buffer, meaning the data doesn't compress.
*/
DBG("Buffer FULL: deflated result is %d, avail: %d bytes, out: %d bytes, full: %d\n", zlib_result, compressed_size, zstream.total_out, full_size);
printf("Unable to patch AppleHDA\n");
verbose("Unable to patch AppleHDA\n");
}
else if (zlib_result != Z_STREAM_ERROR)
{
printf("AppleHDA: ZLIB Deflate Error: %s\n", zstream.msg);
verbose("AppleHDA: ZLIB Deflate Error: %s\n", zstream.msg);
getc();
}
{
/* deflate filled output buffer, meaning the data doesn't compress.
*/
printf("Deflated result is %d, in: %d bytes, out: %d bytes, full: %d\n", zlib_result, zstream.total_in, zstream.total_out, full_size);
printf("ERROR: Unable to compress patched kext, not enough room.\n");
verbose("Deflated result is %d, in: %d bytes, out: %d bytes, full: %d\n", zlib_result, zstream.total_in, zstream.total_out, full_size);
verbose("ERROR: Unable to compress patched kext, not enough room.\n");
pause();
}
branches/slice/i386/modules/KextPatcher/hex_editor.c
1414
1515
1616
17
17
1818
1919
2020
long index = 0;
int num_replaced = 0;
// NOTE: patehrn and replacement are null terminated. This may change later
// If I need to replce null bytes
// If I need to replace null bytes
if(!pattern ||
!replacement ||
branches/slice/i386/modules/ACPIPatcher/acpi_patcher.c
184184
185185
186186
187
187
188188
189189
190190
......
195195
196196
197197
198
198
199199
200200
201201
......
11041104
11051105
11061106
1107
1107
11081108
11091109
11101110
{
if (read (fd, tableAddr, file_size (fd))!=file_size (fd))
{
printf("Couldn't read table %s\n",dirspec);
verbose("Couldn't read table %s\n",dirspec);
free (tableAddr);
close (fd);
return NULL;
return tableAddr;
}
close (fd);
printf("Couldn't allocate memory for table \n", dirspec);
verbose("Couldn't allocate memory for table \n", dirspec);
}
//printf("Couldn't find table %s\n", filename);
return NULL;
else
{
rsdp_mod->RsdtAddress=0;
printf("RSDT not found or RSDT incorrect\n");
verbose("RSDT not found or RSDT incorrect\n");
}
if (version)
branches/slice/i386/modules/ACPIPatcher/ACPIPatcher.c
8989
9090
9191
92
92
9393
9494
9595
if (ACPIPatcher_rootuid == 11) ACPIPatcher_rootuid=0; //usually when _UID isnt present, it means uid is zero
else if (ACPIPatcher_rootuid < 0 || ACPIPatcher_rootuid > 9)
{
printf("PciRoot uid value wasnt found, using 0, if you want it to be 1, use -PciRootUID flag");
verbose("PciRoot uid value wasnt found, using 0, if you want it to be 1, use -PciRootUID flag");
ACPIPatcher_rootuid = 0;
}
out:
branches/slice/i386/modules/NVRAM/NVRAM.c
144144
145145
146146
147
147148
148149
149150
void NVRAM_start()
{
register_hook_callback("ExecKernel", &NVRAM_hook);
register_hook_callback("Kernel Start", &NVRAM_hook);
}
branches/slice/i386/modules/klibc/sha1hash.c
114114
115115
116116
117
117
118118
119119
120120
#ifdef VERBOSE /* SAK */
void SHAPrintContext(SHA1_CTX *context, char *msg){
printf("%s (%d,%d) %x %x %x %x %x\n",
verbose("%s (%d,%d) %x %x %x %x %x\n",
msg,
context->count[0], context->count[1],
context->state[0],
branches/slice/i386/modules/GUI/graphic_utils.c
7777
7878
7979
80
80
8181
8282
8383
......
9393
9494
9595
96
96
9797
9898
9999
clearScreenRows(0, 24);
setCursorPosition( 0, 0, 1 );
printf("Video modes supported:\n", VBEDecodeFP(const char *, vbeInfo.OEMStringPtr));
verbose("Video modes supported:\n", VBEDecodeFP(const char *, vbeInfo.OEMStringPtr));
// Loop through the mode list, and find the matching mode.
continue;
}
printf("Mode %x: %dx%dx%d mm:%d attr:%x\n",
verbose("Mode %x: %dx%dx%d mm:%d attr:%x\n",
*modePtr, modeInfo.XResolution, modeInfo.YResolution,
modeInfo.BitsPerPixel, modeInfo.MemoryModel,
modeInfo.ModeAttributes);
branches/slice/i386/modules/KernelPatcher/kernel_patcher.c
287287
288288
289289
290
290
291291
292292
293293
......
377377
378378
379379
380
380
381381
382382
383383
384384
385
385
386386
387387
388388
......
418418
419419
420420
421
421
422422
423423
424424
......
603603
604604
605605
606
606
607607
608608
609609
......
632632
633633
634634
635
635
636636
637637
638638
......
641641
642642
643643
644
644
645645
646646
647647
......
697697
698698
699699
700
700
701701
702702
703703
......
735735
736736
737737
738
738
739739
740740
741741
......
746746
747747
748748
749
749
750750
751751
752752
......
788788
789789
790790
791
791
792792
793793
794794
......
796796
797797
798798
799
799
800800
801801
802802
......
805805
806806
807807
808
808
809809
810810
811811
UInt32 panicAddr = symbol ? symbol->addr - textAddress: 0; //kernelSymbolAddresses[SYMBOL_PANIC] - textAddress;
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate _panic\n");
verbose("Unable to locate _panic\n");
return;
}
panicAddr -= (UInt32)kernelData;
// On 10.2.0+ kernels, this requires ~16 bytes
// Total: 24 bytes
printf("Running on a 10.2.0+ kernel\n");
verbose("Running on a 10.2.0+ kernel\n");
getc();
}
else {
printf("Running on a 10.0.0 kernel, patch unsupported\n");
verbose("Running on a 10.0.0 kernel, patch unsupported\n");
getc();
}
UInt32 panicAddr = symbol ? symbol->addr - textAddress: 0; //kernelSymbolAddresses[SYMBOL_PANIC] - textAddress;
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate _panic\n");
verbose("Unable to locate _panic\n");
return;
}
panicAddr -= (UInt32)kernelData;
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate _pmCPUExitHaltToOff\n");
verbose("Unable to locate _pmCPUExitHaltToOff\n");
return;
}
UInt32 patchLocation = symbol ? symbol->addr - textAddress + textSection: 0;
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_lapic_init");
verbose("Unable to locate %s\n", "_lapic_init");
return;
}
UInt32 panicAddr = symbol ? symbol->addr - textAddress: 0;
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_panic");
verbose("Unable to locate %s\n", "_panic");
return;
}
symbol = lookup_kernel_symbol("_panic");
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_panic");
verbose("Unable to locate %s\n", "_panic");
return;
}
UInt32 panicAddr = symbol->addr - textAddress;
kernSymbols_t *symbol = lookup_kernel_symbol("_lapic_interrupt");
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_lapic_interrupt");
verbose("Unable to locate %s\n", "_lapic_interrupt");
return;
}
symbol = lookup_kernel_symbol("_panic");
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_panic");
verbose("Unable to locate %s\n", "_panic");
return;
}
UInt32 panicAddr = symbol->addr - textAddress;
kernSymbols_t *symbol = lookup_kernel_symbol("_lapic_configure");
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_lapic_configure");
verbose("Unable to locate %s\n", "_lapic_configure");
return;
}
patchLocation = symbol->addr - textAddress + textSection;
symbol = lookup_kernel_symbol("_lapic_start");
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_lapic_start");
verbose("Unable to locate %s\n", "_lapic_start");
return;
}
lapicStart = symbol->addr;
symbol = lookup_kernel_symbol("_lapic_interrupt_base");
if(symbol == 0 || symbol->addr == 0)
{
printf("Unable to locate %s\n", "_lapic_interrupt_base");
verbose("Unable to locate %s\n", "_lapic_interrupt_base");
return;
}
lapicInterruptBase = symbol->addr;
branches/slice/i386/modules/Networking/Networking.c
1515
1616
1717
18
18
1919
2020
2121
#endif
#if DEBUG_ETHERNET
#define DBG(x...) printf(x)
#define DBG(x...) verbose(x)
#else
#define DBG(x...)
#endif
branches/slice/i386/modules/GraphicsEnabler/gma.c
1313
1414
1515
16
16
1717
1818
1919
......
9999
100100
101101
102
102
103103
104104
105105
......
152152
153153
154154
155
155
156156
157157
158158
#endif
#if DEBUG_GMA
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
if(!device)
{
printf("Failed initializing dev-prop string dev-entry, press any key...\n");
verbose("Failed initializing dev-prop string dev-entry, press any key...\n");
getc();
return false;
stringdata = malloc(sizeof(uint8_t) * string->length);
if(!stringdata)
{
printf("no stringdata press a key...\n");
verbose("no stringdata press a key...\n");
getc();
return false;
}
branches/slice/i386/modules/GraphicsEnabler/nvidia.c
6161
6262
6363
64
64
6565
6666
6767
......
512512
513513
514514
515
515
516516
517517
518518
519519
520520
521
521
522522
523523
524
524
525525
526526
527527
......
542542
543543
544544
545
545
546546
547547
548548
......
551551
552552
553553
554
554
555555
556556
557557
558
558
559559
560560
561561
......
753753
754754
755755
756
756
757757
758758
759759
......
761761
762762
763763
764
764
765765
766766
767767
......
841841
842842
843843
844
844
845845
846846
847847
......
873873
874874
875875
876
876
877877
878878
879879
......
887887
888888
889889
890
890
891891
892892
893893
......
899899
900900
901901
902
902
903903
904904
905905
#endif
#if DEBUG_NVIDIA
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
static int patch_nvidia_rom(uint8_t *rom)
{
if (!rom || (rom[0] != 0x55 && rom[1] != 0xaa)) {
printf("False ROM signature: 0x%02x%02x\n", rom[0], rom[1]);
verbose("False ROM signature: 0x%02x%02x\n", rom[0], rom[1]);
return PATCH_ROM_FAILED;
}
uint16_t dcbptr = swap16(read16(rom, 0x36));
if(!dcbptr) {
printf("no dcb table found\n");
verbose("no dcb table found\n");
return PATCH_ROM_FAILED;
}/* else
printf("dcb table at offset 0x%04x\n", dcbptr);
verbose("dcb table at offset 0x%04x\n", dcbptr);
*/
uint8_t *dcbtable = &rom[dcbptr];
uint8_t dcbtable_version = dcbtable[0];
headerlength = 8;
}
if (sig != 0x4edcbdcb) {
printf("bad display config block signature (0x%8x)\n", sig);
verbose("bad display config block signature (0x%8x)\n", sig);
return PATCH_ROM_FAILED;
}
} else if (dcbtable_version >= 0x14) { /* some NV15/16, and NV11+ */
strncpy(sig, (char *)&dcbtable[-7], 7);
recordlength = 10;
if (strcmp(sig, "DEV_REC")) {
printf("Bad Display Configuration Block signature (%s)\n", sig);
verbose("Bad Display Configuration Block signature (%s)\n", sig);
return PATCH_ROM_FAILED;
}
} else {
printf("ERROR: dcbtable_version is 0x%X\n", dcbtable_version);
verbose("ERROR: dcbtable_version is 0x%X\n", dcbtable_version);
return PATCH_ROM_FAILED;
}
charbuf[3];
if (hex == NULL || bin == NULL || len <= 0 || strlen(hex) != len * 2) {
printf("[ERROR] bin2hex input error\n");
verbose("[ERROR] bin2hex input error\n");
return -1;
}
p = (char *) hex;
for (i=0; i<len; i++) {
if (p[0] == '\0' || p[1] == '\0' || !isxdigit(p[0]) || !isxdigit(p[1])) {
printf("[ERROR] bin2hex '%s' syntax error\n", hex);
verbose("[ERROR] bin2hex '%s' syntax error\n", hex);
return -2;
}
buf[0] = *p++;
verbose("Using nVidia Video BIOS File %s (%d Bytes)\n", nvFilename, nvBiosOveride);
DBG("%s Signature 0x%02x%02x %d bytes\n", nvFilename, rom[0], rom[1], nvBiosOveride);
} else {
printf("ERROR: unable to open nVidia Video BIOS File %s\n", nvFilename);
verbose("ERROR: unable to open nVidia Video BIOS File %s\n", nvFilename);
return false;
}
} else {
// Valid Signature ?
if (rom[0] != 0x55 && rom[1] != 0xaa) {
printf("ERROR: Unable to locate nVidia Video BIOS\n");
verbose("ERROR: Unable to locate nVidia Video BIOS\n");
return false;
} else {
DBG("ROM Address 0x%x Signature 0x%02x%02x\n", nvRom, rom[0], rom[1]);
}
if ((nvPatch = patch_nvidia_rom(rom)) == PATCH_ROM_FAILED) {
printf("ERROR: nVidia ROM Patching Failed!\n");
verbose("ERROR: nVidia ROM Patching Failed!\n");
return false;
}
// Get Model from the OpROM
model = get_nvidia_model((rom_pci_header->vendor << 16) | rom_pci_header->device);
} else {
printf("nVidia incorrect PCI ROM signature: 0x%x\n", rom_pci_header->signature);
verbose("nVidia incorrect PCI ROM signature: 0x%x\n", rom_pci_header->signature);
}
}
branches/slice/i386/modules/GraphicsEnabler/ati.c
3434
3535
3636
37
37
3838
3939
4040
......
113113
114114
115115
116
117116
117
118
119
118120
119121
120122
......
134136
135137
136138
139
137140
138
139141
140142
141143
......
161163
162164
163165
166
167
164168
165169
166170
171
167172
168173
169
170
171
174
175
176
177
178
179
180
181
172182
173183
174184
175
185
186
187
188
189
190
176191
177192
178193
179194
195
180196
181
197
198
182199
183200
184201
......
198215
199216
200217
218
201219
202
203220
204221
205222
......
220237
221238
222239
223
224
225
226240
227241
242
243
244
245
246
228247
229248
230249
250
231251
232252
233
234
235
236
253
254
255
256
257
258
259
260
237261
238262
239
263
264
265
266
267
268
240269
241270
242271
......
436465
437466
438467
439
468
440469
441470
442471
......
529558
530559
531560
532
533
561
562
534563
535564
536565
......
615644
616645
617646
618
619
647
648
620649
621650
622651
......
727756
728757
729758
730
759
731760
732761
733762
......
751780
752781
753782
754
783
755784
756785
757786
#endif
#if DEBUG_ATI
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
// Known cards as of 2008/08/26
struct ati_chipsets_t ATIKnownChipsets[] = {
{ 0x00000000, "Unknown" } ,
{ 0x10029589, "ATI Radeon 2600 Series"} ,
{ 0x10029588, "ATI Radeon 2600 Series"} ,
{ 0x10029589, "ATI Radeon 3600 Series"} ,
{ 0x10029591, "ATI Radeon 3600 Series"} ,
{ 0x100294C1, "ATI Radeon 2400XT Series"} ,
{ 0x100294C3, "ATI Radeon 2400 Series"} ,
{ 0x100294C4, "ATI Radeon 2400 Series"} ,
{ 0x100294C6, "ATI Radeon 2400 Series"} ,
{ 0x100295C5, "ATI Radeon 3400 Series"} ,
{ 0x100295C7, "ATI Radeon 3400 Series"} ,
{ 0x100295C0, "ATI Radeon 3400 Series"} ,
{ 0x10029590, "ATI Radeon 3600 Series"} ,
{ 0x10029596, "ATI Radeon 3600 Series"} ,
{ 0x10029590, "ATI Radeon 3600 Series"} ,
{ 0x10029599, "ATI Radeon 3600 Series"} ,
{ 0x10029597, "ATI Radeon 3600 Series"} ,
{ 0x10029598, "ATI Radeon 3600 Series"} ,
{ 0x1002949E, "ATI Radeon 4600 Series"} ,
{ 0x10029480, "ATI Radeon 4600 Series"} ,
{ 0x10029488, "ATI Radeon 4600 Series"} ,
{ 0x100294B3, "ATI Radeon 4770 Series"} ,
{ 0x100294B5, "ATI Radeon 4770 Series"} ,
{ 0x10029540, "ATI Radeon 4500 Series"} ,
{ 0x10029541, "ATI Radeon 4500 Series"} ,
{ 0x1002954E, "ATI Radeon 4500 Series"} ,
{ 0x1002954F, "ATI Radeon 4300 Series"} ,
{ 0x10029552, "ATI Radeon 4300 Mobility Series"} ,
{ 0x10029553, "ATI Radeon 4500 Mobility Series"} ,
{ 0x1002954F, "ATI Radeon 4300 Series"} ,
{ 0x100294B3, "ATI Radeon 4770 Series"} ,
{ 0x100294B5, "ATI Radeon 4770 Series"} ,
{ 0x10029610, "ATI Radeon 3200 Mobility Series"} ,
{ 0x10029611, "ATI Radeon 3100 Mobility Series"} ,
{ 0x10029614, "ATI Radeon 3300 Mobility Series"} ,
{ 0x10029616, "AMD 760G Series"} ,
{ 0x10029710, "ATI Radeon 4200 Mobility Series"} ,
{ 0x10029714, "ATI Radeon 4290 Mobility Series"} ,
{ 0x10029715, "ATI Radeon 4250 Mobility Series"} ,
{ 0x100268B8, "ATI Radeon 5770 Series"} ,
{ 0x100268BE, "ATI Radeon 5750 Series"} ,
{ 0x10026898, "ATI Radeon 5870 Series"} ,
{ 0x10026899, "ATI Radeon 5850 Series"}
{ 0x10026899, "ATI Radeon 5850 Series"},
{ 0x1002689C, "ATI Radeon 5870 Series"} ,
{ 0x100268D8, "ATI Radeon 5690 Series"},
{ 0x100268D9, "ATI Radeon 5670 Series"},
{ 0x100268DA, "ATI Radeon 5630 Series"},
{ 0x100268F9, "ATI Radeon 5470 Series"}
};
struct ati_chipsets_t ATIKnownFramebuffers[] = {
{ 0x00000000, "Megalodon" },
{ 0x10029588, "Lamna"} ,
{ 0x10029589, "Lamna"} ,
{ 0x10029588, "Lamna"} ,
{ 0x10029591, "Lamna"} ,
{ 0x100294C1, "Iago"} ,
{ 0x100294C3, "Iago"} ,
{ 0x100294C4, "Iago"} ,
{ 0x100294C6, "Iago"} ,
{ 0x100295C5, "Iago"} ,
{ 0x100295C7, "Iago"} ,
{ 0x100295C0, "Iago"} ,
{ 0x10029590, "Megalodon"} ,
{ 0x10029596, "Megalodon"} ,
{ 0x10029590, "Megalodon"} ,
{ 0x10029599, "Megalodon"} ,
{ 0x10029597, "Megalodon"} ,
{ 0x10029598, "Megalodon"} ,
{ 0x1002945A, "Motmot"} ,
{ 0x1002945B, "Motmot"} ,
{ 0x1002944B, "Motmot"} ,
{ 0x10029490, "Peregrine"} ,
{ 0x10029498, "Peregrine"} ,
{ 0x1002949E, "Peregrine"} ,
{ 0x10029480, "Peregrine"} ,
{ 0x10029488, "Peregrine"} ,
{ 0x10029490, "Flicker"} ,
{ 0x10029498, "Flicker"} ,
{ 0x1002949E, "Flicker"} ,
{ 0x100294B3, "Flicker"},
{ 0x100294B5, "Flicker"},
{ 0x10029540, "Peregrine"} ,
{ 0x10029541, "Peregrine"} ,
{ 0x1002954E, "Peregrine"} ,
{ 0x1002954F, "Peregrine"} ,
{ 0x10029552, "Peregrine"} ,
{ 0x10029553, "Peregrine"} ,
{ 0x1002954F, "Peregrine"} ,
{ 0x100294B3, "Peregrine"},
{ 0x100294B5, "Peregrine"},
{ 0x100268B8, "Vervet"},
{ 0x10029610, "ATI Radeon 3200 Mobility Series"} ,
{ 0x10029611, "ATI Radeon 3100 Mobility Series"} ,
{ 0x10029614, "ATI Radeon 3300 Mobility Series"} ,
{ 0x10029616, "AMD 760G Series"} ,
{ 0x10029710, "ATI Radeon 4200 Mobility Series"} ,
{ 0x10029714, "ATI Radeon 4290 Mobility Series"} ,
{ 0x10029715, "ATI Radeon 4250 Mobility Series"} ,
{ 0x100268B8, "Vervet"},
{ 0x100268BE, "Vervet"},
{ 0x10026898, "Uakari"},
{ 0x10026899, "Uakari"}
{ 0x10026899, "Uakari"},
{ 0x1002689C, "Baboon"},
{ 0x100268D8, "Baboon"},
{ 0x100268D9, "Baboon"},
{ 0x100268DA, "Baboon"},
{ 0x100268F9, "Baboon"}
};
static uint32_t accessROM(pci_dt_t *ati_dev, unsigned int mode)
if (!device || !ati_dev) {
return 0;
}
printf("dumping pci config space, 256 bytes\n");
verbose("dumping pci config space, 256 bytes\n");
config_space = malloc(256);
for (i=0; i<=255; i++) {
config_space[i] = pci_config_read8( ati_dev->dev.addr, i);
return 0;
if(!DP_ADD_TEMP_VAL_DATA(device, ati_mvad))
return 0;
if(!DP_ADD_TEMP_VAL_DATA(device, ati_saved_config))
return 0;
//if(!DP_ADD_TEMP_VAL_DATA(device, ati_saved_config))
//return 0;
return 1;
}
return 0;
if(!DP_ADD_TEMP_VAL_DATA(device, ati_mvad_n4))
return 0;
if(!DP_ADD_TEMP_VAL_DATA(device, ati_saved_config_n4))
return 0;
//if(!DP_ADD_TEMP_VAL_DATA(device, ati_saved_config_n4))
//return 0;
return 1;
}
rom_size = 0x10000; //we dont need rest anyway;
}
} else {
printf("ERROR: unable to open ATI Video BIOS File %s\n", tmp);
verbose("ERROR: unable to open ATI Video BIOS File %s\n", tmp);
}
}
if (rom_size == 0) {
}
if (bios[0] == 0x55 && bios[1] == 0xaa) {
printf("Found bios image\n");
verbose("Found bios image\n");
bios_size = bios[2] * 512;
struct pci_rom_pci_header_t *rom_pci_header;
branches/slice/i386/modules/HPET/HPET.c
170170
171171
172172
173
173
174174
175175
176176
......
193193
194194
195195
196
196
197197
198198
199199
lpc_controllers_intel[i].name, lpc_dev->vendor_id, lpc_dev->device_id, rcba);
if (rcba == 0)
printf(" RCBA disabled; cannot force enable HPET\n");
verbose(" RCBA disabled; cannot force enable HPET\n");
else
{
val = REG32(rcba, 0x3404);
// verify if the job is done
val = REG32(rcba, 0x3404);
if (!(val & 0x80))
printf(" Failed to force enable HPET\n");
verbose(" Failed to force enable HPET\n");
}
break;
}
branches/slice/i386/modules/USBFix/usb.c
1717
1818
1919
20
20
2121
2222
2323
#endif
#if DEBUG_USB
#define DBG(x...)printf(x)
#define DBG(x...)verbose(x)
#else
#define DBG(x...)
#endif
branches/slice/i386/modules/Resolution/915resolution.c
299299
300300
301301
302
303
304
305
302
303
304
305
306306
307307
308308
......
351351
352352
353353
354
355
356
357
354
355
356
357
358358
359359
360360
map->ati_mode_table = (char *) &std_vesa->aModeTimings;
if (map->ati_mode_table == 0)
{
printf("Unable to locate the mode table.\n");
printf("Please run the program 'dump_bios' as root and\n");
printf("email the file 'vbios.dmp' to stomljen@yahoo.com.\n");
printf("Chipset: %d\n", map->chipset);
verbose("Unable to locate the mode table.\n");
verbose("Please run the program 'dump_bios' as root and\n");
verbose("email the file 'vbios.dmp' to stomljen@yahoo.com.\n");
verbose("Chipset: %d\n", map->chipset);
close_vbios(map);
return 0;
}
map->nv_mode_table = (char *) std_vesa->sModelines;
if (map->nv_mode_table == 0)
{
printf("Unable to locate the mode table.\n");
printf("Please run the program 'dump_bios' as root and\n");
printf("email the file 'vbios.dmp' to stomljen@yahoo.com.\n");
printf("Chipset: %s\n", map->chipset);
verbose("Unable to locate the mode table.\n");
verbose("Please run the program 'dump_bios' as root and\n");
verbose("email the file 'vbios.dmp' to stomljen@yahoo.com.\n");
verbose("Chipset: %s\n", map->chipset);
close_vbios(map);
return 0;
}
branches/slice/i386/modules/Resolution/edid.c
101101
102102
103103
104
104
105105
106106
107107
......
110110
111111
112112
113
114
113
114
115115
116116
117117
......
127127
128128
129129
130
131
132
130
131
132
133133
134134
135135
if ( reported > blocks_left )
{
printf("EDID claims %d more blocks left\n", reported);
verbose("EDID claims %d more blocks left\n", reported);
}
if ( (last_reported <= reported && last_reported != -1)
//|| reported == MAGIC
)
{
printf("Last reported %d\n", last_reported);
printf( "EDID blocks left is wrong.\n"
verbose("Last reported %d\n", last_reported);
verbose( "EDID blocks left is wrong.\n"
"Your EDID is probably invalid.\n");
return 0;
}
}
else
{
printf("Invalid block %d\n", blocks_left);
printf("Header1 = %d", memcmp(edidInfo, header1, sizeof(header1)) );
printf("Header2 = %d", memcmp(edidInfo, header2, sizeof(header2)) );
verbose("Invalid block %d\n", blocks_left);
verbose("Header1 = %d", memcmp(edidInfo, header1, sizeof(header1)) );
verbose("Header2 = %d", memcmp(edidInfo, header2, sizeof(header2)) );
return 0;
}
}
branches/slice/i386/modules/Memory/spd.c
255255
256256
257257
258
258
259259
260260
261261
262
263
264
265
266
262267
263
268
269
270
264271
265272
266273
......
272279
273280
274281
282
275283
276
284
285
286
277287
278288
279289
{
int i, speed;
uint8_t spd_size, spd_type;
uint32_t base;
uint32_t base, mmio, hostc;
bool dump = false;
RamSlotInfo_t* slot;
uint16_t cmd = pci_config_read16(smbus_dev->dev.addr, 0x04);
DBG("SMBus CmdReg: 0x%x\n", cmd);
pci_config_write16(smbus_dev->dev.addr, 0x04, cmd | 1);
mmio = pci_config_read32(smbus_dev->dev.addr, 0x10);// & ~0x0f;
base = pci_config_read16(smbus_dev->dev.addr, 0x20) & 0xFFFE;
DBG("Scanning smbus_dev <%04x, %04x> ...\n",smbus_dev->vendor_id, smbus_dev->device_id);
hostc = pci_config_read8(smbus_dev->dev.addr, 0x40);
verbose("Scanning SMBus [%04x:%04x], mmio: 0x%x, ioport: 0x%x, hostc: 0x%x\n",
smbus_dev->vendor_id, smbus_dev->device_id, mmio, base, hostc);
getBoolForKey("DumpSPD", &dump, &bootInfo->bootConfig);
bool fullBanks = // needed at least for laptops
//DBG("Scanning slot %d\n", i);
slot = &Platform->RAM.DIMM[i];
spd_size = smb_read_byte_intel(base, 0x50 + i, 0);
DBG("SPD[0] (size): %d @0x%x\n", spd_size, 0x50 + i);
// Check spd is present
if (spd_size && (spd_size != 0xff) ) {
if (spd_size && (spd_size != 0xff))
{
slot->spd = spdbuf;
slot->InUse = true;
branches/slice/i386/modules/Memory/dram_controllers.c
2424
2525
2626
27
27
2828
2929
3030
#endif
#if DEBUG_DRAM
#define DBG(x...) printf(x)
#define DBG(x...) verbose(x)
#else
#define DBG(x...)
#endif
branches/slice/i386/util/bdmesg.c
1818
1919
2020
21
21
2222
2323
2424
io_registry_entry_t root = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
if (!root)
{
printf("IORegistryEntry \"IOIOService:/\" not found.\n");
printf("IORegistryEntry \"IOService:/\" not found.\n");
return 0;
}
branches/slice/revision
1
1
676:681
676:682
branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
6060
6161
6262
63
64
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
6581
6682
6783
......
7995
8096
8197
82
83
84
85
98
99
100
101
102
103
104
105
106
107
86108
87109
88110
......
110132
111133
112134
113
114135
115136
116137
......
125146
126147
127148
149
150
151
152
153
154
155
128156
129157
130158
......
366394
367395
368396
369
397
370398
371399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
372468
373469
374470
375
376
377
378
379
380471
381
472
382473
383
384
385
386
474
475
476
477
387478
388
389
479
480
390481
391
482
392483
393484
394
395
485
486
396487
397488
398
489
399490
400
401
402
403
491
492
493
494
404495
405
406
496
497
407498
408
499
409500
410
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
411519
412
520
413521
522
523
414524
415
525
526
527
528
529
530
531
532
533
534
535
416536
417537
418
419
538
539
420540
421541
422
542
423543
424
425
426
427
544
545
546
547
428548
429
430
549
550
431551
432
552
433553
434
435
554
555
556
436557
437558
438559
......
9001021
9011022
9021023
1024
1025
1026
1027
1028
1029
1030
9031031
9041032
9051033
......
9201048
9211049
9221050
923
924
925
926
927
928
929
9301051
9311052
9321053
......
9371058
9381059
9391060
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
9571061
9581062
9591063
PBXFindDataSource_LocationID,
);
};
PBXPerProjectTemplateStateSaveDate = 314481806;
PBXWorkspaceStateSaveDate = 314481806;
PBXConfiguration.PBXFileTableDataSource3.PBXSymbolsDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXSymbolsDataSource_SymbolNameID;
PBXFileTableDataSourceColumnWidthsKey = (
16,
200,
50,
665.20849609375,
);
PBXFileTableDataSourceColumnsKey = (
PBXSymbolsDataSource_SymbolTypeIconID,
PBXSymbolsDataSource_SymbolNameID,
PBXSymbolsDataSource_SymbolTypeID,
PBXSymbolsDataSource_ReferenceNameID,
);
};
PBXPerProjectTemplateStateSaveDate = 314796425;
PBXWorkspaceStateSaveDate = 314796425;
};
perUserProjectItems = {
120DFB1712BA3A4D00C7EAC8 /* PBXTextBookmark */ = 120DFB1712BA3A4D00C7EAC8 /* PBXTextBookmark */;
124C494B12B8EA5D005AA276 /* PBXTextBookmark */ = 124C494B12B8EA5D005AA276 /* PBXTextBookmark */;
1267813012B7B13E00A25CED /* PBXTextBookmark */ = 1267813012B7B13E00A25CED /* PBXTextBookmark */;
12679BA312BE822E00E3637F /* PBXTextBookmark */ = 12679BA312BE822E00E3637F /* PBXTextBookmark */;
1269260612BC99AD004D09F1 /* PBXTextBookmark */ = 1269260612BC99AD004D09F1 /* PBXTextBookmark */;
1299583012BEA42800C307EC /* PBXTextBookmark */ = 1299583012BEA42800C307EC /* PBXTextBookmark */;
1299583112BEA42800C307EC /* PBXTextBookmark */ = 1299583112BEA42800C307EC /* PBXTextBookmark */;
1299583312BEA42800C307EC /* PBXTextBookmark */ = 1299583312BEA42800C307EC /* PBXTextBookmark */;
1279BD7112BF4D8700612F62 /* PBXTextBookmark */ = 1279BD7112BF4D8700612F62 /* PBXTextBookmark */;
1288318212C3608100EA4CB2 /* PBXTextBookmark */ = 1288318212C3608100EA4CB2 /* PBXTextBookmark */;
128835DC12C366AB00EA4CB2 /* PBXTextBookmark */ = 128835DC12C366AB00EA4CB2 /* PBXTextBookmark */;
128835F612C3681F00EA4CB2 /* PBXTextBookmark */ = 128835F612C3681F00EA4CB2 /* PBXTextBookmark */;
1288360C12C3690C00EA4CB2 /* PBXTextBookmark */ = 1288360C12C3690C00EA4CB2 /* PBXTextBookmark */;
1288361712C3698700EA4CB2 /* PBXTextBookmark */ = 1288361712C3698700EA4CB2 /* PBXTextBookmark */;
1288362912C3699600EA4CB2 /* PBXTextBookmark */ = 1288362912C3699600EA4CB2 /* PBXTextBookmark */;
128A97B712C2336000600556 /* PBXTextBookmark */ = 128A97B712C2336000600556 /* PBXTextBookmark */;
128A97B812C2336000600556 /* PBXTextBookmark */ = 128A97B812C2336000600556 /* PBXTextBookmark */;
128A9AF412C233CE00600556 /* PBXTextBookmark */ = 128A9AF412C233CE00600556 /* PBXTextBookmark */;
1299A51F12B3C328007ED516 /* PBXTextBookmark */ = 1299A51F12B3C328007ED516 /* PBXTextBookmark */;
1299A55612B3C4DF007ED516 /* PBXTextBookmark */ = 1299A55612B3C4DF007ED516 /* PBXTextBookmark */;
12AB04BD12B663F5005A745F /* PBXTextBookmark */ = 12AB04BD12B663F5005A745F /* PBXTextBookmark */;
12D6232512BA5F380032F367 /* PBXTextBookmark */ = 12D6232512BA5F380032F367 /* PBXTextBookmark */;
12D6232612BA5F380032F367 /* PBXTextBookmark */ = 12D6232612BA5F380032F367 /* PBXTextBookmark */;
12DCD38E12BBA5D600A20635 /* PBXTextBookmark */ = 12DCD38E12BBA5D600A20635 /* PBXTextBookmark */;
12DCD38F12BBA5D600A20635 /* PBXTextBookmark */ = 12DCD38F12BBA5D600A20635 /* PBXTextBookmark */;
12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = 12E17AE612B2BA9B00607D8E /* PBXTextBookmark */;
12E6FB5712BB458400C2A021 /* PBXTextBookmark */ = 12E6FB5712BB458400C2A021 /* PBXTextBookmark */;
12EFD98A12B510D9002A1712 /* PBXTextBookmark */ = 12EFD98A12B510D9002A1712 /* PBXTextBookmark */;
userBuildSettings = {
};
};
08FB7796FE84155DC02AAC07 /* main.c */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {903, 304}}";
sepNavSelRange = "{192, 7}";
sepNavVisRange = "{0, 235}";
};
};
12078D9812BA5AF400A1C013 /* fake_efi.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
vrLen = 894;
vrLoc = 14871;
};
12679BA712BE822E00E3637F /* boot.c */ = {
1269260B12BC9B1B004D09F1 /* acpi_patcher.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = acpi_patcher.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ACPIPatcher/acpi_patcher.c;
sourceTree = "<absolute>";
};
1279BD7112BF4D8700612F62 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12D170AB12BF114400B78E60 /* cpu.c */;
name = "cpu.c: 13";
rLen = 0;
rLoc = 269;
rType = 0;
vrLen = 446;
vrLoc = 0;
};
1279BD7512BF4D8700612F62 /* ACPIPatcher.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = ACPIPatcher.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ACPIPatcher/ACPIPatcher.c;
sourceTree = "<absolute>";
};
1288318212C3608100EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 128A9AF812C233CE00600556 /* Makefile */;
name = "Makefile: 14";
rLen = 6;
rLoc = 217;
rType = 0;
vrLen = 858;
vrLoc = 0;
};
1288318612C3608100EA4CB2 /* ati.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
name = ati.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GraphicsEnabler/ati.h;
sourceTree = "<absolute>";
};
128835DC12C366AB00EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1288318612C3608100EA4CB2 /* ati.h */;
name = "ati.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 1032;
vrLoc = 0;
};
128835DE12C366AB00EA4CB2 /* modules.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = modules.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/modules.c;
sourceTree = "<absolute>";
};
128835F612C3681F00EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 128835DE12C366AB00EA4CB2 /* modules.c */;
name = "modules.c: 231";
rLen = 17;
rLoc = 5492;
rType = 0;
vrLen = 833;
vrLoc = 4457;
};
128835FD12C368BF00EA4CB2 /* boot.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = boot.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/boot.c;
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {903, 9698}}";
sepNavSelRange = "{16367, 7}";
sepNavVisRange = "{15853, 1136}";
};
};
1269260612BC99AD004D09F1 /* PBXTextBookmark */ = {
1288360C12C3690C00EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12DCD39312BBA5D600A20635 /* NVRAM.c */;
name = "NVRAM.c: 147";
rLen = 14;
rLoc = 4792;
fRef = 128835FD12C368BF00EA4CB2 /* boot.c */;
name = "boot.c: 488";
rLen = 0;
rLoc = 14514;
rType = 0;
vrLen = 574;
vrLoc = 4564;
vrLen = 1506;
vrLoc = 16104;
};
1269260B12BC9B1B004D09F1 /* acpi_patcher.c */ = {
1288360E12C3690C00EA4CB2 /* pci_root.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = acpi_patcher.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/ACPIPatcher/acpi_patcher.c;
name = pci_root.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/pci_root.c;
sourceTree = "<absolute>";
};
1299583012BEA42800C307EC /* PBXTextBookmark */ = {
1288361712C3698700EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12679BA712BE822E00E3637F /* boot.c */;
name = "boot.c: 549";
rLen = 7;
rLoc = 16367;
fRef = 1288360E12C3690C00EA4CB2 /* pci_root.c */;
name = "pci_root.c: 22";
rLen = 11;
rLoc = 431;
rType = 0;
vrLen = 1136;
vrLoc = 15853;
vrLen = 735;
vrLoc = 0;
};
1299583112BEA42800C307EC /* PBXTextBookmark */ = {
1288362912C3699600EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1299583212BEA42800C307EC /* cpu.c */;
fRef = 1288362A12C3699600EA4CB2 /* pci_root.c */;
name = "pci_root.c: 25";
rLen = 11;
rLoc = 470;
rType = 0;
vrLen = 733;
vrLoc = 0;
};
1288362A12C3699600EA4CB2 /* pci_root.c */ = {
isa = PBXFileReference;
name = pci_root.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/pci_root.c;
sourceTree = "<absolute>";
};
128A97B712C2336000600556 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1279BD7512BF4D8700612F62 /* ACPIPatcher.c */;
name = "ACPIPatcher.c: 61";
rLen = 8;
rLoc = 4274;
rLoc = 1715;
rType = 0;
vrLen = 561;
vrLoc = 1350;
};
1299583212BEA42800C307EC /* cpu.c */ = {
128A97B812C2336000600556 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 08FB7796FE84155DC02AAC07 /* main.c */;
name = "main.c: 10";
rLen = 7;
rLoc = 192;
rType = 0;
vrLen = 235;
vrLoc = 0;
};
128A97BC12C2336000600556 /* USBFix.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = cpu.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/cpu.c;
name = USBFix.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/USBFix/USBFix.c;
sourceTree = "<absolute>";
};
1299583312BEA42800C307EC /* PBXTextBookmark */ = {
128A9AF412C233CE00600556 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1299583412BEA42800C307EC /* cpu.c */;
name = "cpu.c: 133";
rLen = 8;
rLoc = 4274;
fRef = 128A97BC12C2336000600556 /* USBFix.c */;
name = "USBFix.c: 31";
rLen = 14;
rLoc = 559;
rType = 0;
vrLen = 967;
vrLoc = 3935;
vrLen = 454;
vrLoc = 145;
};
1299583412BEA42800C307EC /* cpu.c */ = {
128A9AF812C233CE00600556 /* Makefile */ = {
isa = PBXFileReference;
name = cpu.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/cpu.c;
lastKnownFileType = sourcecode.make;
name = Makefile;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/HPET/Makefile;
sourceTree = "<absolute>";
};
1299A51F12B3C328007ED516 /* PBXTextBookmark */ = {
path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/libsaio/pci_setup.c;
sourceTree = "<absolute>";
};
12D170AB12BF114400B78E60 /* cpu.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = cpu.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/cpu.c;
sourceTree = "<absolute>";
};
12D6232512BA5F380032F367 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12078D9812BA5AF400A1C013 /* fake_efi.c */;
vrLen = 419;
vrLoc = 398;
};
12DCD38A12BBA53700A20635 /* modules.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = modules.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/modules.c;
sourceTree = "<absolute>";
};
12DCD38E12BBA5D600A20635 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12F7FF0412BB9F3200949DEC /* ntfs_private.h */;
vrLen = 1189;
vrLoc = 0;
};
12DCD38F12BBA5D600A20635 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12DCD38A12BBA53700A20635 /* modules.c */;
name = "modules.c: 1274";
rLen = 10;
rLoc = 29698;
rType = 0;
vrLen = 855;
vrLoc = 29322;
};
12DCD39312BBA5D600A20635 /* NVRAM.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = NVRAM.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/NVRAM/NVRAM.c;
sourceTree = "<absolute>";
};
12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12B90A5712B2AE1300FE287A /* 915resolution.h */;
branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
274274
275275
276276
277
278
279
277280
278281
279282
......
299302
300303
301304
302
305
303306
304307
305308
......
310313
311314
312315
316
317
313318
314319
315320
316321
317322
318
323
319324
320325
321326
......
323328
324329
325330
326
331
327332
328333
329334
330
335
331336
332337
333338
......
378383
379384
380385
381
382
383386
384387
385388
386
387
389
390
391
392
393
394
395
396
397
388398
389399
390400
......
396406
397407
398408
399
409
400410
401
411
402412
403413
404414
405415
406
416
407417
408418
409
410
411419
412420
413421
......
418426
419427
420428
421
429
422430
423
431
424432
425433
426434
427435
428
436
429437
430438
431439
......
444452
445453
446454
447
455
448456
449
457
450458
451459
452460
......
584592
585593
586594
587
595
588596
589597
590598
591599
592
600
593601
594602
595603
......
666674
667675
668676
669
677
670678
671679
672680
......
788796
789797
790798
791
799
792800
793
794
795
796
797
801
802
803
804
805
798806
799807
800808
......
828836
829837
830838
831
839
832840
833841
834842
......
837845
838846
839847
840
848
841849
842850
843851
......
861869
862870
863871
864
872
865873
866874
867875
......
884892
885893
886894
887
888
895
896
889897
890898
891899
892900
893
901
894902
895903
896904
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>17</integer>
<integer>2</integer>
<integer>1</integer>
<integer>0</integer>
</array>
</array>
<real>164</real>
</array>
<key>RubberWindowFrame</key>
<string>174 184 1172 694 0 0 1440 878 </string>
<string>243 138 1172 694 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>cpu.c</string>
<string>pci_root.c</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>cpu.c</string>
<string>pci_root.c</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>1299583312BEA42800C307EC</string>
<string>1288362912C3699600EA4CB2</string>
<key>history</key>
<array>
<string>12121ED112B261EA00207E55</string>
<string>12FC0E9412BB65A800E9CFA8</string>
<string>12F7FF0012BB9F3200949DEC</string>
<string>12DCD38E12BBA5D600A20635</string>
<string>12DCD38F12BBA5D600A20635</string>
<string>1269260612BC99AD004D09F1</string>
<string>1236A82312BD6023003F1DA9</string>
<string>12BB721512BE659500B11948</string>
<string>12679BA312BE822E00E3637F</string>
<string>1299583012BEA42800C307EC</string>
<string>1299583112BEA42800C307EC</string>
<string>1279BD7112BF4D8700612F62</string>
<string>128A97B712C2336000600556</string>
<string>128A97B812C2336000600556</string>
<string>128A9AF412C233CE00600556</string>
<string>1288318212C3608100EA4CB2</string>
<string>128835DC12C366AB00EA4CB2</string>
<string>128835F612C3681F00EA4CB2</string>
<string>1288360C12C3690C00EA4CB2</string>
<string>1288361712C3698700EA4CB2</string>
</array>
</dict>
<key>SplitCount</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {964, 351}}</string>
<string>{{0, 0}, {964, 470}}</string>
<key>RubberWindowFrame</key>
<string>174 184 1172 694 0 0 1440 878 </string>
<string>243 138 1172 694 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>351pt</string>
<string>470pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 356}, {964, 297}}</string>
<string>{{0, 475}, {964, 178}}</string>
<key>RubberWindowFrame</key>
<string>174 184 1172 694 0 0 1440 878 </string>
<string>243 138 1172 694 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
<string>297pt</string>
<string>178pt</string>
</dict>
</array>
<key>Proportion</key>
</array>
<key>TableOfContents</key>
<array>
<string>1299583512BEA42800C307EC</string>
<string>1288362B12C3699600EA4CB2</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>1299583612BEA42800C307EC</string>
<string>1288362C12C3699600EA4CB2</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>1CD10A99069EF8BA00B06720</string>
<string>12C26D3512B0DDFC00AF7F4B</string>
<string>/Users/slice/Projects/Chameleons/chameleon/branches/slice/ChamMek/ChamMek.xcodeproj</string>
</array>
<key>WindowString</key>
<string>174 184 1172 694 0 0 1440 878 </string>
<string>243 138 1172 694 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
<key>TableOfContents</key>
<array>
<string>12C26D3512B0DDFC00AF7F4B</string>
<string>1299582212BEA40900C307EC</string>
<string>1288362D12C3699600EA4CB2</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
<string>1236A82512BD6023003F1DA9</string>
<string>1288362E12C3699600EA4CB2</string>
<string>1C162984064C10D400B95A72</string>
<string>1236A82612BD6023003F1DA9</string>
<string>1236A82712BD6023003F1DA9</string>
<string>1236A82812BD6023003F1DA9</string>
<string>1236A82912BD6023003F1DA9</string>
<string>1236A82A12BD6023003F1DA9</string>
<string>1288362F12C3699600EA4CB2</string>
<string>1288363012C3699600EA4CB2</string>
<string>1288363112C3699600EA4CB2</string>
<string>1288363212C3699600EA4CB2</string>
<string>1288363312C3699600EA4CB2</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string>cpu.c</string>
<string>pci_root.c</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Frame</key>
<string>{{0, 0}, {1109, 510}}</string>
<key>RubberWindowFrame</key>
<string>254 61 1109 816 0 0 1440 878 </string>
<string>331 62 1109 816 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Frame</key>
<string>{{0, 515}, {1109, 260}}</string>
<key>RubberWindowFrame</key>
<string>254 61 1109 816 0 0 1440 878 </string>
<string>331 62 1109 816 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>1299582C12BEA40900C307EC</string>
<string>1299582D12BEA40900C307EC</string>
<string>1288360A12C3690800EA4CB2</string>
<string>1288360B12C3690800EA4CB2</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
<key>WindowString</key>
<string>254 61 1109 816 0 0 1440 878 </string>
<string>331 62 1109 816 0 0 1440 878 </string>
<key>WindowToolGUID</key>
<string>1C530D57069F1CE1000CFCEE</string>
<key>WindowToolIsVisible</key>

Archive Download the corresponding diff file

Revision: 689