Chameleon

Chameleon Commit Details

Date:2011-01-24 16:25:56 (9 years 10 months ago)
Author:Sergey Slice
Commit:711
Parents: 710
Message:Embedded Symbols.dylib and ACPIpatcher.dylib, now boot file can be used without modules
Changes:
D/branches/slice/i386/modules/ACPIPatcher
M/branches/slice/i386/boot2/modules.h
M/branches/slice/i386/libsaio/acpi.h
M/branches/slice/i386/modules/Makefile
M/branches/slice/i386/libsaio/platform.c
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
M/branches/slice/i386/libsaio/cpu.c
M/branches/slice/i386/modules/MakeInc.dir
M/branches/slice/i386/libsaio/fake_efi.c
M/branches/slice/i386/libsaio/platform.h
M/branches/slice/i386/libsaio/disk.c
M/branches/slice/i386/modules/Resolution/Resolution.c
M/branches/slice/i386/modules/NVRAM/NVRAM.c
M/branches/slice/i386/libsaio/Makefile
M/branches/slice/i386/boot0/Makefile
M/branches/slice/i386/modules/GUI/gui.c
M/branches/slice/i386/boot2/Makefile
M/branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
M/branches/slice/revision
M/branches/slice/i386/boot2/boot.c
M/branches/slice/i386/libsaio/ext2fs.c
M/branches/slice/i386/boot2/modules.c
M/branches/slice/i386/modules/Memory/mem.c

File differences

