Chameleon

Chameleon Commit Details

Date:2011-03-03 08:31:43 (8 years 4 months ago)
Author:Sergey Slice
Commit:749
Parents: 748
Message:some patches from Kabyl and Meklort
Changes:
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
M/branches/slice/revision
M/branches/slice/i386/boot2/graphics.c
M/branches/slice/i386/modules/ATI5000Enabler/ati5.c
M/branches/slice/i386/modules/GUI/GUI_module.c
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
M/branches/slice/i386/boot2/boot.c
M/branches/slice/i386/modules/GUI/Makefile
M/branches/slice/i386/modules/GUI/graphic_utils.c
M/branches/slice/i386/modules/KextPatcher/kext_patcher.c
M/branches/slice/i386/libsaio/disk.c
M/branches/slice/i386/boot2/modules.c
M/branches/slice/i386/modules/GUI/gui.c

File differences

branches/slice/i386/libsaio/disk.c
13011301
13021302
13031303
1304
1305
1306
1307
1308
1309
13041310
13051311
13061312
0, 0, 0, 0, 0, 0, NTFSGetDescription,
(BVFree)free, 0, kBIOSDevTypeHardDrive, 0);
break;
case FDISK_LINUX:
bvr = newGPTBVRef(biosdev, gptID, gptMap->ent_lba_start, gptMap,
0, 0, 0, 0, 0, 0, EX2GetDescription,
(BVFree)free, 0, kBIOSDevTypeHardDrive, 0);
break;
#endif
default:
bvr = newGPTBVRef(biosdev, gptID, gptMap->ent_lba_start, gptMap,
branches/slice/i386/boot2/graphics.c
739739
740740
741741
742
742
743743
744744
745745
//video_mode(1);
}
}
else video_mode(1);
//else video_mode(1);
}
if ( (mode == VGA_TEXT_MODE) || (err != errSuccess) )
branches/slice/i386/boot2/boot.c
205205
206206
207207
208
208
209209
210
210
211211
212212
213213
214214
215
215216
216217
217218
......
521522
522523
523524
524
525
525526
526527
527528
......
700701
701702
702703
703
704
704705
705706
706707
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL);// Notify modules that the kernel is about to be started
if (bootArgs->Video.v_display == VGA_TEXT_MODE)
if (bootArgs->Video.v_display == VGA_TEXT_MODE || gVerboseMode)
{
setVideoMode( GRAPHICS_MODE, 0 );
//setVideoMode( GRAPHICS_MODE, 0 );
// Draw gray screen. NOTE: no boot image, that's in the gui module
#ifndef OPTION_ROM
if(!gVerboseMode) drawColorRectangle(0, 0, DEFAULT_SCREEN_WIDTH, DEFAULT_SCREEN_HEIGHT, 0x01); //Slice -???
#endif
setVideoMode( GRAPHICS_MODE, 0 );
}
if (getValueForKey(kKernelCacheKey, &val, &len, &bootInfo->bootConfig) == true) {
strlcpy(gBootKernelCacheFile, val, len+1);
} else {
if(gMacOSVersion[3] == '6') {
if(gMacOSVersion[3] >= '6') {
sprintf(gBootKernelCacheFile, "kernelcache_%s", /*kDefaultCachePathSnow,*/ (archCpuType == CPU_TYPE_I386) ? "i386" : "x86_64"); //, adler32);
msglog("search for kernelcache %s\n", gBootKernelCacheFile);
int lnam = sizeof(gBootKernelCacheFile) + 9; //with adler32
//config_file_t systemVersion;
const char *val;
int len;
msglog("Address loadConfigFile=%x bootInfo=%x\n", &loadConfigFile, &bootInfo);
//msglog("Address loadConfigFile=%x bootInfo=%x\n", &loadConfigFile, &bootInfo);
if (!loadConfigFile("/System/Library/CoreServices/SystemVersion.plist", &systemVersion))
{
valid = true;
branches/slice/i386/boot2/modules.c
8787
8888
8989
90
90
9191
9292
9393
......
341341
342342
343343
344
345
346
344347
345348
346349
......
557560
558561
559562
560
563
561564
562565
563566
564
567
565568
566569
567570
......
578581
579582
580583
581
584
582585
583586
584587
585
588
586589
587590
588591
......
624627
625628
626629
627
628
630
631
632
633
634
629635
630636
631637
......
10951101
10961102
10971103
1098
1099
11001104
1101
1105
11021106
1103
11041107
1105
11061108
11071109
11081110
/*
* 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
UInt32 binaryIndex = 0;
UInt16 cmd = 0;
textSection = 0;
textAddress = 0;// reinitialize text location in case it doesn't exist;
// Parse through the load commands
if(((struct mach_header*)binary)->magic == MH_MAGIC)
{
{
// If the symbol is exported by this module
if(symbolEntry->n_value &&
symbol_handler(symbolString + symbolEntry->n_un.n_strx, (long long)base + symbolEntry->n_value, is64) != 0xFFFFFFFF)
symbol_handler(symbolString + symbolEntry->n_un.n_strx, textAddress ? (long long)base + symbolEntry->n_value : symbolEntry->n_value, is64) != 0xFFFFFFFF)
{
// Module start located. Start is an alias so don't register it
module_start = base + symbolEntry->n_value;
module_start = textAddress ? base + symbolEntry->n_value : symbolEntry->n_value;
}
symbolEntry++;
// If the symbol is exported by this module
if(symbolEntry->n_value &&
symbol_handler(symbolString + symbolEntry->n_un.n_strx, (long long)base + symbolEntry->n_value, is64) != 0xFFFFFFFF)
symbol_handler(symbolString + symbolEntry->n_un.n_strx, textAddress ? (long long)base + symbolEntry->n_value : symbolEntry->n_value, is64) != 0xFFFFFFFF)
{
// Module start located. Start is an alias so don't register it
module_start = base + symbolEntry->n_value;
module_start = textAddress ? base + symbolEntry->n_value : symbolEntry->n_value;
}
symbolEntry++;
switch(opcode)
{
case REBASE_OPCODE_DONE:
// Rebase complete.
//done = 1;
// Rebase complete, reset vars
immediate = 0;
opcode = 0;
type = 0;
segmentAddress = 0;
default:
break;
return 1;
}
else
{
return 0;
}
}
}
/*
*execute_hook( const char* name )
*name - Name of the module hook
branches/slice/i386/modules/KextPatcher/kext_patcher.c
222222
223223
224224
225
225
226226
227227
228228
......
318318
319319
320320
321
321
322322
323323
324324
......
448448
449449
450450
451
451
452452
453453
454454
......
566566
567567
568568
569
569
570570
571571
572572
573573
574
574
575575
576576
577577
......
594594
595595
596596
597
597
598598
599599
600600
......
672672
673673
674674
675
675
676676
677677
678678
......
783783
784784
785785
786
787
786
787
788788
789789
790790
zlib_result = inflateInit(&zstream);
if (Z_OK != zlib_result)
{
verbose("ZLIB Error: %s\n", zstream.msg);
printf("ZLIB Error: %s\n", zstream.msg);
getc();
}
else
// re alder32 the new mkext2 package
// re adler32 the new mkext2 package
MKEXT_HDR_CAST(package)->adler32 =
MKEXT_SWAP(Adler32((unsigned char *)&package->version,
MKEXT_GET_LENGTH(package) - 0x10));
TagPtr match_class =XMLCastArray(XMLGetProperty(personality, (const char*)"IOPCIClassMatch"));
char* new_str = malloc(strlen("0xXXXX000&0xFFFE0000")+1);
char* new_str = malloc(sizeof("0xXXXX000&0xFFFE0000"));
sprintf(new_str, "0x04030000&0xFFFE0000"); // todo, pass in actual class id
/* 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);
verbose("Unable to patch AppleHDA\n");
printf("Unable to patch AppleHDA\n");
}
else if (zlib_result != Z_STREAM_ERROR)
{
verbose("AppleHDA: ZLIB Deflate Error: %s\n", zstream.msg);
printf("AppleHDA: ZLIB Deflate Error: %s\n", zstream.msg);
getc();
}
TagPtr match_names =XMLCastArray(XMLGetProperty(personality, (const char*)"IONameMatch"));
char* new_str = malloc(strlen("pci14e4,xxxx")+1);
char* new_str = malloc(sizeof("pci14e4,xxxx"));
sprintf(new_str, "pci14e4,%02x", patch_bcm_deviceid);
// Check to see if we *really* need to modify the plist, if not, return false
DBG("Inflated result is %d, in: %d bytes, out: %d bytes, full: %d\n", zlib_result, zstream.total_in, zstream.total_out, full_size);
char* newstring = malloc(strlen("0x00008086") + 1);
char* newstring = malloc(sizeof("0x00008086"));
sprintf(newstring, "0x%04x", 0x8086 | (patch_gma_deviceid << 16));
{
/* deflate filled output buffer, meaning the data doesn't compress.
*/
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");
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");
pause();
}
branches/slice/i386/modules/GUI/gui.c
764764
765765
766766
767
767
768768
769
770
769
770
771771
772772
773773
screen_params[1] = DEFAULT_SCREEN_HEIGHT;
msglog("GUI default screen width=%d height=%d\n",screen_params[0], screen_params[1]);
}
if (((int)screen_params[0]>1280) || ((int)screen_params[1]>1024))
if (((int)screen_params[0]>4000) || ((int)screen_params[1]>4000))
{
screen_params[0] = 1280;
screen_params[1] = 1024;
screen_params[0] = DEFAULT_SCREEN_WIDTH;
screen_params[1] = DEFAULT_SCREEN_HEIGHT;
msglog("GUI MAX VESA screen width=%d height=%d\n",screen_params[0], screen_params[1]);
}
screen_params[2] = 32;
branches/slice/i386/modules/GUI/GUI_module.c
3232
3333
3434
35
35
3636
3737
3838
......
8383
8484
8585
86
86
8787
8888
8989
......
9696
9797
9898
99
99
100100
101101
102102
......
110110
111111
112112
113
113
114114
115115
116116
......
127127
128128
129129
130
130
131131
132132
133133
......
138138
139139
140140
141
142
143
144
141145
142146
143147
......
251255
252256
253257
254
258
255259
256260
257261
258262
259263
264
260265
261
262266
263267
264268
......
744748
745749
746750
747
751
748752
749753
750754
bool useGUI;
void GUI_Kernel_Start_hook(void* kernelEntry, void* arg2, void* arg3, void* arg4);
//void GUI_Kernel_Start_hook(void* kernelEntry, void* arg2, void* arg3, void* arg4);
void GUI_PreBoot_hook(void* arg1, void* arg2, void* arg3, void* arg4);
void GUI_ModulesLoaded_hook(void* arg1, void* arg2, void* arg3, void* arg4);
// Note: shouldn't be needed, but just in case
drawBootGraphics();
}
else
else if(!useGUI)
{
setVideoMode( GRAPHICS_MODE, 0 ); //Slice - Why GRAPHICS_MODE if gVerboseMode?
//DBG("GUI set GRAPHICS_MODE\n");
void GUI_PreBoot_hook(void* arg1, void* arg2, void* arg3, void* arg4)
{
// Turn off any GUI elements
if( bootArgs->Video.v_display == GRAPHICS_MODE )
if( useGUI )
{
gui.devicelist.draw = false;
gui.bootprompt.draw = false;
{
// Disable outputs, they will still show in the boot log.
replace_function("_printf", &GUI_verbose);
drawBootGraphics();
//drawBootGraphics();
}
}
// initGUI() returned with an error, disabling GUI.
useGUI = false;
}
if (useGUI)
else if(useGUI)
{
replace_function("_initGraphicsMode", &GUI_initGraphicsMode);
replace_function("_getBootOptions", &GUI_getBootOptions);
replace_function("_verbose", &GUI_verbose);
replace_function("_error", &GUI_error);
replace_function("_stop", &GUI_stop);
setVideoMode( GRAPHICS_MODE, 0 );
drawBackground();
}
//DBG("GUI loaded\n");
}
addBootArg(kIgnoreCachesFlag);
break;
/*
case BOOT_SAFEMODE:
gVerboseMode = true;
gBootMode = kBootModeNormal;
addBootArg(kSafeModeFlag);
break;
*/
case BOOT_SINGLEUSER:
gVerboseMode = true;
gBootMode = kBootModeNormal;
// Associate a menu item for each BVRef.
for (bvr=bvChain, i=gDeviceCount-1, selectIndex=0; bvr; bvr=bvr->next)
{
DBG("GUI menu for device %d\n", bvr->biosdev);
//DBG("GUI menu for device %d\n", bvr->biosdev);
if (bvr->visible)
{
getBootVolumeDescription(bvr, menuItems[i].name, sizeof(menuItems[i].name) - 1, true);
branches/slice/i386/modules/GUI/Makefile
22
33
44
5
5
66
77
88
......
3838
3939
4040
41
41
4242
4343
4444
MODULE_VERSION = "1.0.0"
MODULE_COMPAT_VERSION = "1.0.0"
MODULE_START = _$(MODULE_NAME)_start
MODULE_DEPENDENCIES =
MODULE_DEPENDENCIES = Resolution
DIR = GUI
$(HFILES) $(OTHERFILES)
DIRS_NEEDED = $(OBJROOT) $(SYMROOT)
all embedtheme optionrom: dylib
all optionrom: dylib
embedtheme: CFLAGS += -DEMBED_THEME
embedtheme: art.h all
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 );
verbose("Video modes supported:\n", VBEDecodeFP(const char *, vbeInfo.OEMStringPtr));
printf("Video modes supported:\n", VBEDecodeFP(const char *, vbeInfo.OEMStringPtr));
// Loop through the mode list, and find the matching mode.
continue;
}
verbose("Mode %x: %dx%dx%d mm:%d attr:%x\n",
printf("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/ATI5000Enabler/ati5.c
377377
378378
379379
380
380381
381382
382383
......
10661067
10671068
10681069
1070
1071
1072
10691073
10701074
10711075
......
11031107
11041108
11051109
1106
1107
1110
1111
11081112
11091113
11101114
{ 0x68D8,0x5730174B,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5730",kNull},
{ 0x68D8,0x21D91458,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5670",kBaboon},
{ 0x68D8,0x03561043,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5670",kBaboon},
{ 0x68D8,0xE151174B,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5670",kBaboon},
{ 0x68D9,0x301017AF,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5630",kNull},
{ 0x68DA,0x301017AF,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5630",kNull},
{ 0x68DA,0x30001787,CHIP_FAMILY_REDWOOD,"ATI Radeon HD 5630",kNull},
card->mmio= (uint8_t *)(pci_config_read32(pci_dev->dev.addr, PCI_BASE_ADDRESS_2) & ~0x0f);
card->io= (uint8_t *)(pci_config_read32(pci_dev->dev.addr, PCI_BASE_ADDRESS_4) & ~0x03);
verbose("Framebuffer @0x%08X MMIO @0x%08X I/O Port @0x%08X ROM Addr @0x%08X\n",
card->fb, card->mmio, card->io, pci_config_read32(pci_dev->dev.addr, PCI_ROM_ADDRESS));
card->posted= radeon_card_posted();
verbose("ATI card %s, ", card->posted ? "POSTed" : "non-POSTed");
else
{
for (i = 0; i < kCfgEnd; i++)
if (strcmp(fb_name, card_configs[card->info->cfg_name].name) == 0)
card->ports = card_configs[card->info->cfg_name].ports;
if (strcmp(fb_name, card_configs[i].name) == 0)
card->ports = card_configs[i].ports;
}
sprintf(name, "ATY,%s", fb_name);
branches/slice/revision
1
1
676:726
676:727
branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
114114
115115
116116
117
118
117
118
119119
120120
121121
......
134134
135135
136136
137
138137
139138
140139
......
149148
150149
151150
151
152152
153153
154154
......
156156
157157
158158
159
160
161159
162160
163161
......
206204
207205
208206
207
208
209
209210
210211
211212
......
522523
523524
524525
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542526
543527
544528
......
630614
631615
632616
617
618
619
620
621
633622
634623
635624
......
784773
785774
786775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
787805
788806
789807
......
875893
876894
877895
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908896
909897
910898
......
17121700
17131701
17141702
1715
1716
1717
1718
1719
17201703
17211704
17221705
......
17691752
17701753
17711754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
17721795
17731796
17741797
......
19281951
19291952
19301953
1931
1932
1933
1934
1935
19361954
19371955
19381956
PBXFileDataSource_Target_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 318239850;
PBXWorkspaceStateSaveDate = 318239850;
PBXPerProjectTemplateStateSaveDate = 320572527;
PBXWorkspaceStateSaveDate = 320572527;
};
perUserProjectItems = {
120DC73B12F5C87900345D09 /* PBXTextBookmark */ = 120DC73B12F5C87900345D09 /* PBXTextBookmark */;
121FAA3512F051A200385F21 /* PBXTextBookmark */ = 121FAA3512F051A200385F21 /* PBXTextBookmark */;
1220CE4112F2BFBF0045986D /* PBXTextBookmark */ = 1220CE4112F2BFBF0045986D /* PBXTextBookmark */;
1220CE4212F2BFBF0045986D /* PBXTextBookmark */ = 1220CE4212F2BFBF0045986D /* PBXTextBookmark */;
122A869712EC5429004312F4 /* PBXTextBookmark */ = 122A869712EC5429004312F4 /* PBXTextBookmark */;
122A869812EC5429004312F4 /* PBXTextBookmark */ = 122A869812EC5429004312F4 /* PBXTextBookmark */;
122A86C612ECA817004312F4 /* PBXTextBookmark */ = 122A86C612ECA817004312F4 /* PBXTextBookmark */;
122C56E012F2CB51005FE786 /* PBXTextBookmark */ = 122C56E012F2CB51005FE786 /* PBXTextBookmark */;
125437C812EF1E99007175C8 /* PBXTextBookmark */ = 125437C812EF1E99007175C8 /* PBXTextBookmark */;
125437CB12EF1E99007175C8 /* PBXTextBookmark */ = 125437CB12EF1E99007175C8 /* PBXTextBookmark */;
12569C8612F0115B005A9113 /* PBXTextBookmark */ = 12569C8612F0115B005A9113 /* PBXTextBookmark */;
125916A912F8445300001F4A /* PBXTextBookmark */ = 125916A912F8445300001F4A /* PBXTextBookmark */;
125A6C2512F53BCD00535D65 /* PBXTextBookmark */ = 125A6C2512F53BCD00535D65 /* PBXTextBookmark */;
1267813012B7B13E00A25CED /* PBXTextBookmark */ = 1267813012B7B13E00A25CED /* PBXTextBookmark */;
12679BA312BE822E00E3637F /* PBXTextBookmark */ = 12679BA312BE822E00E3637F /* PBXTextBookmark */;
1267A85C12F5771100751FC6 /* PBXTextBookmark */ = 1267A85C12F5771100751FC6 /* PBXTextBookmark */;
126C766312EEF67F00BDB81E /* PBXTextBookmark */ = 126C766312EEF67F00BDB81E /* PBXTextBookmark */;
126D84C612F7FA6E000AB776 /* PBXTextBookmark */ = 126D84C612F7FA6E000AB776 /* PBXTextBookmark */;
126D84C712F7FA6E000AB776 /* PBXTextBookmark */ = 126D84C712F7FA6E000AB776 /* PBXTextBookmark */;
126D84C912F7FA6E000AB776 /* PBXTextBookmark */ = 126D84C912F7FA6E000AB776 /* PBXTextBookmark */;
12715CDF12EA253100E3013B /* PBXTextBookmark */ = 12715CDF12EA253100E3013B /* PBXTextBookmark */;
12715CE012EA253100E3013B /* PBXTextBookmark */ = 12715CE012EA253100E3013B /* PBXTextBookmark */;
1288318212C3608100EA4CB2 /* PBXTextBookmark */ = 1288318212C3608100EA4CB2 /* PBXTextBookmark */;
12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = 12E17AE612B2BA9B00607D8E /* PBXTextBookmark */;
12E6FB5712BB458400C2A021 /* PBXTextBookmark */ = 12E6FB5712BB458400C2A021 /* PBXTextBookmark */;
12E8842612D8F833004C76C8 /* PBXTextBookmark */ = 12E8842612D8F833004C76C8 /* PBXTextBookmark */;
12EA3B42131B91D4008D7D68 /* PBXTextBookmark */ = 12EA3B42131B91D4008D7D68 /* PBXTextBookmark */;
12EA3B43131B91D4008D7D68 /* PBXTextBookmark */ = 12EA3B43131B91D4008D7D68 /* PBXTextBookmark */;
12EA3B45131B91D4008D7D68 /* PBXTextBookmark */ = 12EA3B45131B91D4008D7D68 /* PBXTextBookmark */;
12EFD98A12B510D9002A1712 /* PBXTextBookmark */ = 12EFD98A12B510D9002A1712 /* PBXTextBookmark */;
12EFE2FD12B51ED5002A1712 /* PBXTextBookmark */ = 12EFE2FD12B51ED5002A1712 /* PBXTextBookmark */;
12EFE65A12B547A7002A1712 /* PBXTextBookmark */ = 12EFE65A12B547A7002A1712 /* PBXTextBookmark */;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Memory/mem.c;
sourceTree = "<absolute>";
};
122A869012EC534F004312F4 /* ext2fs.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = ext2fs.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/ext2fs.c;
sourceTree = "<absolute>";
};
122A869712EC5429004312F4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 122A869012EC534F004312F4 /* ext2fs.c */;
name = "ext2fs.c: 12";
rLen = 4;
rLoc = 195;
rType = 0;
vrLen = 432;
vrLoc = 0;
};
122A869812EC5429004312F4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 122A869912EC5429004312F4 /* disk.h */;
name = bootstruct.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/bootstruct.c;
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1048, 2236}}";
sepNavSelRange = "{3153, 79}";
sepNavVisRange = "{2481, 1024}";
};
};
124C492812B8C915005AA276 /* Memory.c */ = {
isa = PBXFileReference;
vrLen = 1670;
vrLoc = 0;
};
1259120512F8299C00001F4A /* gui.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = gui.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/gui.c;
sourceTree = "<absolute>";
};
125916A912F8445300001F4A /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1259120512F8299C00001F4A /* gui.c */;
name = "gui.c: 745";
rLen = 13;
rLoc = 22523;
rType = 0;
vrLen = 1232;
vrLoc = 21985;
};
125916AD12F8445300001F4A /* ext2fs.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = ext2fs.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/ext2fs.c;
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {752, 572}}";
sepNavSelRange = "{7, 4}";
sepNavVisRange = "{0, 598}";
};
};
125A6C2512F53BCD00535D65 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1230722412F4BC2E000AAE98 /* bootstruct.c */;
vrLen = 761;
vrLoc = 22651;
};
126D84C712F7FA6E000AB776 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 126D84C812F7FA6E000AB776 /* gui.c */;
rLen = 13;
rLoc = 22523;
rType = 0;
};
126D84C812F7FA6E000AB776 /* gui.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = gui.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/gui.c;
sourceTree = "<absolute>";
};
126D84C912F7FA6E000AB776 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 126D84CA12F7FA6E000AB776 /* gui.c */;
name = "gui.c: 745";
rLen = 13;
rLoc = 22523;
rType = 0;
vrLen = 1319;
vrLoc = 21985;
};
126D84CA12F7FA6E000AB776 /* gui.c */ = {
isa = PBXFileReference;
name = gui.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/GUI/gui.c;
sourceTree = "<absolute>";
};
1271587B12EA1C6400E3013B /* ntfs.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = boot0.s;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot0/boot0.s;
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {752, 11219}}";
sepNavSelRange = "{22464, 0}";
sepNavVisRange = "{22651, 761}";
};
};
12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
vrLen = 763;
vrLoc = 20973;
};
12EA3B42131B91D4008D7D68 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 125916AD12F8445300001F4A /* ext2fs.c */;
name = "ext2fs.c: 2";
rLen = 4;
rLoc = 7;
rType = 0;
vrLen = 598;
vrLoc = 0;
};
12EA3B43131B91D4008D7D68 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12EA3B44131B91D4008D7D68 /* drivers.c */;
rLen = 6;
rLoc = 1443;
rType = 0;
};
12EA3B44131B91D4008D7D68 /* drivers.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = drivers.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/drivers.c;
sourceTree = "<absolute>";
};
12EA3B45131B91D4008D7D68 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12EA3B46131B91D4008D7D68 /* drivers.c */;
name = "drivers.c: 44";
rLen = 6;
rLoc = 1443;
rType = 0;
vrLen = 840;
vrLoc = 1094;
};
12EA3B46131B91D4008D7D68 /* drivers.c */ = {
isa = PBXFileReference;
name = drivers.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/drivers.c;
sourceTree = "<absolute>";
};
12EFD98A12B510D9002A1712 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 129F6EF012B50BB6005A820E /* modules.c */;
name = 915resolution.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/915resolution.c;
sourceTree = "<absolute>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1048, 10751}}";
sepNavSelRange = "{13812, 8}";
sepNavVisRange = "{20341, 1044}";
};
};
12FE987912C7E281001B1702 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
211211
212212
213213
214
215214
216215
217216
......
269268
270269
271270
272
273271
274272
275273
276274
277275
278
279
280
281276
282277
283278
......
321316
322317
323318
324
319
325320
326321
327322
......
329324
330325
331326
332
327
333328
334329
335330
336
331
337332
338333
339334
......
403398
404399
405400
406
407401
408402
409403
......
433427
434428
435429
436
430
431
432
437433
438434
439435
......
445441
446442
447443
448
444
449445
450446
451447
452448
453449
454450
455
451
456452
457453
458454
......
465461
466462
467463
468
464
469465
470466
471467
472468
473469
474470
475
471
476472
477473
478474
......
491487
492488
493489
494
490
495491
496
492
497493
498494
499495
......
713709
714710
715711
716
712
717713
718714
719715
......
868864
869865
870866
867
868
871869
872870
873871
874872
875873
876
874
877875
878876
879877
......
894892
895893
896894
897
898
899895
900896
901897
......
931927
932928
933929
934
935
930
931
936932
937933
938934
<string>active-combo-popup</string>
<string>action</string>
<string>NSToolbarFlexibleSpaceItem</string>
<string>clean-target</string>
<string>buildOrClean</string>
<string>servicesModulefind</string>
<string>com.apple.ide.PBXToolbarStopButton</string>
<string>08FB7794FE84155DC02AAC07</string>
<string>08FB7795FE84155DC02AAC07</string>
<string>12C26D3912B0DE0A00AF7F4B</string>
<string>126D803012F7F46A000AB776</string>
<string>1C37FABC05509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
<integer>33</integer>
<integer>2</integer>
<integer>1</integer>
<integer>0</integer>
</array>
</array>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>gui.c</string>
<string>drivers.c</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>gui.c</string>
<string>drivers.c</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>126D84C912F7FA6E000AB776</string>
<string>12EA3B45131B91D4008D7D68</string>
<key>history</key>
<array>
<string>12B9F42612B29A4A00FE287A</string>
<string>12E8842612D8F833004C76C8</string>
<string>12715CDF12EA253100E3013B</string>
<string>12715CE012EA253100E3013B</string>
<string>122A869712EC5429004312F4</string>
<string>122A869812EC5429004312F4</string>
<string>122A86C612ECA817004312F4</string>
<string>126C766312EEF67F00BDB81E</string>
<string>12DFBB2112F6E9A500E2DA49</string>
<string>12DFBFDA12F7066500E2DA49</string>
<string>126D84C612F7FA6E000AB776</string>
<string>126D84C712F7FA6E000AB776</string>
<string>125916A912F8445300001F4A</string>
<string>12EA3B42131B91D4008D7D68</string>
<string>12EA3B43131B91D4008D7D68</string>
</array>
</dict>
<key>SplitCount</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {813, 502}}</string>
<string>{{0, 0}, {813, 487}}</string>
<key>RubberWindowFrame</key>
<string>364 171 1021 706 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>502pt</string>
<string>487pt</string>
</dict>
<dict>
<key>ContentConfiguration</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 507}, {813, 158}}</string>
<string>{{0, 492}, {813, 173}}</string>
<key>RubberWindowFrame</key>
<string>364 171 1021 706 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
<string>158pt</string>
<string>173pt</string>
</dict>
</array>
<key>Proportion</key>
</array>
<key>TableOfContents</key>
<array>
<string>126D84CB12F7FA6E000AB776</string>
<string>12EA3B47131B91D4008D7D68</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>126D84CC12F7FA6E000AB776</string>
<string>12EA3B48131B91D4008D7D68</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
<key>TableOfContents</key>
<array>
<string>12C26D3512B0DDFC00AF7F4B</string>
<string>126D84BE12F7FA66000AB776</string>
<string>12EA3B37131B91BB008D7D68</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string>915resolution.c</string>
<string>bootstruct.c</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
<string>510pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>126D84C412F7FA66000AB776</string>
<string>126D84C512F7FA66000AB776</string>
<string>12EA3B40131B91BB008D7D68</string>
<string>12EA3B41131B91BB008D7D68</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>

Archive Download the corresponding diff file

Revision: 749