Chameleon

Chameleon Commit Details

Date:2011-01-26 12:37:48 (13 years 3 months ago)
Author:Sergey Slice
Commit:713
Parents: 712
Message:module.c refactored
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/GUI/GUI_module.c
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
M/branches/slice/i386/boot2/boot.c
M/branches/slice/i386/boot2/modules.c
M/branches/slice/CHANGES
M/branches/slice/i386/boot2/options.c
M/branches/slice/i386/modules/GUI/gui.c

File differences

branches/slice/i386/boot2/graphics.c
3333
3434
3535
36
37
38
39
40
41
42
43
44
45
3646
3747
3848
#include "bootstruct.h"
#include "IOHibernatePrivate.h"
#ifndef DEBUG_GR
#define DEBUG_GR 1
#endif
#if DEBUG_GR
#define DBG(x...) printf(x)
#else
#define DBG(x...) msglog(x)
#endif
/*
* for spinning disk
*/
branches/slice/i386/boot2/boot.c
6363
6464
6565
66
66
6767
6868
6969
......
216216
217217
218218
219
219220
220221
221222
222223
223224
224
225
226225
227226
228227
......
286285
287286
288287
289
288
290289
291290
292291
......
304303
305304
306305
306
307307
308308
309309
310
310311
311312
312313
......
395396
396397
397398
399
398400
399401
400402
......
547549
548550
549551
552
550553
551554
552555
#include "modules.h"
#define DEBUG 1
#define DEBUG 0
long gBootMode; /* defaults to 0 == kBootModeNormal */
bool gOverrideKernel;
#endif
}
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL);// Notify modules that the kernel is about to be started
setupBooterLog();
finalizeBootStruct();
execute_hook("Kernel Start", (void*)kernelEntry, (void*)bootArgs, NULL, NULL);// Notify modules that the kernel is about to be started
// Jump to kernel's entry point. There's no going back now.
startprog( kernelEntry, bootArgs );
// Setup VGA text mode.
// Not sure if it is safe to call setVideoMode() before the
// config table has been loaded. Call video_mode() instead.
video_mode( 2 ); // 80x25 mono text mode.
// video_mode( 2 ); // 80x25 mono text mode.
// Scan and record the system's hardware information.
scan_platform();
// Load boot.plist config file
status = loadSystemConfig(&bootInfo->bootConfig);
if (getBoolForKey(kQuietBootKey, &quiet, &bootInfo->bootConfig) && quiet) {
gBootMode |= kBootModeQuiet;
}
// Override firstRun to get to the boot menu instantly by setting "Instant Menu"=y in system config
if (getBoolForKey(kInsantMenuKey, &instantMenu, &bootInfo->bootConfig) && instantMenu) {
firstRun = false;
#endif
setBootGlobals(bvChain);
// Parse args, load and start kernel.
else //if(gMacOSVersion[3] == '5')
sprintf(gBootKernelCacheFile, "%skernelcache", kDefaultCachePath);
}
// Check for cache file.
trycache = (((gBootMode & kBootModeSafe) == 0) &&
!gOverrideKernel &&
branches/slice/i386/boot2/modules.c
4444
4545
4646
47
48
49
50
51
52
53
4754
4855
4956
......
113120
114121
115122
123
116124
117125
118126
......
155163
156164
157165
158
166
159167
160168
161169
......
165173
166174
167175
168
176
169177
170178
171179
......
175183
176184
177185
178
186
179187
180188
181189
......
185193
186194
187195
188
196
189197
190198
191199
192
200
193201
194202
195203
196204
197205
198
206
199207
200208
201209
......
211219
212220
213221
214
222
215223
216
217
224
225
218226
219
227
220228
221
229
230
231
232
233
234
235
236
237
238
222239
223
240
224241
225242
226243
227244
228245
229246
230
247
231248
232249
233250
234
251
235252
236253
237
254
238255
239256
240257
241258
242259
243
260
244261
245
262
246263
247264
248265
......
254271
255272
256273
257
274
258275
259276
260277
261278
262279
263280
264
281
265282
266283
267284
......
273290
274291
275292
293
276294
277295
278296
279297
280
298
299
300
281301
282302
283303
284304
285
305
306
307
308
309
310
311
312
313
314
315
316
317
286318
287319
288320
......
292324
293325
294326
327
295328
296
297329
298
330
331
332
299333
300334
301
302
335
336
303337
304338
305339
......
309343
310344
311345
346
312347
313348
314349
315
316
350
351
317352
318353
319354
320355
321356
322
357
323358
324359
325360
......
337372
338373
339374
340
375
341376
342377
343378
......
563598
564599
565600
566
601
567602
568603
569604
......
11731208
11741209
11751210
1176
1211
11771212
11781213
11791214
......
11881223
11891224
11901225
1191
1226
11921227
11931228
1194
1229
11951230
11961231
11971232
......
12001235
12011236
12021237
1203
1238
12041239
12051240
12061241
12071242
1208
1243
12091244
12101245
12111246
while(hooks)
{
DBG("Hook: %s\n", hooks->name);
callbackList_t* callbacks = hooks->callbacks;
while(callbacks->next != NULL)
{
DBG("\tcallbacks: %x\n", callbacks->callback);
callbacks = callbacks->next;
}
hooks = hooks->next;
}
}
char* name;
long flags;
long time;
DBG("Loading modules...\n");
struct dirstuff* moduleDir = opendir("/Extra/modules/");
while(readdir(moduleDir, (const char**)&name, &flags, &time) >= 0)
{
{
// NOTE: Symbols.dylib tries to load twice, this catches it as well
// as when a module links with an already loaded module
DBG("Module %s already loaded\n", module);
DBG("load_module: Module %s already loaded\n", module);
return 1;
}
fh = open(modString, 0);
if(fh < 0)
{
DBG("Unable to locate module %s\n", modString);
DBG("load_module: Unable to locate module %s\n", modString);
//getc();
return 0;
}
if (moduleSize && read(fh, module_base, moduleSize) == moduleSize)
{
DBG("Module %s read in.\n", modString);
DBG("load_module: Module %s read in.\n", modString);
// Module loaded into memory, parse it
module_start = parse_mach(module_base, &load_module, &add_symbol);
// Notify the system that it was laoded
module_loaded(module/*moduleName, moduleVersion, moduleCompat*/);
(*module_start)();// Start the module
DBG("Module %s Loaded.\n", module);
DBG("load_module: Module %s Loaded.\n", module);
}
else {
// The module does not have a valid start function
verbose("Unable to start %s\n", module);
verbose("load_module: Unable to start %s\n", module);
getc();
}
}
else
{
DBG("Unable to read in module %s\n.", module);
DBG("load_module: Unable to read in module %s\n.", module);
//getc();
}
close(fh);
*/
int execute_hook(const char* name, void* arg1, void* arg2, void* arg3, void* arg4)
{
DBG("Attempting to execute hook '%s'\n", name);
DBG("execute_hook: Attempting to execute hook '%s'\n", name);
moduleHook_t* hooks = moduleCallbacks;
while(hooks && strcmp(name, hooks->name) < 0)
//Slice - dunno why it not works
/*while(hooks && strcmp(name, hooks->name) < 0)
{
//DBG("%s cmp %s = %d\n", name, hooks->name, strcmp(name, hooks->name));
DBG("execute_hook: name=%s hook->name=%s cmp=%d try next\n", name, hooks->name, strcmp(name, hooks->name));
hooks = hooks->next;
}
}*/
do {
DBG("execute_hook: name=%s hook->name=%s cmp=%d try next\n", name, hooks->name, strcmp(name, hooks->name));
if (strcmp(name, hooks->name) == 0) {
break;
}
hooks = hooks->next;
} while (hooks);
if(hooks && strcmp(name, hooks->name) == 0)
if(hooks) // && strcmp(name, hooks->name) == 0)
{
// Loop through all callbacks for this module
callbackList_t* callbacks = hooks->callbacks;
while(callbacks)
{
DBG("Executing '%s' with callback 0x%X.\n", name, callbacks->callback);
DBG("execute_hook: Executing '%s' with callback 0x%X.\n", name, callbacks->callback);
// Execute callback
callbacks->callback(arg1, arg2, arg3, arg4);
callbacks = callbacks->next;
DBG("Hook '%s' callback executed, next is 0x%X.\n", name, callbacks);
//DBG("execute_hook: Hook '%s' callback executed, next is 0x%X.\n", name, callbacks);
}
DBG("Hook '%s' executed.\n", name);
DBG("execute_hook: Hook '%s' executed.\n", name);
return 1;
}
else
{
DBG("No callbacks for '%s' hook.\n", name);
DBG("execute_hook: No callbacks for '%s' hook.\n", name);
// Callbaack for this module doesn't exist;
// Callback for this module doesn't exist;
//verbose("Unable execute hook '%s', no callbacks registered.\n", name);
//pause();
return 0;
/*
*register_hook_callback( const char* name, void(*callback)())
*name - Name of the module hook to attach to.
*callbacks - The funciton pointer that will be called when the
*callbacks - The function pointer that will be called when the
*hook is executed. When registering a new callback name, the callback is added sorted.
*NOTE: the hooks take four void* arguments.
*TODO: refactor
*/
void register_hook_callback(const char* name, void(*callback)(void*, void*, void*, void*))
{
DBG("Adding callback for '%s' hook.\n", name);
DBG("register_hook_callback: Adding callback for '%s' hook.\n", name);
moduleHook_t* newHook = malloc(sizeof(moduleHook_t));
if(!moduleCallbacks)
newHook->callbacks = (callbackList_t*)malloc(sizeof(callbackList_t));
newHook->callbacks->callback = callback;
newHook->callbacks->next = NULL;
DBG("register_hook_callback: new moduleCallbacks with %s\n", name);
}
else
{
moduleHook_t* hooks = moduleCallbacks;
//Slice
// ignoredfirst node where hooks->name == name ?!
/*
while(hooks->next && strcmp(name, hooks->next->name) < 0)
{
hooks = hooks->next;
}
*/
moduleHook_t* backHook = moduleCallbacks; //I need to remember last node in chain if next=NULL
do {
DBG("register_hook_callback: found = %s\n", hooks->name);
if (strcmp(name, hooks->name) == 0) {
break;
}
backHook = hooks;
hooks = hooks->next;
} while (hooks);
// There are only two variants: hooks found or not
// if not found then hooks=NULL so remember backHook
/*
if(!hooks->next)
{
// Appent to the end
newHook->callbacks = (callbackList_t*)malloc(sizeof(callbackList_t));
newHook->callbacks->callback = callback;
newHook->callbacks->next = NULL;
DBG("register_hook_callback: Appent to the end\n");
}
else if(strcmp(name, hooks->next->name) == 0)
else */
//Firstcheck for hook found. So hooks != NULL
if(hooks) //&& strcmp(name, hooks->name) == 0)
{
// We found the hook
// Hook alreday exists, add a callback to this hook
callbackList_t* callbacks = hooks->next->callbacks;
// Hook already exists, add a callback to this hook
callbackList_t* callbacks = hooks->callbacks; //hooks->next->callbacks
while(callbacks->next != NULL)
{
callbacks = callbacks->next;
callbacks = callbacks->next;
callbacks->next = NULL;
callbacks->callback = callback;
DBG("register_hook_callback: existing hook with new callback\n");
}
else
{
// We are too far beyond the hook
newHook->next = hooks->next;
hooks = backHook; //now hooks=NULL so remember last not NULL where hooks->next=NULL
newHook->next = NULL;
hooks->next = newHook;
newHook->name = name;
newHook->callbacks = (callbackList_t*)malloc(sizeof(callbackList_t));
newHook->callbacks->callback = callback;
newHook->callbacks->next = NULL;
DBG("register_hook_callback: add new hook %s\n", name);
}
}
#if DEBUG_MODULES
* NOTE; all dependecies will be loaded before this module is started
* NOTE: If the module is unable to load ot completeion, the modules
* symbols will still be available (TODO: fix this). This should not
* happen as all dependencies are verified before the sybols are read in.
* happen as all dependencies are verified before the symbols are read in.
*/
void* parse_mach(void* binary, int(*dylib_loader)(char*), long long(*symbol_handler)(char*, long long, char))// TODO: add param to specify valid archs
{
break;
default:
DBG("Unhandled loadcommand 0x%X\n", loadCommand->cmd & 0x7FFFFFFF);
DBG("parse_mach: Unhandled loadcommand 0x%X\n", loadCommand->cmd & 0x7FFFFFFF);
break;
}
{
// TODO: insert sorted
moduleList_t* new_entry = malloc(sizeof(moduleList_t));
//DBG("module_loaded: %s\n", name);
new_entry->next = loadedModules;
loadedModules = new_entry;
moduleList_t* entry = loadedModules;
while(entry)
{
DBG("Comparing %s with %s\n", name, entry->module);
//DBG("\tis_module_loaded:Comparing %s with %s\n", name, entry->module);
if(strcmp(entry->module, name) == 0)
{
DBG("Located module %s\n", name);
//DBG("\tis_module_loaded:Located module %s\n", name);
return 1;
}
else
}
}
DBG("Module %s not found\n", name);
//DBG("\tis_module_loaded:Module %s not found in list\n", name);
return 0;
}
// Look for symbols using the Smbols moduel function.
// Look for symbols using the Symbols module function.
// If non are found, look through the list of module symbols
unsigned int lookup_all_symbols(const char* name)
{
branches/slice/i386/boot2/options.c
819819
820820
821821
822
822823
823824
824825
......
827828
828829
829830
831
830832
831833
832834
if (gEnableCDROMRescan) {
gBootVolume = NULL;
clearBootArgs();
key = 0;
}
break;
scanDisks(gBIOSDev, &bvCount);
gBootVolume = NULL;
clearBootArgs();
key = 0;
break;
#endif
default:
branches/slice/i386/modules/GUI/gui.c
719719
720720
721721
722
723
722
723
724724
725725
726726
......
730730
731731
732732
733
733
734734
735735
736736
......
18691869
18701870
18711871
1872
1872
18731873
18741874
18751875
......
18841884
18851885
18861886
1887
18871888
1888
1889
18891890
18901891
18911892
......
19061907
19071908
19081909
1909
1910
1911
19101912
19111913
19121914
gDualLink =((screen_params[0] * screen_params[1]) > (1<<20))?1:0;
msglog("GUI module screen width=%d height=%d\n",(int)screen_params[0], (int)screen_params[1]);
}
//if (((int)screen_params[0]<800) || ((int)screen_params[1]<600))
//{
if (((int)screen_params[0]<800) || ((int)screen_params[1]<600))
{
if (getIntForKey("screen_width", &val, &bootInfo->themeConfig) && val > 0)
{
screen_params[0] = val;
screen_params[1] = val;
}
msglog("GUI theme screen width=%d height=%d\n",screen_params[0], screen_params[1]);
//}
}
if (((int)screen_params[0]<800) || ((int)screen_params[1]<600))
{
screen_params[0] = DEFAULT_SCREEN_WIDTH;
// drawBootGraphics
void drawBootGraphics(void)
{
int pos;
//int pos;
int length;
const char *dummyVal;
int oldScreenWidth, oldScreenHeight;
loadBootGraphics();
}
//Slice - attention!
// getResolution already done!
// parse screen size parameters
if(is_module_loaded("Resolution.dylib"))
/*if(is_module_loaded("Resolution.dylib"))
{
getResolution(&screen_params[0], &screen_params[1], &screen_params[2]);
}
}
}
msglog("boot_width=%d boot_height=%d\n", screen_params[0], screen_params[1]);
// Save current screen resolution.
// Save current screen resolution. // for a what?
*/
oldScreenWidth = gui.screen.width;
oldScreenHeight = gui.screen.height;
branches/slice/i386/modules/GUI/GUI_module.c
1818
1919
2020
21
22
23
2124
25
26
27
28
29
30
31
32
2233
2334
2435
......
7586
7687
7788
78
89
7990
8091
8192
......
128139
129140
130141
131
142
132143
133144
134145
......
535546
536547
537548
549
538550
539551
540552
......
621633
622634
623635
624
636
625637
626638
627639
......
732744
733745
734746
747
735748
736749
737750
......
910923
911924
912925
926
913927
914928
915929
#define BOOTER_LOG_SIZE(64 * 1024)
#define SAFE_LOG_SIZE80
#ifndef DEBUG_GUI
#define DEBUG_GUI 1
#endif
#if DEBUG_GUI
#define DBG(x...) GUI_verbose(x)
#else
#define DBG(x...)
#endif
bool useGUI;
void GUI_Kernel_Start_hook(void* kernelEntry, void* arg2, void* arg3, void* arg4);
else
{
setVideoMode( GRAPHICS_MODE, 0 ); //Slice - Why GRAPHICS_MODE if gVerboseMode?
DBG("GUI set GRAPHICS_MODE\n");
}
}
replace_function("_error", &GUI_error);
replace_function("_stop", &GUI_stop);
}
DBG("GUI loaded\n");
}
/**
if (biosDevIsCDROM(gBIOSDev))
{
isCDROM = true;
DBG("GUI gBIOSDev is CDROM\n");
}
else
{
printf(getVBEInfoString());
}
changeCursor(0, kMenuTopRow, kCursorTypeUnderline, 0);
verbose("Scanning device %x...", gBIOSDev);
verbose("GUI_Scanning device %x...", gBIOSDev);
}
// When booting from CD, default to hard drive boot when possible.
// 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);
if (bvr->visible)
{
getBootVolumeDescription(bvr, menuItems[i].name, sizeof(menuItems[i].name) - 1, true);
scanDisks(gBIOSDev, &bvCount);
gBootVolume = NULL;
clearBootArgs();
key = 0;
break;
case kTabKey:
branches/slice/revision
1
1
676:708
676:711
branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
3232
3333
3434
35
35
3636
3737
3838
......
4545
4646
4747
48
48
4949
5050
5151
......
8181
8282
8383
84
84
8585
8686
8787
......
9090
9191
9292
93
94
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
95119
96120
97121
......
100124
101125
102126
103
104
105
106
107127
108128
109129
......
114134
115135
116136
137
138
139
140
141
142
143
117144
118145
119146
120
147
121148
122149
123150
......
142169
143170
144171
145
146172
147173
148174
......
161187
162188
163189
164
165190
166191
167
168192
169193
170194
......
206230
207231
208232
209
210
211
212
213
214
215
216
217
218
219
220
221233
222234
223235
......
269281
270282
271283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
272298
273299
274300
......
306332
307333
308334
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365335
366336
367337
......
444414
445415
446416
447
448
449
450
451
452
453
454417
455418
456419
......
458421
459422
460423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
461443
462444
463445
......
560542
561543
562544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
563635
564636
565637
......
604676
605677
606678
607
679
608680
609
610
611
612
681
682
683
684
613685
614
615
686
687
616688
689
690
691
692
693
694
695
617696
618697
619698
......
767846
768847
769848
770
771
772
773
774
775
776
777849
778850
779851
......
10551127
10561128
10571129
1058
1130
10591131
10601132
10611133
......
10701142
10711143
10721144
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
10831145
10841146
10851147
......
13741436
13751437
13761438
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
13941439
13951440
13961441
......
14321477
14331478
14341479
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
14451480
14461481
14471482
......
15781613
15791614
15801615
1581
1582
1583
1584
1585
1586
1587
15881616
15891617
15901618
PBXFileTableDataSourceColumnWidthsKey = (
22,
300,
612.58349609375,
461.58349609375,
);
PBXFileTableDataSourceColumnsKey = (
PBXExecutablesDataSource_ActiveFlagID,
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
505,
574,
20,
48,
43,
16,
200,
50,
665.20849609375,
445.20849609375,
);
PBXFileTableDataSourceColumnsKey = (
PBXSymbolsDataSource_SymbolTypeIconID,
PBXSymbolsDataSource_ReferenceNameID,
);
};
PBXPerProjectTemplateStateSaveDate = 317571794;
PBXWorkspaceStateSaveDate = 317571794;
PBXConfiguration.PBXFileTableDataSource3.XCSCMDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
20,
550,
20,
48.16259765625,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_SCM_ColumnID,
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 317734509;
PBXWorkspaceStateSaveDate = 317734509;
};
perUserProjectItems = {
120DFB1712BA3A4D00C7EAC8 /* PBXTextBookmark */ = 120DFB1712BA3A4D00C7EAC8 /* PBXTextBookmark */;
12121ED112B261EA00207E55 /* PBXTextBookmark */ = 12121ED112B261EA00207E55 /* PBXTextBookmark */;
1216139E12B65BB50019961E /* PBXTextBookmark */ = 1216139E12B65BB50019961E /* PBXTextBookmark */;
121613FF12B65D970019961E /* PBXTextBookmark */ = 121613FF12B65D970019961E /* PBXTextBookmark */;
1217945312EDC35E00F271E6 /* PBXTextBookmark */ = 1217945312EDC35E00F271E6 /* PBXTextBookmark */;
1217945912EDC36400F271E6 /* PBXTextBookmark */ = 1217945912EDC36400F271E6 /* PBXTextBookmark */;
1217945A12EDC36400F271E6 /* PBXTextBookmark */ = 1217945A12EDC36400F271E6 /* PBXTextBookmark */;
1217945C12EDC36400F271E6 /* PBXTextBookmark */ = 1217945C12EDC36400F271E6 /* PBXTextBookmark */;
1223EF9012E5D63A0019EC66 /* PBXTextBookmark */ = 1223EF9012E5D63A0019EC66 /* PBXTextBookmark */;
122A869712EC5429004312F4 /* PBXTextBookmark */ = 122A869712EC5429004312F4 /* PBXTextBookmark */;
122A869812EC5429004312F4 /* PBXTextBookmark */ = 122A869812EC5429004312F4 /* PBXTextBookmark */;
124C494312B8E8C2005AA276 /* PBXTextBookmark */ = 124C494312B8E8C2005AA276 /* PBXTextBookmark */;
124C494512B8E8C2005AA276 /* PBXTextBookmark */ = 124C494512B8E8C2005AA276 /* PBXTextBookmark */;
124C494B12B8EA5D005AA276 /* PBXTextBookmark */ = 124C494B12B8EA5D005AA276 /* PBXTextBookmark */;
125437C812EF1E99007175C8 /* PBXTextBookmark */ = 125437C812EF1E99007175C8 /* PBXTextBookmark */;
125437CA12EF1E99007175C8 /* PBXTextBookmark */ = 125437CA12EF1E99007175C8 /* PBXTextBookmark */;
125437CB12EF1E99007175C8 /* PBXTextBookmark */ = 125437CB12EF1E99007175C8 /* PBXTextBookmark */;
1255F81112F03ED000CE7802 /* PBXTextBookmark */ = 1255F81112F03ED000CE7802 /* PBXTextBookmark */;
1255F81212F03ED000CE7802 /* PBXTextBookmark */ = 1255F81212F03ED000CE7802 /* PBXTextBookmark */;
1255F81312F03ED000CE7802 /* PBXTextBookmark */ = 1255F81312F03ED000CE7802 /* PBXTextBookmark */;
12569C8612F0115B005A9113 /* PBXTextBookmark */ = 12569C8612F0115B005A9113 /* PBXTextBookmark */;
1265C97712C7554E0050D02E /* PBXTextBookmark */ = 1265C97712C7554E0050D02E /* PBXTextBookmark */;
1267813012B7B13E00A25CED /* PBXTextBookmark */ = 1267813012B7B13E00A25CED /* PBXTextBookmark */;
12679BA312BE822E00E3637F /* PBXTextBookmark */ = 12679BA312BE822E00E3637F /* PBXTextBookmark */;
1271587812EA1C6400E3013B /* PBXTextBookmark */ = 1271587812EA1C6400E3013B /* PBXTextBookmark */;
126C766312EEF67F00BDB81E /* PBXTextBookmark */ = 126C766312EEF67F00BDB81E /* PBXTextBookmark */;
12715CDF12EA253100E3013B /* PBXTextBookmark */ = 12715CDF12EA253100E3013B /* PBXTextBookmark */;
12715CE012EA253100E3013B /* PBXTextBookmark */ = 12715CE012EA253100E3013B /* PBXTextBookmark */;
1288318212C3608100EA4CB2 /* PBXTextBookmark */ = 1288318212C3608100EA4CB2 /* PBXTextBookmark */;
12C246F412C87C7C007E8339 /* PBXTextBookmark */ = 12C246F412C87C7C007E8339 /* PBXTextBookmark */;
12C2907612C8962900984F8F /* PBXTextBookmark */ = 12C2907612C8962900984F8F /* PBXTextBookmark */;
12C5020712D8B82400EDCC4E /* PBXTextBookmark */ = 12C5020712D8B82400EDCC4E /* PBXTextBookmark */;
12C672F312C7C6BE0058B09B /* PBXTextBookmark */ = 12C672F312C7C6BE0058B09B /* PBXTextBookmark */;
12C672F512C7C6BE0058B09B /* PBXTextBookmark */ = 12C672F512C7C6BE0058B09B /* PBXTextBookmark */;
12C7009812B7BCE7006BD382 /* PBXTextBookmark */ = 12C7009812B7BCE7006BD382 /* PBXTextBookmark */;
12C7009912B7BCE7006BD382 /* PBXTextBookmark */ = 12C7009912B7BCE7006BD382 /* PBXTextBookmark */;
12D6232612BA5F380032F367 /* PBXTextBookmark */ = 12D6232612BA5F380032F367 /* PBXTextBookmark */;
12D64B9F12D8EA0A00A1FE07 /* PBXTextBookmark */ = 12D64B9F12D8EA0A00A1FE07 /* PBXTextBookmark */;
12D7EC0512C8C5EA0021414C /* PBXTextBookmark */ = 12D7EC0512C8C5EA0021414C /* PBXTextBookmark */;
12D7F69F12ECAF1C00AFD4DA /* PBXTextBookmark */ = 12D7F69F12ECAF1C00AFD4DA /* PBXTextBookmark */;
12DA422F12C52DAC009281B3 /* PBXTextBookmark */ = 12DA422F12C52DAC009281B3 /* PBXTextBookmark */;
12DCD38E12BBA5D600A20635 /* PBXTextBookmark */ = 12DCD38E12BBA5D600A20635 /* PBXTextBookmark */;
12E0FC2912ECDBD600F07BFF /* PBXTextBookmark */ = 12E0FC2912ECDBD600F07BFF /* PBXTextBookmark */;
12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = 12E17AE612B2BA9B00607D8E /* PBXTextBookmark */;
12E6FB5712BB458400C2A021 /* PBXTextBookmark */ = 12E6FB5712BB458400C2A021 /* PBXTextBookmark */;
12E8842612D8F833004C76C8 /* PBXTextBookmark */ = 12E8842612D8F833004C76C8 /* PBXTextBookmark */;
path = /Users/slice/Projects/fakesmc/Chameleon/RC5m/i386/libsaio/fake_efi.c;
sourceTree = "<absolute>";
};
120C1F1512ED82A000DC399E /* 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}, {683, 9815}}";
sepNavSelRange = "{6259, 14}";
sepNavVisRange = "{6225, 365}";
};
};
120DB90712B9F3F1001FDAE1 /* boot.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
vrLen = 881;
vrLoc = 298;
};
120F5CDE12F0087200C64A78 /* CHANGES */ = {
isa = PBXFileReference;
lastKnownFileType = text;
name = CHANGES;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/CHANGES;
sourceTree = "<absolute>";
};
121217CC12EEF2550055AF66 /* options.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = options.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/options.c;
sourceTree = "<absolute>";
};
12121ED112B261EA00207E55 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12C26F9A12B0E98200AF7F4B /* kernel_patcher.h */;
vrLen = 895;
vrLoc = 563;
};
1217945312EDC35E00F271E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1217945412EDC35E00F271E6 /* fake_efi.c */;
rLen = 26;
rLoc = 30011;
rType = 0;
};
1217945412EDC35E00F271E6 /* fake_efi.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = fake_efi.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/fake_efi.c;
sourceTree = "<absolute>";
};
1217945912EDC36400F271E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 120C1F1512ED82A000DC399E /* boot.c */;
name = "boot.c: 219";
rLen = 14;
rLoc = 6259;
rType = 0;
vrLen = 365;
vrLoc = 6225;
};
1217945A12EDC36400F271E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1217945B12EDC36400F271E6 /* ACPIPatcher.c */;
name = "ACPIPatcher.c: 7";
rLen = 1;
rLoc = 110;
rType = 0;
vrLen = 518;
vrLoc = 0;
};
1217945B12EDC36400F271E6 /* ACPIPatcher.c */ = {
isa = PBXFileReference;
name = ACPIPatcher.c;
path = /Users/slice/Desktop/ACPIPatcher/ACPIPatcher.c;
sourceTree = "<absolute>";
};
1217945C12EDC36400F271E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1217945D12EDC36400F271E6 /* fake_efi.c */;
name = "fake_efi.c: 780";
rLen = 26;
rLoc = 30011;
rType = 0;
vrLen = 560;
vrLoc = 29817;
};
1217945D12EDC36400F271E6 /* fake_efi.c */ = {
isa = PBXFileReference;
name = fake_efi.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/fake_efi.c;
sourceTree = "<absolute>";
};
121E9E4112C6A6F9000B6ED3 /* gma.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
vrLen = 528;
vrLoc = 4718;
};
122A86CA12ECA817004312F4 /* 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>";
};
123C5F9112C8AB2C00DFC2D4 /* edid.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.h;
sourceTree = "<absolute>";
};
123D09BF12F01CAA00D5CB48 /* 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>";
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {752, 18122}}";
sepNavSelRange = "{229, 0}";
sepNavVisRange = "{97, 721}";
};
};
1243C06412EF16C400CF33C6 /* 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>";
};
124C492812B8C915005AA276 /* Memory.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
vrLen = 554;
vrLoc = 5486;
};
125437C812EF1E99007175C8 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 125437C912EF1E99007175C8 /* HPET.c */;
name = "HPET.c: 43";
rLen = 11;
rLoc = 759;
rType = 0;
vrLen = 611;
vrLoc = 286;
};
125437C912EF1E99007175C8 /* HPET.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = HPET.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/HPET/HPET.c;
sourceTree = "<absolute>";
};
125437CA12EF1E99007175C8 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 126C766512EEF67F00BDB81E /* Memory.c */;
name = "Memory.c: 37";
rLen = 11;
rLoc = 726;
rType = 0;
vrLen = 835;
vrLoc = 393;
};
125437CB12EF1E99007175C8 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 125437CC12EF1E99007175C8 /* modules.h */;
name = "modules.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 1151;
vrLoc = 1550;
};
125437CC12EF1E99007175C8 /* modules.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
name = modules.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/modules.h;
sourceTree = "<absolute>";
};
1255F81112F03ED000CE7802 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 123D09BF12F01CAA00D5CB48 /* modules.c */;
name = "modules.c: 13";
rLen = 0;
rLoc = 229;
rType = 0;
vrLen = 721;
vrLoc = 97;
};
1255F81212F03ED000CE7802 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1243C06412EF16C400CF33C6 /* boot.c */;
name = "boot.c: 353";
rLen = 13;
rLoc = 10294;
rType = 0;
vrLen = 678;
vrLoc = 9722;
};
1255F81312F03ED000CE7802 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1255F81412F03ED000CE7802 /* boot.c */;
name = "boot.c: 66";
rLen = 0;
rLoc = 2077;
rType = 0;
vrLen = 657;
vrLoc = 1639;
};
1255F81412F03ED000CE7802 /* boot.c */ = {
isa = PBXFileReference;
name = boot.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/boot.c;
sourceTree = "<absolute>";
};
12569C8612F0115B005A9113 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 120F5CDE12F0087200C64A78 /* CHANGES */;
name = "CHANGES: 9";
rLen = 13;
rLoc = 339;
rType = 0;
vrLen = 1670;
vrLoc = 0;
};
1265C97712C7554E0050D02E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1265C97812C7554E0050D02E /* basic_definitions */;
vrLen = 894;
vrLoc = 14871;
};
1271587812EA1C6400E3013B /* PBXTextBookmark */ = {
126C766312EEF67F00BDB81E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12F4456712E5DC0800121851 /* NVRAM.c */;
name = "NVRAM.c: 111";
rLen = 0;
rLoc = 2986;
fRef = 121217CC12EEF2550055AF66 /* options.c */;
name = "options.c: 1003";
rLen = 8;
rLoc = 24793;
rType = 0;
vrLen = 745;
vrLoc = 2442;
vrLen = 1190;
vrLoc = 24206;
};
126C766512EEF67F00BDB81E /* Memory.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = Memory.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Memory/Memory.c;
sourceTree = "<absolute>";
};
1271587B12EA1C6400E3013B /* ntfs.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
vrLen = 400;
vrLoc = 3028;
};
12AD499712C7ADAB0082CD39 /* modules.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
name = modules.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/modules.h;
sourceTree = "<absolute>";
};
12AF764312BA614B003BBFD3 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12EFD98D12B510D9002A1712 /* revision */;
fRef = 12D2040D12C890B700CE318D /* graphics.c */;
name = "graphics.c: 722";
rLen = 16;
rLoc = 20490;
rLoc = 20617;
rType = 0;
vrLen = 784;
vrLoc = 20063;
vrLen = 698;
vrLoc = 2183;
};
12C672F312C7C6BE0058B09B /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12AD499712C7ADAB0082CD39 /* modules.h */;
name = "modules.h: 19";
rLen = 13;
rLoc = 418;
rType = 0;
vrLen = 655;
vrLoc = 0;
};
12C672F512C7C6BE0058B09B /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12D332A912C669090093EEDB /* gui.h */;
vrLen = 691;
vrLoc = 4662;
};
12D7F69412ECAF1900AFD4DA /* options.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = options.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/options.c;
sourceTree = "<absolute>";
};
12D7F69F12ECAF1C00AFD4DA /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 122A86CA12ECA817004312F4 /* gui.c */;
name = "gui.c: 1955";
rLen = 12;
rLoc = 53018;
rType = 0;
vrLen = 625;
vrLoc = 52735;
};
12D928BE12C7C8EB00269820 /* Makefile */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.make;
vrLen = 1189;
vrLoc = 0;
};
12E0FC2912ECDBD600F07BFF /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12D7F69412ECAF1900AFD4DA /* options.c */;
name = "options.c: 1001";
rLen = 8;
rLoc = 24766;
rType = 0;
vrLen = 797;
vrLoc = 24411;
};
12E17AE612B2BA9B00607D8E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12B90A5712B2AE1300FE287A /* 915resolution.h */;
vrLen = 991;
vrLoc = 0;
};
12F4456712E5DC0800121851 /* 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>";
};
12F7FF0012BB9F3200949DEC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12FC25E812BB825300E9CFA8 /* drivers.c */;
branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
281281
282282
283283
284
284
285285
286286
287287
......
293293
294294
295295
296
296
297297
298298
299299
......
302302
303303
304304
305
305
306306
307307
308308
......
320320
321321
322322
323
323
324324
325325
326326
......
328328
329329
330330
331
331
332332
333333
334334
335
335
336336
337337
338338
......
396396
397397
398398
399
400399
401400
402401
......
409408
410409
411410
412
413411
414412
415413
416414
417415
418
419
420
421
422
416
417
418
419
420
421
422
423423
424424
425425
......
431431
432432
433433
434
434
435435
436
436
437437
438438
439439
440440
441
441
442442
443443
444444
......
451451
452452
453453
454
454
455455
456
456
457457
458458
459459
460460
461
461
462462
463463
464464
465
465
466466
467467
468468
......
477477
478478
479479
480
480
481481
482
482
483483
484484
485485
......
617617
618618
619619
620
620
621621
622622
623623
624624
625
625
626626
627627
628628
......
699699
700700
701701
702
702
703703
704704
705705
......
821821
822822
823823
824
824
825825
826
827
828
829
830
826
827
828
829
830
831831
832832
833833
......
854854
855855
856856
857
858
859857
860858
861859
862860
863861
864
862
865863
866864
867865
......
870868
871869
872870
873
871
874872
875873
876874
......
882880
883881
884882
883
884
885885
886886
887887
......
894894
895895
896896
897
897
898898
899899
900900
......
917917
918918
919919
920
921
920
921
922922
923923
924924
925925
926
926
927927
928928
929929
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
<string>{{0, 0}, {186, 636}}</string>
<string>{{0, 0}, {186, 647}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {203, 654}}</string>
<string>{{0, 0}, {203, 665}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>SCMStatusColumn</string>
<real>164</real>
</array>
<key>RubberWindowFrame</key>
<string>272 183 952 695 0 0 1440 878 </string>
<string>257 172 1021 706 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>fake_efi.c</string>
<string>boot.c</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>fake_efi.c</string>
<string>boot.c</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>1217945C12EDC36400F271E6</string>
<string>1255F81312F03ED000CE7802</string>
<key>history</key>
<array>
<string>12121ED112B261EA00207E55</string>
<string>12D332AA12C669090093EEDB</string>
<string>1265C97712C7554E0050D02E</string>
<string>12F1147112C7A41D0064D7EE</string>
<string>12C672F312C7C6BE0058B09B</string>
<string>12C672F512C7C6BE0058B09B</string>
<string>12FE983612C7CEEB001B1702</string>
<string>12FE984A12C7E11C001B1702</string>
<string>12D64B9F12D8EA0A00A1FE07</string>
<string>12E8842612D8F833004C76C8</string>
<string>1223EF9012E5D63A0019EC66</string>
<string>1271587812EA1C6400E3013B</string>
<string>12715CDF12EA253100E3013B</string>
<string>12715CE012EA253100E3013B</string>
<string>122A869712EC5429004312F4</string>
<string>122A869812EC5429004312F4</string>
<string>122A86C612ECA817004312F4</string>
<string>12D7F69F12ECAF1C00AFD4DA</string>
<string>12E0FC2912ECDBD600F07BFF</string>
<string>1217945912EDC36400F271E6</string>
<string>1217945A12EDC36400F271E6</string>
<string>1217945312EDC35E00F271E6</string>
<string>126C766312EEF67F00BDB81E</string>
<string>125437C812EF1E99007175C8</string>
<string>125437CA12EF1E99007175C8</string>
<string>125437CB12EF1E99007175C8</string>
<string>12569C8612F0115B005A9113</string>
<string>1255F81112F03ED000CE7802</string>
<string>1255F81212F03ED000CE7802</string>
</array>
</dict>
<key>SplitCount</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {744, 267}}</string>
<string>{{0, 0}, {813, 432}}</string>
<key>RubberWindowFrame</key>
<string>272 183 952 695 0 0 1440 878 </string>
<string>257 172 1021 706 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>267pt</string>
<string>432pt</string>
</dict>
<dict>
<key>ContentConfiguration</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 272}, {744, 382}}</string>
<string>{{0, 437}, {813, 228}}</string>
<key>RubberWindowFrame</key>
<string>272 183 952 695 0 0 1440 878 </string>
<string>257 172 1021 706 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
<string>382pt</string>
<string>228pt</string>
</dict>
</array>
<key>Proportion</key>
<string>744pt</string>
<string>813pt</string>
</dict>
</array>
<key>Name</key>
</array>
<key>TableOfContents</key>
<array>
<string>1217944E12EDC2DF00F271E6</string>
<string>1255F81512F03ED000CE7802</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>1217944F12EDC2DF00F271E6</string>
<string>1255F81612F03ED000CE7802</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>272 183 952 695 0 0 1440 878 </string>
<string>257 172 1021 706 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
<key>TableOfContents</key>
<array>
<string>12C26D3512B0DDFC00AF7F4B</string>
<string>1217945012EDC2DF00F271E6</string>
<string>1255F81712F03ED000CE7802</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
<string>120C1F1612ED82A000DC399E</string>
<string>1255F81812F03ED000CE7802</string>
<string>1C162984064C10D400B95A72</string>
<string>120C1F1712ED82A000DC399E</string>
<string>120C1F1812ED82A000DC399E</string>
<string>120C1F1912ED82A000DC399E</string>
<string>120C1F1A12ED82A000DC399E</string>
<string>120C1F1B12ED82A000DC399E</string>
<string>1255F81912F03ED000CE7802</string>
<string>1255F81A12F03ED000CE7802</string>
<string>1255F81B12F03ED000CE7802</string>
<string>1255F81C12F03ED000CE7802</string>
<string>1255F81D12F03ED000CE7802</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
<key>Dock</key>
<array>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<string>1CDD528C0622207200134675</string>
<key>PBXProjectModuleLabel</key>
<string>fake_efi.c</string>
<string></string>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Frame</key>
<string>{{0, 0}, {1109, 510}}</string>
<key>RubberWindowFrame</key>
<string>203 62 1109 816 0 0 1440 878 </string>
<string>238 61 1109 816 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<string>510pt</string>
</dict>
<dict>
<key>BecomeActive</key>
<true/>
<key>ContentConfiguration</key>
<dict>
<key>PBXProjectModuleGUID</key>
<key>Frame</key>
<string>{{0, 515}, {1109, 260}}</string>
<key>RubberWindowFrame</key>
<string>203 62 1109 816 0 0 1440 878 </string>
<string>238 61 1109 816 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>1217945712EDC35E00F271E6</string>
<string>1217945812EDC35E00F271E6</string>
<string>123D099F12F015ED00D5CB48</string>
<string>123D09A012F015ED00D5CB48</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
<key>WindowString</key>
<string>203 62 1109 816 0 0 1440 878 </string>
<string>238 61 1109 816 0 0 1440 878 </string>
<key>WindowToolGUID</key>
<string>1C530D57069F1CE1000CFCEE</string>
<key>WindowToolIsVisible</key>
branches/slice/CHANGES
11
2
3
4
5
26
37
48
Slice:
rev712
- correct module system as Meklort did to be Symbols.dylib embedded.
- return acpi_patcher to main sources to exclude obligatory module
- correct modules.c procedure register_hook_callback.
rev692
- add ATI 5xxx Enabler module on Kabyl's sources (not checked)
- corrections to open standards: EFI, UUID, SMBIOS, ACPI, EDID

Archive Download the corresponding diff file

Revision: 713