branches/slice/i386/libsaio/ext2fs.c
1515
1616
1717
18
18
1919
2020
2121
bool EX2Probe (const void *buf)
{
return (OSReadLittleInt16(buf+0x438,0)==0xEF53);
return (OSReadLittleInt16(buf+0x438,0)==0xEF53); //
}
void EX2GetDescription(CICell ih, char *str, long strMaxLen)
branches/slice/i386/libsaio/Makefile
3939
4040
4141
42
42
4343
4444
4545
ufs.o ufs_byteorder.o \
vbe.o nbp.o smbios_patcher.o hfs.o hfs_compare.o \
xml.o ntfs.o msdos.o md5c.o device_tree.o \
cpu.o platform.o \
cpu.o platform.o acpi_patcher.o aml_generator.o \
fake_efi.o ext2fs.o \
pci_setup.o \
device_inject.o pci_root.o \
branches/slice/i386/libsaio/acpi.h
1717
1818
1919
20
2021
2122
2223
#define ACPI_SIGNATURE_UINT64_LE UINT64_LE_FROM_CHARS('R','S','D',' ','P','T','R',' ')
/* Per ACPI 3.0a spec */
// TODO Migrate
branches/slice/i386/libsaio/platform.c
99
1010
1111
12
12
1313
1414
1515
#include "bootstruct.h"
#include "pci.h"
#include "platform.h"
#include "cpu.h"
//#include "cpu.h"
#include "modules.h"
#include "efi.h"
branches/slice/i386/libsaio/cpu.c
9797
9898
9999
100
100
101101
102102
103103
{
PlatformInfo_t *p = Platform;
int i = 0;
uint8_t turbo;
uint8_t turbo = 0;
uint64_ttscFrequency, fsbFrequency, cpuFrequency;
uint64_tmsr; //, flex_ratio;
uint8_tmaxcoef, maxdiv, currcoef, currdiv, mindiv;
branches/slice/i386/libsaio/platform.h
1212
1313
1414
15
1516
1617
1718
extern bool platformCPUFeature(uint32_t);
extern void scan_platform(void);
extern void dumpPhysAddr(const char * title, void * a, int len);
extern void scan_cpu();
#define bit(n)(1UL << (n))
#define bitmask(h,l)((bit(h)|(bit(h)-1)) & ~(bit(l)-1))
branches/slice/i386/libsaio/disk.c
739739
740740
741741
742
742
743743
744744
745745
......
15031503
15041504
15051505
1506
1506
15071507
15081508
15091509
......
16421642
16431643
16441644
1645
1645
16461646
16471647
16481648
int spc;
struct driveInfo di;
boot_drive_info_t *dp;
verbose("diskScanFDiskBootVolumes %d\n", biosdev);
/* Initialize disk info */
if (getDriveInfo(biosdev, &di) != 0) {
return NULL;
BVRef diskScanBootVolumes( int biosdev, int * countPtr )
{
struct DiskBVMap * map;
struct DiskBVMap * map = NULL;
BVRef bvr;
int count = 0;
msglog(" bvr: %x, dev: %x, part: %d, flags: %x, vis: %d\n", bvr, bvr->biosdev, bvr->part_no, bvr->flags, bvr->visible);
}
msglog("count: %d\n", bvCount);
getc();
// getc();
#endif
*count = bvCount;
branches/slice/i386/libsaio/fake_efi.c
1111
1212
1313
14
14
1515
1616
1717
......
776776
777777
778778
779
780
779781
780
781
782782
783783
784784
#include "fake_efi.h"
#include "efi_tables.h"
#include "platform.h"
//#include "acpi_patcher.h"
#include "acpi_patcher.h"
#include "smbios_patcher.h"
#include "device_inject.h"
#include "convert.h"
//getSmbios(SMBIOS_ORIGINAL); //Slice - already done
getSmbiosProductName();
setupAcpi();
//execute_hook("setupEfiConfigurationTable", NULL, NULL, NULL, NULL);
execute_hook("setupEfiConfigurationTable", NULL, NULL, NULL, NULL);
// Add configuration table entries to both the services table and the device tree
setupEfiConfigurationTable();
addConfigurationTable(&gEfiSmbiosTableGuid, &smbios_p, NULL);
branches/slice/i386/boot0/Makefile
99
1010
1111
12
12
1313
1414
1515
all embedtheme optionrom: $(DIRS_NEEDED) boot0 boot0hfs chain0
boot0: boot0.s Makefile $(NASM)
boot0: boot0.s
@echo "\t[NASM] $@"
@$(NASM) boot0.s -o $(SYMROOT)/$@
branches/slice/i386/boot2/boot.c
5353
5454
5555
56
5657
5758
5859
......
6263
6364
6465
65
66
6667
6768
6869
#include "boot.h"
#include "bootstruct.h"
#include "fake_efi.h"
#include "acpi_patcher.h"
#include "sl.h"
#include "libsa.h"
#include "ramdisk.h"
#include "modules.h"
#define DEBUG 0
#define DEBUG 1
long gBootMode; /* defaults to 0 == kBootModeNormal */
bool gOverrideKernel;
branches/slice/i386/boot2/modules.c
376376
377377
378378
379
379
380380
381381
382382
......
930930
931931
932932
933
934
935
936
937
938
939
940
941
933942
934943
935944
......
941950
942951
943952
953
944954
945955
946956
......
960970
961971
962972
963
973
974
975
976
977
978
964979
965980
966981
......
972987
973988
974989
990
975991
976992
977993
......
979995
980996
981997
982
998
999
1000
1001
1002
1003
9831004
9841005
9851006
......
9911012
9921013
9931014
1015
9941016
9951017
9961018
......
10271049
10281050
10291051
1052
1053
1054
1055
1056
1057
10301058
10311059
1032
1060
10331061
10341062
10351063
10361064
10371065
1066
1067
1068
1069
1070
1071
10381072
10391073
10401074
1075
10411076
10421077
10431078
......
11751210
11761211
11771212
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
11891213
11901214
11911215
......
12001224
12011225
12021226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
12031239
12041240
12051241
}
else
{
verbose("Invalid mach magic\n");
verbose("Invalid mach magic 0x%X\n", ((struct mach_header*)binary)->magic);
getc();
return NULL;
}
case BIND_OPCODE_DO_BIND:
//DBG("BIND_OPCODE_DO_BIND\n");
if(libraryOrdinal == BIND_SPECIAL_DYLIB_FLAT_LOOKUP && type == BIND_TYPE_POINTER)
{
// HACK(ish)
// Internal symbol, don't bind
}
else
{
//printf("Binding symbol %s, libraryOrdinal = %d, symboFlags = %d, type = %d\n", symbolName, libraryOrdinal, symboFlags, type);
if(symbolAddr != 0xFFFFFFFF)
{
address = segmentAddress + (UInt32)base;
verbose("Unable to bind symbol %s, libraryOrdinal = %d, symboFlags = %d, type = %d\n", symbolName, libraryOrdinal, symboFlags, type);
getc();
}
}
segmentAddress += sizeof(void*);
break;
while(bind_stream[i] & 0x80);
if(libraryOrdinal == BIND_SPECIAL_DYLIB_FLAT_LOOKUP && type == BIND_TYPE_POINTER)
{
// Internal symbol, don't bind
}
else
{
if(symbolAddr != 0xFFFFFFFF)
{
address = segmentAddress + (UInt32)base;
verbose("Unable to bind symbol %s\n", symbolName);
getc();
}
}
segmentAddress += tmp + sizeof(void*);
case BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED:
//DBG("BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED\n");
if(libraryOrdinal == BIND_SPECIAL_DYLIB_FLAT_LOOKUP && type == BIND_TYPE_POINTER)
{
// Internal symbol, don't bind
}
else
{
if(symbolAddr != 0xFFFFFFFF)
{
address = segmentAddress + (UInt32)base;
verbose("Unable to bind symbol %s\n", symbolName);
getc();
}
}
segmentAddress += (immediate * sizeof(void*)) + sizeof(void*);
{
address = segmentAddress + (UInt32)base;
if(libraryOrdinal == BIND_SPECIAL_DYLIB_FLAT_LOOKUP && type == BIND_TYPE_POINTER)
{
// Internal symbol, don't bind
}
else
{
bind_location((UInt32*)address, (char*)symbolAddr, addend, BIND_TYPE_POINTER);
}
segmentAddress += tmp2 + sizeof(void*);
}
}
else
{
if(libraryOrdinal == BIND_SPECIAL_DYLIB_FLAT_LOOKUP && type == BIND_TYPE_POINTER)
{
// Internal symbol, don't bind
}
else
{
printf("Unable to bind symbol %s\n", symbolName);
getc();
}
}
break;
unsigned int lookup_all_symbols(const char* name)
{
unsigned int addr = 0xFFFFFFFF;
if(lookup_symbol && (UInt32)lookup_symbol != 0xFFFFFFFF)
{
addr = lookup_symbol(name);
if(addr != 0xFFFFFFFF)
{
//DBG("Internal symbol %s located at 0x%X\n", name, addr);
return addr;
}
}
symbolList_t* entry = moduleSymbols;
while(entry)
{
}
}
if(lookup_symbol && (UInt32)lookup_symbol != 0xFFFFFFFF)
{
addr = lookup_symbol(name);
if(addr != 0xFFFFFFFF)
{
//DBG("Internal symbol %s located at 0x%X\n", name, addr);
return addr;
}
}
#if DEBUG_MODULES
verbose("Unable to locate symbol %s\n", name);
getc();
branches/slice/i386/boot2/modules.h
1818
1919
2020
21
2221
2322
2423
#define SYMBOLS_MODULE "Symbols.dylib"
//#define SYMBOL_DYLD_STUB_BINDER"dyld_stub_binder"
#define SYMBOL_LOOKUP_SYMBOL"_lookup_symbol"
#define STUB_ENTRY_SIZE6
branches/slice/i386/boot2/Makefile
4040
4141
4242
43
44
43
4544
45
46
4647
4748
4849
......
6061
6162
6263
63
64
65
64
65
66
6667
6768
6869
......
7576
7677
7778
79
80
81
7882
83
7984
80
85
8186
8287
8388
84
89
8590
86
87
88
89
90
91
92
93
9491
9592
93
94
95
96
97
98
99
100
96101
102
103
97104
105
98106
99
107
100108
101109
102110
......
111119
112120
113121
114
122
115123
116124
117
118
119
125
126
127
120128
121129
122130
......
124132
125133
126134
127
128135
129136
130137
# The ordering is important;
# boot2.o must be first.
OBJS = boot2.o boot.o graphics.o drivers.o prompt.o options.o lzss.o mboot.o \
ramdisk.o resume.o bmdecompress.o modules.o
# button.o browser.o scrollbar.o == NOTYET
ramdisk.o resume.o bmdecompress.o modules.o modules_support.o
#OBJS = boot2.o boot.o modules.o modules_support.o
UTILDIR = ../util
SFILES = boot2.s
CFILES = boot.c graphics.c drivers.c prompt.c options.c mboot.c
#
SYMBOLS_MODULE = Symbols.dylib
SYMBOL_START= _symbols_module_start
SYMBOL_ADDR = $(shell printf "%d" 0x`nm -s __DATA __data $(SYMROOT)/boot_embeded.sys | grep " $(SYMBOL_START)$$" | cut -f 1 -d " "`)
DATA_OFFSET = $(shell otool -l $(SYMROOT)/boot_embeded.sys | grep __data -A 4 | grep __DATA -A 3 | tail -n 1 | cut -f 6 -d " ")
DATA_ADDR = $(shell printf "%d" `otool -l $(SYMROOT)/boot_embeded.sys | grep __data -A 4 | grep __DATA -A 3 | head -n 2 | tail -n 1 | cut -f 8 -d " "`)
SYMBOL_ADDR = $(shell printf "%d" 0x`nm -s __DATA __data $(SYMROOT)/boot.sys | grep " $(SYMBOL_START)$$" | cut -f 1 -d " "`)
DATA_OFFSET = $(shell otool -l $(SYMROOT)/boot.sys | grep __data -A 4 | grep __DATA -A 3 | tail -n 1 | cut -f 6 -d " ")
DATA_ADDR = $(shell printf "%d" `otool -l $(SYMROOT)/boot.sys | grep __data -A 4 | grep __DATA -A 3 | head -n 2 | tail -n 1 | cut -f 8 -d " "`)
PATCH_ADDR = $(shell echo ${SYMBOL_ADDR}-${DATA_ADDR}+${DATA_OFFSET} | bc)
@$(LD) -static -Wl,-preload -Wl,-segaddr,__INIT,$(BOOT2ADDR) \
-nostdlib -arch i386 -Wl,-segalign,20 \
-o $(SYMROOT)/boot.sys $(filter %.o,$^) $(LIBS) -lcc_kext
@cp $(SYMROOT)/boot.sys $(SYMROOT)/boot2.sys
@make Symbols.dylib
@${RM} $(SYMROOT)/boot.sys
@echo "\t[LD] boot_embeded.sys"
@echo "\t[LD] boot.sys"
@$(LD) -static -Wl,-preload -Wl,-segaddr,__INIT,$(BOOT2ADDR) \
-nostdlib -arch i386 -Wl,-segalign,20 \
-Wl,-sectcreate,__DATA,__Symbols,$(SYMROOT)/Symbols.dylib \
-o $(SYMROOT)/boot_embeded.sys $(filter %.o,$^) $(LIBS) -lcc_kext
-o $(SYMROOT)/boot.sys $(filter %.o,$^) $(LIBS) -lcc_kext
#@ld -arch i386 \
#-undefined dynamic_lookup \
#-dylib -read_only_relocs suppress \
#-S -x -Z -dead_strip_dylibs \
#-no_uuid \
#-final_output Symbols.dylib \
#$(filter %.o,$^) $(LIBS) \
#-o $(OBJROOT)/Symbols_LINKER_ONLY.dylib
@ld -arch i386 \
-undefined dynamic_lookup \
-dylib -read_only_relocs suppress \
-S -x -Z -dead_strip_dylibs \
-no_uuid \
-final_output Symbols \
$(filter %.o,$^) $(LIBS) \
-o $(OBJROOT)/Symbols_LINKER_ONLY.dylib
@make embed_symbols# this is done in a sub process after boot.sys exists so the strings are populated correctly
@${RM} $(SYMROOT)/boot2.sys
@##${RM} $(SYMROOT)/${SYMBOLS_MODULE}
@${RM} $(SYMROOT)/${SYMBOLS_MODULE}
@##size $(SYMROOT)/boot.sys
@ls -l $(SYMROOT)/boot
embed_symbols: machOconv
@echo ================= Embedding Symbols.dylib =================
@echo "\t[MACHOCONV] boot"
@$(SYMROOT)/machOconv $(SYMROOT)/boot.sys $(SYMROOT)/boot &> /dev/null
@$(SYMROOT)/machOconv $(SYMROOT)/boot2.sys $(SYMROOT)/boot &> /dev/null
@echo ******* Patching at $(PATCH_ADDR) ******
@stat -f%z $(SYMROOT)/boot | perl -ane "print pack('V',@F[0]);" | dd conv=notrunc of=${SYMROOT}/boot_embeded.sys bs=1 count=4 seek=$(PATCH_ADDR) &> /dev/null
@echo "\t[MACHOCONV] boot_embeded"
@$(SYMROOT)/machOconv $(SYMROOT)/boot_embeded.sys $(SYMROOT)/boot_embeded
@stat -f%z $(SYMROOT)/boot | perl -ane "print pack('V',@F[0]);" | dd conv=notrunc of=${SYMROOT}/boot.sys bs=1 count=4 seek=$(PATCH_ADDR) &> /dev/null
@echo "\t[MACHOCONV] boot"
@$(SYMROOT)/machOconv $(SYMROOT)/boot.sys $(SYMROOT)/boot
prompt.o: vers.h
@echo "#define I386BOOT_VERSION \"5.0.132\"" > $(SYMROOT)/vers.h
@echo "#define I386BOOT_BUILDDATE \"`date \"+%Y-%m-%d %H:%M:%S\"`\"" >> $(SYMROOT)/vers.h
@echo "#define I386BOOT_CHAMELEONVERSION \"`cat ../../version`\"" >> $(SYMROOT)/vers.h
#@echo "#define I386BOOT_CHAMELEONREVISION \"`cat ../../revision`\"" >> $(SYMROOT)/vers.h
@echo "#define I386BOOT_CHAMELEONREVISION \"`svnversion -n | tr -d [:alpha:]`\"" >> $(SYMROOT)/vers.h
embedded.h:
branches/slice/i386/modules/NVRAM/NVRAM.c
8484
8585
8686
87
87
8888
8989
9090
......
9393
9494
9595
96
96
9797
9898
9999
......
115115
116116
117117
118
118
119119
120120
121121
uint16_tbootOptionNumber = 0;
int i, j;
BLESS_EFI_LOAD_OPTION* NextBoot =(BLESS_EFI_LOAD_OPTION*)gBootOrder;
//BLESS_EFI_LOAD_OPTION* NextBoot =(BLESS_EFI_LOAD_OPTION*)gBootOrder;
DBG("NVRAM started with ModulesLoaded\n");
//bool UseNVRAM = FALSE;
bool ClearNVRAM = FALSE;
const char* buff;
TagPtrdictionary;
//TagPtrdictionary;
int cnt;
var = malloc(sizeof(variables)+1);
ClearNVRAM = getValueForKey(kClearNVRAM, &buff, &cnt, &bootInfo->bootConfig);
}
}
Node* optionsNode = DT__FindNode("/fakenvram", true);
Node* optionsNode = DT__FindNode("/options", true); //"/fakenvram"
ffName = malloc(sizeof(PLATFORM_UUID)+1);
strcpy(ffName, PLATFORM_UUID);
ret = getSystemID();
branches/slice/i386/modules/GUI/gui.c
18831883
18841884
18851885
1886
1886
18871887
18881888
18891889
if (usePngImage && bootImageData == NULL) {
loadBootGraphics();
}
//Slice - attention!
// parse screen size parameters
if(is_module_loaded("Resolution.dylib"))
{
branches/slice/i386/modules/MakeInc.dir
2727
2828
2929
30
3130
3231
3332
......
3635
3736
3837
39
4038
4139
40
4241
4342
4443
45
44
4645
4746
4847
......
5352
5453
5554
56
5755
5856
5957
......
6260
6361
6462
65
6663
6764
65
6866
67
68
6969
7070
7171
7272
73
73
7474
7575
7676
77
77
7878
7979
8080
@if [ -f "$(SYMROOT)/uClibc++.dylib" ]; then if [ x"$(shell nm $(OBJROOT)/*.o 2>/dev/null | grep " __Z")" == x"" ]; then mv $(SYMROOT)/uClibc++.dylib $(SYMROOT)/../uClibc++.dylib; fi; fi;
@ld -arch i386 \
-undefined dynamic_lookup \
-alias $(MODULE_START) start \
-dylib -read_only_relocs suppress \
-S -x -Z -dead_strip_dylibs \
-final_output $(MODULE_NAME) \
-L$(OBJROOT)/ \
-L$(OBJROOT)/../ \
-L$(OBJROOT)/../*/ \
-L$(SYMROOT)/ \
$(OBJROOT)/*.o \
-weak_library $(OBJROOT)/../../boot2/Symbols_LINKER_ONLY.dylib \
-weak_library $(SYMROOT)/*.dylib \
-o $(SYMROOT)/$(MODULE_NAME).dylib
#@cp -rf include/* ../module_includes/ &> /dev/null || true
@cp -rf include/* ../module_includes/ &> /dev/null || true
@if [ -f "$(SYMROOT)/../uClibc++.dylib" ]; then if [ x"$(shell nm $(OBJROOT)/*.o 2>/dev/null | grep " __Z")" == x"" ]; then mv $(SYMROOT)/../uClibc++.dylib $(SYMROOT)/uClibc++.dylib; fi; fi;
@rm -rf $(SYMROOT)/$(MODULE_NAME).dylib#ensure module doesn't link with old version of self
@echo "\t[LD] $(MODULE_NAME).dylib"
@ld -arch i386 \
-undefined dynamic_lookup \
-alias $(MODULE_START) start \
-dylib -read_only_relocs suppress \
-S -x -Z -dead_strip_dylibs \
-final_output $(MODULE_NAME) \
-L$(OBJROOT)/ \
-L$(OBJROOT)/../ \
-L$(OBJROOT)/../*/ \
-L$(SYMROOT)/ \
$(OBJROOT)/*.o \
-weak_library $(OBJROOT)/../../boot2/Symbols_LINKER_ONLY.dylib \
-o $(SYMROOT)/$(MODULE_NAME).dylib
@cp -rf include/* ../module_includes/ &> /dev/null || true
endif
%.o: %.c
@echo "\t[CC] $<"
@$(CC) $(CPPFLAGS) $(CFLAGS) -I../include/ -D__KLIBC__ $(DEFINES) -c "$<" $(INC) -o "$(OBJROOT)/$@"
@$(CC) $(CPPFLAGS) $(CFLAGS) -I../include/ -Iinclude/ -I../module_includes/ -D__KLIBC__ $(DEFINES) -c "$<" $(INC) -o "$(OBJROOT)/$@"
%.o: %.cpp
@echo "\t[CPP] $<"
@$(CPP) $(CPPFLAGS) $(CFLAGS) -I../include/ -D__KLIBC__ $(DEFINES) -c "$<" $(INC) -o "$(OBJROOT)/$@"
@$(CPP) $(CPPFLAGS) $(CFLAGS) -I../include/ -Iinclude/ -I../module_includes/ -D__KLIBC__ $(DEFINES) -c "$<" $(INC) -o "$(OBJROOT)/$@"
branches/slice/i386/modules/Resolution/Resolution.c
99
1010
1111
12
13
12
1413
1514
void Resolution_start()
{
//verbose("Resolution_start\n");
patchVideoBios();
//patchVideoBios();
}
branches/slice/i386/modules/Memory/mem.c
77
88
99
10
10
1111
1212
1313
#include "libsaio.h"
#include "pci.h"
#include "platform.h"
#include "cpu.h"
//#include "cpu.h"
#include "mem.h"
#include "smbios_patcher.h"
branches/slice/i386/modules/Makefile
2626
2727
2828
29
30
29
30
3131
3232
3333
VPATH = $(OBJROOT):$(SYMROOT)
# The order of building is important.
SUBDIRS = klibc uClibc++ Resolution KernelPatcher GUI KextPatcher GraphicsEnabler HPET USBFix Memory Networking NetbookInstaller ACPIPatcher NVRAM ATI5000Enabler HelloWorld
#SUBDIRS = HelloWorld
SUBDIRS = klibc uClibc++ Resolution KernelPatcher GUI KextPatcher GraphicsEnabler HPET USBFix Memory Networking NetbookInstaller NVRAM ATI5000Enabler HelloWorld
#SUBDIRS = HelloWorld ACPIPatcher
all embedtheme optionrom tags debug install installhdrs: objroot_dirs lazydylib1.o
@for i in ${SUBDIRS}; \
branches/slice/revision
1
1
676:696
676:708
branches/slice/ChamMek/ChamMek.xcodeproj/slice.pbxuser
9090
9191
9292
93
94
93
94
9595
9696
9797
......
100100
101101
102102
103
104
105
106
103107
104
108
109
110
105111
106112
107113
108114
109115
110116
111
112117
113118
114119
115
120
121
122
116123
117
118124
119125
120126
......
135141
136142
137143
138
139144
140145
141146
......
156161
157162
158163
164
159165
160166
167
161168
162169
163170
......
166173
167174
168175
169
170176
171177
172178
......
200206
201207
202208
209
210
211
212
213
214
215
216
217
218
219
220
203221
204222
205223
......
288306
289307
290308
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
291365
292366
293367
......
319393
320394
321395
322
396
397
398
399
400
401
402
403
323404
324
325
405
406
407
408
409
410
411
412
413
414
415
416
326417
327
418
328419
329
330
420
421
331422
332
423
333424
334425
335
336
426
427
337428
338429
339
430
340431
341432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
342450
343451
344452
345453
454
455
456
457
458
459
460
346461
347462
348463
......
445560
446561
447562
448
449
450
451
452
453
454
455
456
457
458563
459564
460565
......
499604
500605
501606
502
607
608
609
610
611
612
613
614
615
616
617
503618
504619
505
506
620
621
507622
508623
509
624
510625
511
512
513
514
626
627
628
629
515630
516
517
631
632
518633
519
520
521
522
523
524
634
635
636
637
638
639
640
641
642
525643
526644
527645
......
533651
534652
535653
536
537
538
539
540
541
542
543
544
545
546654
547655
548656
......
9521060
9531061
9541062
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
9721063
9731064
9741065
......
12831374
12841375
12851376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
12861394
12871395
12881396
......
13241432
13251433
13261434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
13271445
13281446
13291447
......
14601578
14611579
14621580
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
14731581
14741582
1583
14751584
14761585
14771586
PBXSymbolsDataSource_ReferenceNameID,
);
};
PBXPerProjectTemplateStateSaveDate = 317053851;
PBXWorkspaceStateSaveDate = 317053851;
PBXPerProjectTemplateStateSaveDate = 317571794;
PBXWorkspaceStateSaveDate = 317571794;
};
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 */;
12251A0412CE29EF00273689 /* PBXTextBookmark */ = 12251A0412CE29EF00273689 /* PBXTextBookmark */;
122A869712EC5429004312F4 /* PBXTextBookmark */ = 122A869712EC5429004312F4 /* PBXTextBookmark */;
122A869812EC5429004312F4 /* PBXTextBookmark */ = 122A869812EC5429004312F4 /* PBXTextBookmark */;
122A86C612ECA817004312F4 /* PBXTextBookmark */ = 122A86C612ECA817004312F4 /* PBXTextBookmark */;
124C493212B8D846005AA276 /* PBXTextBookmark */ = 124C493212B8D846005AA276 /* PBXTextBookmark */;
124C493712B8D846005AA276 /* PBXTextBookmark */ = 124C493712B8D846005AA276 /* PBXTextBookmark */;
124C494212B8E8C2005AA276 /* PBXTextBookmark */ = 124C494212B8E8C2005AA276 /* PBXTextBookmark */;
124C494312B8E8C2005AA276 /* PBXTextBookmark */ = 124C494312B8E8C2005AA276 /* PBXTextBookmark */;
124C494512B8E8C2005AA276 /* PBXTextBookmark */ = 124C494512B8E8C2005AA276 /* PBXTextBookmark */;
124C494B12B8EA5D005AA276 /* PBXTextBookmark */ = 124C494B12B8EA5D005AA276 /* PBXTextBookmark */;
1265C97612C7554E0050D02E /* PBXTextBookmark */ = 1265C97612C7554E0050D02E /* PBXTextBookmark */;
1265C97712C7554E0050D02E /* PBXTextBookmark */ = 1265C97712C7554E0050D02E /* PBXTextBookmark */;
1267813012B7B13E00A25CED /* PBXTextBookmark */ = 1267813012B7B13E00A25CED /* PBXTextBookmark */;
12679BA312BE822E00E3637F /* PBXTextBookmark */ = 12679BA312BE822E00E3637F /* PBXTextBookmark */;
12783A9B12E5D46B0095C1BA /* PBXTextBookmark */ = 12783A9B12E5D46B0095C1BA /* PBXTextBookmark */;
1271587812EA1C6400E3013B /* PBXTextBookmark */ = 1271587812EA1C6400E3013B /* PBXTextBookmark */;
12715CDF12EA253100E3013B /* PBXTextBookmark */ = 12715CDF12EA253100E3013B /* PBXTextBookmark */;
12715CE012EA253100E3013B /* PBXTextBookmark */ = 12715CE012EA253100E3013B /* PBXTextBookmark */;
1288318212C3608100EA4CB2 /* PBXTextBookmark */ = 1288318212C3608100EA4CB2 /* PBXTextBookmark */;
128A97B712C2336000600556 /* PBXTextBookmark */ = 128A97B712C2336000600556 /* PBXTextBookmark */;
128A97B812C2336000600556 /* PBXTextBookmark */ = 128A97B812C2336000600556 /* PBXTextBookmark */;
128A9AF412C233CE00600556 /* PBXTextBookmark */ = 128A9AF412C233CE00600556 /* PBXTextBookmark */;
1299A51F12B3C328007ED516 /* PBXTextBookmark */ = 1299A51F12B3C328007ED516 /* PBXTextBookmark */;
12BF14DA12B3CF8E00D798FE /* PBXTextBookmark */ = 12BF14DA12B3CF8E00D798FE /* PBXTextBookmark */;
12C246F412C87C7C007E8339 /* PBXTextBookmark */ = 12C246F412C87C7C007E8339 /* PBXTextBookmark */;
12C2907612C8962900984F8F /* PBXTextBookmark */ = 12C2907612C8962900984F8F /* PBXTextBookmark */;
12C2B36812E5D8B600894A4E /* PBXTextBookmark */ = 12C2B36812E5D8B600894A4E /* PBXTextBookmark */;
12C5020712D8B82400EDCC4E /* PBXTextBookmark */ = 12C5020712D8B82400EDCC4E /* PBXTextBookmark */;
12C672F312C7C6BE0058B09B /* PBXTextBookmark */ = 12C672F312C7C6BE0058B09B /* PBXTextBookmark */;
12C672F512C7C6BE0058B09B /* PBXTextBookmark */ = 12C672F512C7C6BE0058B09B /* 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 */;
12EFE65A12B547A7002A1712 /* PBXTextBookmark */ = 12EFE65A12B547A7002A1712 /* PBXTextBookmark */;
12EFE95E12B549B6002A1712 /* PBXTextBookmark */ = 12EFE95E12B549B6002A1712 /* PBXTextBookmark */;
12F1147112C7A41D0064D7EE /* PBXTextBookmark */ = 12F1147112C7A41D0064D7EE /* PBXTextBookmark */;
12F4456612E5DC0800121851 /* PBXTextBookmark */ = 12F4456612E5DC0800121851 /* PBXTextBookmark */;
12F7FF0012BB9F3200949DEC /* PBXTextBookmark */ = 12F7FF0012BB9F3200949DEC /* PBXTextBookmark */;
12FC0E7512BB4B5200E9CFA8 /* PBXTextBookmark */ = 12FC0E7512BB4B5200E9CFA8 /* PBXTextBookmark */;
12FC0E9412BB65A800E9CFA8 /* PBXTextBookmark */ = 12FC0E9412BB65A800E9CFA8 /* 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 = 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;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/stringTable.c;
sourceTree = "<absolute>";
};
12251A0412CE29EF00273689 /* PBXTextBookmark */ = {
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 = 12436D8F12C9E14000F47D26 /* gui.c */;
name = "gui.c: 405";
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 = "disk.h: 1";
rLen = 0;
rLoc = 11927;
rLoc = 0;
rType = 0;
vrLen = 505;
vrLoc = 11479;
vrLen = 294;
vrLoc = 0;
};
123C5F9112C8AB2C00DFC2D4 /* edid.h */ = {
122A869912EC5429004312F4 /* disk.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
name = edid.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.h;
name = disk.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/disk.h;
sourceTree = "<absolute>";
};
12436D8F12C9E14000F47D26 /* gui.c */ = {
122A869C12EC5429004312F4 /* disk.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = disk.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/disk.c;
sourceTree = "<absolute>";
};
122A86C612ECA817004312F4 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 122A869C12EC5429004312F4 /* disk.c */;
name = "disk.c: 874";
rLen = 10;
rLoc = 25878;
rType = 0;
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;
name = edid.h;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/modules/Resolution/edid.h;
sourceTree = "<absolute>";
};
124C492812B8C915005AA276 /* Memory.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
vrLen = 554;
vrLoc = 5486;
};
1265C97612C7554E0050D02E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 121E9E4112C6A6F9000B6ED3 /* gma.c */;
name = "gma.c: 21";
rLen = 0;
rLoc = 423;
rType = 0;
vrLen = 1355;
vrLoc = 348;
};
1265C97712C7554E0050D02E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1265C97812C7554E0050D02E /* basic_definitions */;
vrLen = 894;
vrLoc = 14871;
};
12783A8D12E5D3620095C1BA /* boot.c */ = {
1271587812EA1C6400E3013B /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12F4456712E5DC0800121851 /* NVRAM.c */;
name = "NVRAM.c: 111";
rLen = 0;
rLoc = 2986;
rType = 0;
vrLen = 745;
vrLoc = 2442;
};
1271587B12EA1C6400E3013B /* ntfs.c */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.c;
name = boot.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/boot2/boot.c;
name = ntfs.c;
path = /Users/slice/Projects/Chameleons/chameleon/branches/slice/i386/libsaio/ntfs.c;
sourceTree = "<absolute>";
};
12783A9B12E5D46B0095C1BA /* PBXTextBookmark */ = {
12715CDF12EA253100E3013B /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12783A8D12E5D3620095C1BA /* boot.c */;
name = "boot.c: 373";
rLen = 14;
rLoc = 10989;
fRef = 1271587B12EA1C6400E3013B /* ntfs.c */;
name = "ntfs.c: 70";
rLen = 10;
rLoc = 2053;
rType = 0;
vrLen = 879;
vrLoc = 10251;
vrLen = 835;
vrLoc = 1675;
};
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>";
12715CE012EA253100E3013B /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 121E9E4112C6A6F9000B6ED3 /* gma.c */;
name = "gma.c: 130";
rLen = 9;
rLoc = 4027;
rType = 0;
vrLen = 1331;
vrLoc = 3531;
};
1288318212C3608100EA4CB2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
vrLen = 858;
vrLoc = 0;
};
128A97B712C2336000600556 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1279BD7512BF4D8700612F62 /* ACPIPatcher.c */;
name = "ACPIPatcher.c: 61";
rLen = 8;
rLoc = 1715;
rType = 0;
vrLen = 561;
vrLoc = 1350;
};
128A97B812C2336000600556 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 08FB7796FE84155DC02AAC07 /* main.c */;
vrLen = 784;
vrLoc = 20063;
};
12C2B36812E5D8B600894A4E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12C2B36912E5D8B600894A4E /* NVRAM.c */;
name = "NVRAM.c: 284";
rLen = 0;
rLoc = 7929;
rType = 0;
vrLen = 466;
vrLoc = 7692;
};
12C2B36912E5D8B600894A4E /* 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>";
};
12C5020712D8B82400EDCC4E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12D52EA712D7377E00A23AEF /* resume.c */;
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;
};
12F4456612E5DC0800121851 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 12F4456712E5DC0800121851 /* NVRAM.c */;
name = "NVRAM.c: 111";
rLen = 0;
rLoc = 2986;
rType = 0;
vrLen = 799;
vrLoc = 2442;
};
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>";
branches/slice/ChamMek/ChamMek.xcodeproj/slice.mode1v3
274274
275275
276276
277
278
279
277280
278281
279282
......
299302
300303
301304
302
305
303306
304307
305308
......
317320
318321
319322
320
323
321324
322325
323326
......
325328
326329
327330
328
331
329332
330333
331334
332
335
333336
334337
335338
......
381384
382385
383386
384
385387
386388
387389
......
392394
393395
394396
395
396397
397398
398399
......
404405
405406
406407
407
408408
409409
410410
411
412411
413
412
413
414
415
416
417
418
419
420
421
422
414423
415424
416425
......
422431
423432
424433
425
434
426435
427
436
428437
429438
430439
431440
432
441
433442
434443
435444
......
442451
443452
444453
445
454
446455
447
456
448457
449458
450459
451460
452
461
453462
454463
455464
......
468477
469478
470479
471
480
472481
473
482
474483
475484
476485
......
608617
609618
610619
620
611621
612622
613623
614624
615
625
616626
617627
618628
......
689699
690700
691701
692
702
693703
694704
695705
......
811821
812822
813823
814
824
815825
816
817
818
819
820
826
827
828
829
830
821831
822832
823833
......
844854
845855
846856
857
858
847859
848860
849861
850862
851863
852
864
853865
854866
855867
......
858870
859871
860872
861
873
862874
863875
864876
......
870882
871883
872884
873
874
875885
876886
877887
......
884894
885895
886896
887
897
888898
889899
890900
......
907917
908918
909919
910
911
920
921
912922
913923
914924
915925
916
926
917927
918928
919929
<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>370 183 952 695 0 0 1440 878 </string>
<string>272 183 952 695 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>NVRAM.c</string>
<string>fake_efi.c</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
<string>NVRAM.c</string>
<string>fake_efi.c</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>12F4456612E5DC0800121851</string>
<string>1217945C12EDC36400F271E6</string>
<key>history</key>
<array>
<string>12121ED112B261EA00207E55</string>
<string>12F7FF0012BB9F3200949DEC</string>
<string>12DCD38E12BBA5D600A20635</string>
<string>12679BA312BE822E00E3637F</string>
<string>128A97B712C2336000600556</string>
<string>128A97B812C2336000600556</string>
<string>128A9AF412C233CE00600556</string>
<string>1288318212C3608100EA4CB2</string>
<string>12D3329E12C669090093EEDB</string>
<string>12D332A512C669090093EEDB</string>
<string>12D332AA12C669090093EEDB</string>
<string>1265C97612C7554E0050D02E</string>
<string>1265C97712C7554E0050D02E</string>
<string>12F1147112C7A41D0064D7EE</string>
<string>12C672F312C7C6BE0058B09B</string>
<string>12C246F412C87C7C007E8339</string>
<string>12C2907612C8962900984F8F</string>
<string>12D7EC0512C8C5EA0021414C</string>
<string>12251A0412CE29EF00273689</string>
<string>12C5020712D8B82400EDCC4E</string>
<string>12D64B9F12D8EA0A00A1FE07</string>
<string>12E8842612D8F833004C76C8</string>
<string>12783A9B12E5D46B0095C1BA</string>
<string>1223EF9012E5D63A0019EC66</string>
<string>12C2B36812E5D8B600894A4E</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>
</array>
</dict>
<key>SplitCount</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {744, 372}}</string>
<string>{{0, 0}, {744, 267}}</string>
<key>RubberWindowFrame</key>
<string>370 183 952 695 0 0 1440 878 </string>
<string>272 183 952 695 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>372pt</string>
<string>267pt</string>
</dict>
<dict>
<key>ContentConfiguration</key>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 377}, {744, 277}}</string>
<string>{{0, 272}, {744, 382}}</string>
<key>RubberWindowFrame</key>
<string>370 183 952 695 0 0 1440 878 </string>
<string>272 183 952 695 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
<string>277pt</string>
<string>382pt</string>
</dict>
</array>
<key>Proportion</key>
</array>
<key>TableOfContents</key>
<array>
<string>12F4456812E5DC0800121851</string>
<string>1217944E12EDC2DF00F271E6</string>
<string>1CE0B1FE06471DED0097A5F4</string>
<string>12F4456912E5DC0800121851</string>
<string>1217944F12EDC2DF00F271E6</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>12C26D3512B0DDFC00AF7F4B</string>
<string>/Users/slice/Projects/Chameleons/chameleon/branches/slice/ChamMek/ChamMek.xcodeproj</string>
</array>
<key>WindowString</key>
<string>370 183 952 695 0 0 1440 878 </string>
<string>272 183 952 695 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>
<key>TableOfContents</key>
<array>
<string>12C26D3512B0DDFC00AF7F4B</string>
<string>12F4456A12E5DC0800121851</string>
<string>1217945012EDC2DF00F271E6</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
<string>1278362312E5D3540095C1BA</string>
<string>120C1F1612ED82A000DC399E</string>
<string>1C162984064C10D400B95A72</string>
<string>1278362412E5D3540095C1BA</string>
<string>1278362512E5D3540095C1BA</string>
<string>1278362612E5D3540095C1BA</string>
<string>1278362712E5D3540095C1BA</string>
<string>1278362812E5D3540095C1BA</string>
<string>120C1F1712ED82A000DC399E</string>
<string>120C1F1812ED82A000DC399E</string>
<string>120C1F1912ED82A000DC399E</string>
<string>120C1F1A12ED82A000DC399E</string>
<string>120C1F1B12ED82A000DC399E</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>stringTable.c</string>
<string>fake_efi.c</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
<key>Frame</key>
<string>{{0, 0}, {1109, 510}}</string>
<key>RubberWindowFrame</key>
<string>117 62 1109 816 0 0 1440 878 </string>
<string>203 62 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>117 62 1109 816 0 0 1440 878 </string>
<string>203 62 1109 816 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXProjectFindModule</string>
<key>TableOfContents</key>
<array>
<string>1C530D57069F1CE1000CFCEE</string>
<string>1223EF8E12E5D6370019EC66</string>
<string>1223EF8F12E5D6370019EC66</string>
<string>1217945712EDC35E00F271E6</string>
<string>1217945812EDC35E00F271E6</string>
<string>1CDD528C0622207200134675</string>
<string>1CD0528E0623707200166675</string>
</array>
<key>WindowString</key>
<string>117 62 1109 816 0 0 1440 878 </string>
<string>203 62 1109 816 0 0 1440 878 </string>
<key>WindowToolGUID</key>
<string>1C530D57069F1CE1000CFCEE</string>
<key>WindowToolIsVisible</key>

Archive Download the corresponding diff file

Revision: 711