Chameleon

Chameleon Commit Details

Date:2014-10-30 17:44:46 (9 years 5 months ago)
Author:ErmaC
Commit:2456
Parents: 2455
Message:- Update Chameleon.xcodeproj - (re)enable klibc module - Typos - Merge part of bitshoveler commits : Remove "-x" option from "ld" command which breaks build under newer Xcode versions, comment out some unused functions by expanding "#if UNUSED" conditional, comment out unused static functions, which cause build to fail in "release" mode, fix null pointer handling, only write terminating null char if malloc succeeded, fix memory leak.
Changes:
M/trunk/i386/modules/klibc/Cconfig
M/trunk/i386/boot2/picopng.c
M/trunk/i386/libsaio/gma.c
M/trunk/i386/boot2/boot.c
M/trunk/i386/modules/klibc/strndup.c
M/trunk/i386/libsaio/nvidia.c
M/trunk/CHANGES
M/trunk/i386/libsaio/vbe.c
M/trunk/package/OptionalSettings/PowerManagement.txt
M/trunk/i386/libsaio/stringTable.c
M/trunk/i386/libsaio/hfs.c
M/trunk/package/Resources/templates/Localizable.strings
M/trunk/i386/boot2/drivers.c
M/trunk/i386/libsaio/acpi_patcher.c
M/trunk/Chameleon.xcodeproj/project.pbxproj
M/trunk/i386/libsaio/bootargs.h
M/trunk/i386/boot2/gui.c
M/trunk/i386/libsaio/cpu.c
M/trunk/i386/modules/MakeInc.dir
M/trunk/i386/libsaio/smbios_getters.c
M/trunk/i386/libsaio/disk.c
M/trunk/i386/libsaio/device_inject.c
M/trunk/i386/util/bdmesg.c
M/trunk/i386/libsaio/hda.c
M/trunk/i386/libsaio/smbios.c

File differences

trunk/Chameleon.xcodeproj/project.pbxproj
113113
114114
115115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
116224
117225
118226
......
122230
123231
124232
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186233
187234
188235
......
11831230
11841231
11851232
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
12171233
12181234
12191235
......
12831299
12841300
12851301
1286
1302
12871303
12881304
12891305
......
33523368
33533369
33543370
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
33863402
33873403
33883404
......
33903406
33913407
33923408
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
34543486
34553487
34563488
......
37313763
37323764
37333765
3734
3766
37353767
37363768
37373769
......
38133845
38143846
38153847
3816
38173848
38183849
38193850
......
38243855
38253856
38263857
3827
38283858
38293859
38303860
360A04CE1861F48F0091F464 /* xml.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = xml.h; sourceTree = "<group>"; };
361BC70214BD977700236488 /* Changes.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changes.txt; sourceTree = "<group>"; };
361BC70B14BD97C800236488 /* pkg.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; name = pkg.zip; path = Icons/pkg.zip; sourceTree = "<group>"; };
364B195E1A029963009A30BA /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = "<group>"; };
364B195F1A029963009A30BA /* boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boot.png; sourceTree = "<group>"; };
364B19601A029963009A30BA /* device_cdrom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_cdrom.png; sourceTree = "<group>"; };
364B19611A029963009A30BA /* device_ext3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ext3.png; sourceTree = "<group>"; };
364B19621A029963009A30BA /* device_fat16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat16.png; sourceTree = "<group>"; };
364B19631A029963009A30BA /* device_fat32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat32.png; sourceTree = "<group>"; };
364B19641A029963009A30BA /* device_generic.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_generic.png; sourceTree = "<group>"; };
364B19651A029963009A30BA /* device_hfsplus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus.png; sourceTree = "<group>"; };
364B19661A029963009A30BA /* device_ntfs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ntfs.png; sourceTree = "<group>"; };
364B19671A029963009A30BA /* device_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_next.png; sourceTree = "<group>"; };
364B19681A029963009A30BA /* device_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_prev.png; sourceTree = "<group>"; };
364B19691A029963009A30BA /* device_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_selection.png; sourceTree = "<group>"; };
364B196A1A029963009A30BA /* font_console.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_console.png; sourceTree = "<group>"; };
364B196B1A029963009A30BA /* font_small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_small.png; sourceTree = "<group>"; };
364B196C1A029963009A30BA /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
364B196D1A029963009A30BA /* menu_boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_boot.png; sourceTree = "<group>"; };
364B196E1A029963009A30BA /* menu_help.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_help.png; sourceTree = "<group>"; };
364B196F1A029963009A30BA /* menu_ignore_caches_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches_disabled.png; sourceTree = "<group>"; };
364B19701A029963009A30BA /* menu_ignore_caches.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches.png; sourceTree = "<group>"; };
364B19711A029963009A30BA /* menu_memory_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_memory_info.png; sourceTree = "<group>"; };
364B19721A029963009A30BA /* menu_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_selection.png; sourceTree = "<group>"; };
364B19731A029963009A30BA /* menu_single_user_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user_disabled.png; sourceTree = "<group>"; };
364B19741A029963009A30BA /* menu_single_user.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user.png; sourceTree = "<group>"; };
364B19751A029963009A30BA /* menu_verbose_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose_disabled.png; sourceTree = "<group>"; };
364B19761A029963009A30BA /* menu_verbose.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose.png; sourceTree = "<group>"; };
364B19771A029963009A30BA /* menu_video_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_video_info.png; sourceTree = "<group>"; };
364B19781A029963009A30BA /* progress_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar_background.png; sourceTree = "<group>"; };
364B19791A029963009A30BA /* progress_bar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar.png; sourceTree = "<group>"; };
364B197A1A029963009A30BA /* text_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_next.png; sourceTree = "<group>"; };
364B197B1A029963009A30BA /* text_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_prev.png; sourceTree = "<group>"; };
364B197C1A029963009A30BA /* theme.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = theme.plist; sourceTree = "<group>"; };
364B197D1A02997C009A30BA /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = "<group>"; };
364B197E1A02997C009A30BA /* boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boot.png; sourceTree = "<group>"; };
364B197F1A02997C009A30BA /* device_befs_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_befs_o.png; sourceTree = "<group>"; };
364B19801A02997C009A30BA /* device_befs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_befs.png; sourceTree = "<group>"; };
364B19811A02997C009A30BA /* device_cdrom_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_cdrom_o.png; sourceTree = "<group>"; };
364B19821A02997C009A30BA /* device_cdrom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_cdrom.png; sourceTree = "<group>"; };
364B19831A02997C009A30BA /* device_ext3_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ext3_o.png; sourceTree = "<group>"; };
364B19841A02997C009A30BA /* device_ext3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ext3.png; sourceTree = "<group>"; };
364B19851A02997C009A30BA /* device_fat_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat_o.png; sourceTree = "<group>"; };
364B19861A02997C009A30BA /* device_fat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat.png; sourceTree = "<group>"; };
364B19871A02997C009A30BA /* device_freebsd_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_freebsd_o.png; sourceTree = "<group>"; };
364B19881A02997C009A30BA /* device_freebsd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_freebsd.png; sourceTree = "<group>"; };
364B19891A02997C009A30BA /* device_generic_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_generic_o.png; sourceTree = "<group>"; };
364B198A1A02997C009A30BA /* device_generic.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_generic.png; sourceTree = "<group>"; };
364B198B1A02997C009A30BA /* device_hfsfusion_mav_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsfusion_mav_o.png; sourceTree = "<group>"; };
364B198C1A02997C009A30BA /* device_hfsfusion_mav.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsfusion_mav.png; sourceTree = "<group>"; };
364B198D1A02997C009A30BA /* device_hfsplus_leo_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_leo_o.png; sourceTree = "<group>"; };
364B198E1A02997C009A30BA /* device_hfsplus_leo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_leo.png; sourceTree = "<group>"; };
364B198F1A02997C009A30BA /* device_hfsplus_lion_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_lion_o.png; sourceTree = "<group>"; };
364B19901A02997C009A30BA /* device_hfsplus_lion.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_lion.png; sourceTree = "<group>"; };
364B19911A02997C009A30BA /* device_hfsplus_mav_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_mav_o.png; sourceTree = "<group>"; };
364B19921A02997C009A30BA /* device_hfsplus_mav.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_mav.png; sourceTree = "<group>"; };
364B19931A02997C009A30BA /* device_hfsplus_ml_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_ml_o.png; sourceTree = "<group>"; };
364B19941A02997C009A30BA /* device_hfsplus_ml.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_ml.png; sourceTree = "<group>"; };
364B19951A02997C009A30BA /* device_hfsplus_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_o.png; sourceTree = "<group>"; };
364B19961A02997C009A30BA /* device_hfsplus_recovery_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_recovery_o.png; sourceTree = "<group>"; };
364B19971A02997C009A30BA /* device_hfsplus_recovery.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_recovery.png; sourceTree = "<group>"; };
364B19981A02997C009A30BA /* device_hfsplus_sl_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_sl_o.png; sourceTree = "<group>"; };
364B19991A02997C009A30BA /* device_hfsplus_sl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_sl.png; sourceTree = "<group>"; };
364B199A1A02997C009A30BA /* device_hfsplus_tiger_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_tiger_o.png; sourceTree = "<group>"; };
364B199B1A02997C009A30BA /* device_hfsplus_tiger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_tiger.png; sourceTree = "<group>"; };
364B199C1A02997C009A30BA /* device_hfsplus_yos_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_yos_o.png; sourceTree = "<group>"; };
364B199D1A02997C009A30BA /* device_hfsplus_yos.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_yos.png; sourceTree = "<group>"; };
364B199E1A02997C009A30BA /* device_hfsplus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus.png; sourceTree = "<group>"; };
364B199F1A02997C009A30BA /* device_hfsraid_leo_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_leo_o.png; sourceTree = "<group>"; };
364B19A01A02997C009A30BA /* device_hfsraid_leo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_leo.png; sourceTree = "<group>"; };
364B19A11A02997C009A30BA /* device_hfsraid_lion_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_lion_o.png; sourceTree = "<group>"; };
364B19A21A02997C009A30BA /* device_hfsraid_lion.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_lion.png; sourceTree = "<group>"; };
364B19A31A02997C009A30BA /* device_hfsraid_mav_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_mav_o.png; sourceTree = "<group>"; };
364B19A41A02997C009A30BA /* device_hfsraid_mav.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_mav.png; sourceTree = "<group>"; };
364B19A51A02997C009A30BA /* device_hfsraid_ml_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_ml_o.png; sourceTree = "<group>"; };
364B19A61A02997C009A30BA /* device_hfsraid_ml.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_ml.png; sourceTree = "<group>"; };
364B19A71A02997C009A30BA /* device_hfsraid_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_o.png; sourceTree = "<group>"; };
364B19A81A02997C009A30BA /* device_hfsraid_sl_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_sl_o.png; sourceTree = "<group>"; };
364B19A91A02997C009A30BA /* device_hfsraid_sl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_sl.png; sourceTree = "<group>"; };
364B19AA1A02997C009A30BA /* device_hfsraid_tiger_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_tiger_o.png; sourceTree = "<group>"; };
364B19AB1A02997C009A30BA /* device_hfsraid_tiger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_tiger.png; sourceTree = "<group>"; };
364B19AC1A02997C009A30BA /* device_hfsraid_yos_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_yos_o.png; sourceTree = "<group>"; };
364B19AD1A02997C009A30BA /* device_hfsraid_yos.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_yos.png; sourceTree = "<group>"; };
364B19AE1A02997C009A30BA /* device_hfsraid.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid.png; sourceTree = "<group>"; };
364B19AF1A02997C009A30BA /* device_ntfs_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ntfs_o.png; sourceTree = "<group>"; };
364B19B01A02997C009A30BA /* device_ntfs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ntfs.png; sourceTree = "<group>"; };
364B19B11A02997C009A30BA /* device_openbsd_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_openbsd_o.png; sourceTree = "<group>"; };
364B19B21A02997C009A30BA /* device_openbsd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_openbsd.png; sourceTree = "<group>"; };
364B19B31A02997C009A30BA /* device_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_next.png; sourceTree = "<group>"; };
364B19B41A02997C009A30BA /* device_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_prev.png; sourceTree = "<group>"; };
364B19B51A02997C009A30BA /* device_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_selection.png; sourceTree = "<group>"; };
364B19B61A02997C009A30BA /* font_console.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_console.png; sourceTree = "<group>"; };
364B19B71A02997C009A30BA /* font_small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_small.png; sourceTree = "<group>"; };
364B19B81A02997C009A30BA /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
364B19B91A02997C009A30BA /* menu_boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_boot.png; sourceTree = "<group>"; };
364B19BA1A02997C009A30BA /* menu_help.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_help.png; sourceTree = "<group>"; };
364B19BB1A02997C009A30BA /* menu_ignore_caches_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches_disabled.png; sourceTree = "<group>"; };
364B19BC1A02997C009A30BA /* menu_ignore_caches.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches.png; sourceTree = "<group>"; };
364B19BD1A02997C009A30BA /* menu_memory_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_memory_info.png; sourceTree = "<group>"; };
364B19BE1A02997C009A30BA /* menu_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_selection.png; sourceTree = "<group>"; };
364B19BF1A02997C009A30BA /* menu_single_user_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user_disabled.png; sourceTree = "<group>"; };
364B19C01A02997C009A30BA /* menu_single_user.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user.png; sourceTree = "<group>"; };
364B19C11A02997C009A30BA /* menu_verbose_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose_disabled.png; sourceTree = "<group>"; };
364B19C21A02997C009A30BA /* menu_verbose.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose.png; sourceTree = "<group>"; };
364B19C31A02997C009A30BA /* menu_video_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_video_info.png; sourceTree = "<group>"; };
364B19C41A02997C009A30BA /* progress_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar_background.png; sourceTree = "<group>"; };
364B19C51A02997C009A30BA /* progress_bar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar.png; sourceTree = "<group>"; };
364B19C61A02997C009A30BA /* text_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_next.png; sourceTree = "<group>"; };
364B19C71A02997C009A30BA /* text_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_prev.png; sourceTree = "<group>"; };
364B19C81A02997C009A30BA /* theme.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = theme.plist; sourceTree = "<group>"; };
364B19C91A02997C009A30BA /* thumb.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = thumb.png; sourceTree = "<group>"; };
36809A7019DA43B5007ACE3F /* lzvn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lzvn.c; sourceTree = "<group>"; };
36809A7219DA4563007ACE3F /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; name = LICENSE; path = klibc/LICENSE; sourceTree = "<group>"; };
36809A7319DA4563007ACE3F /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = klibc/Makefile; sourceTree = "<group>"; };
369689D014BD0AF10013D77F /* BLOCKERS */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = BLOCKERS; sourceTree = "<group>"; };
369689D114BD0AF10013D77F /* Cconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cconfig; sourceTree = "<group>"; };
369689D214BD0B470013D77F /* version */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = version; sourceTree = "<group>"; };
36AB75A114BD0866005B8045 /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = "<group>"; };
36AB75A214BD0866005B8045 /* boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boot.png; sourceTree = "<group>"; };
36AB75A314BD0866005B8045 /* device_befs_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_befs_o.png; sourceTree = "<group>"; };
36AB75A414BD0866005B8045 /* device_befs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_befs.png; sourceTree = "<group>"; };
36AB75A514BD0866005B8045 /* device_cdrom_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_cdrom_o.png; sourceTree = "<group>"; };
36AB75A614BD0866005B8045 /* device_cdrom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_cdrom.png; sourceTree = "<group>"; };
36AB75A714BD0866005B8045 /* device_ext3_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ext3_o.png; sourceTree = "<group>"; };
36AB75A814BD0866005B8045 /* device_ext3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ext3.png; sourceTree = "<group>"; };
36AB75A914BD0866005B8045 /* device_fat_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat_o.png; sourceTree = "<group>"; };
36AB75AA14BD0866005B8045 /* device_fat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat.png; sourceTree = "<group>"; };
36AB75AB14BD0866005B8045 /* device_freebsd_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_freebsd_o.png; sourceTree = "<group>"; };
36AB75AC14BD0866005B8045 /* device_freebsd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_freebsd.png; sourceTree = "<group>"; };
36AB75AD14BD0866005B8045 /* device_generic_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_generic_o.png; sourceTree = "<group>"; };
36AB75AE14BD0866005B8045 /* device_generic.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_generic.png; sourceTree = "<group>"; };
36AB75AF14BD0866005B8045 /* device_hfsplus_leo_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_leo_o.png; sourceTree = "<group>"; };
36AB75B014BD0866005B8045 /* device_hfsplus_leo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_leo.png; sourceTree = "<group>"; };
36AB75B114BD0866005B8045 /* device_hfsplus_lion_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_lion_o.png; sourceTree = "<group>"; };
36AB75B214BD0866005B8045 /* device_hfsplus_lion.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_lion.png; sourceTree = "<group>"; };
36AB75B314BD0866005B8045 /* device_hfsplus_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_o.png; sourceTree = "<group>"; };
36AB75B414BD0866005B8045 /* device_hfsplus_sl_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_sl_o.png; sourceTree = "<group>"; };
36AB75B514BD0866005B8045 /* device_hfsplus_sl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_sl.png; sourceTree = "<group>"; };
36AB75B614BD0866005B8045 /* device_hfsplus_tiger_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_tiger_o.png; sourceTree = "<group>"; };
36AB75B714BD0866005B8045 /* device_hfsplus_tiger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus_tiger.png; sourceTree = "<group>"; };
36AB75B814BD0866005B8045 /* device_hfsplus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus.png; sourceTree = "<group>"; };
36AB75B914BD0866005B8045 /* device_hfsraid_leo_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_leo_o.png; sourceTree = "<group>"; };
36AB75BA14BD0866005B8045 /* device_hfsraid_leo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_leo.png; sourceTree = "<group>"; };
36AB75BB14BD0866005B8045 /* device_hfsraid_lion_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_lion_o.png; sourceTree = "<group>"; };
36AB75BC14BD0866005B8045 /* device_hfsraid_lion.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_lion.png; sourceTree = "<group>"; };
36AB75BD14BD0866005B8045 /* device_hfsraid_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_o.png; sourceTree = "<group>"; };
36AB75BE14BD0866005B8045 /* device_hfsraid_sl_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_sl_o.png; sourceTree = "<group>"; };
36AB75BF14BD0866005B8045 /* device_hfsraid_sl.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_sl.png; sourceTree = "<group>"; };
36AB75C014BD0866005B8045 /* device_hfsraid_tiger_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_tiger_o.png; sourceTree = "<group>"; };
36AB75C114BD0866005B8045 /* device_hfsraid_tiger.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid_tiger.png; sourceTree = "<group>"; };
36AB75C214BD0866005B8045 /* device_hfsraid.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsraid.png; sourceTree = "<group>"; };
36AB75C314BD0866005B8045 /* device_ntfs_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ntfs_o.png; sourceTree = "<group>"; };
36AB75C414BD0866005B8045 /* device_ntfs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ntfs.png; sourceTree = "<group>"; };
36AB75C514BD0866005B8045 /* device_openbsd_o.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_openbsd_o.png; sourceTree = "<group>"; };
36AB75C614BD0866005B8045 /* device_openbsd.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_openbsd.png; sourceTree = "<group>"; };
36AB75C714BD0866005B8045 /* device_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_next.png; sourceTree = "<group>"; };
36AB75C814BD0866005B8045 /* device_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_prev.png; sourceTree = "<group>"; };
36AB75C914BD0866005B8045 /* device_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_selection.png; sourceTree = "<group>"; };
36AB75CA14BD0866005B8045 /* font_console.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_console.png; sourceTree = "<group>"; };
36AB75CB14BD0866005B8045 /* font_small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_small.png; sourceTree = "<group>"; };
36AB75CC14BD0866005B8045 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
36AB75CD14BD0866005B8045 /* menu_boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_boot.png; sourceTree = "<group>"; };
36AB75CE14BD0866005B8045 /* menu_help.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_help.png; sourceTree = "<group>"; };
36AB75CF14BD0866005B8045 /* menu_ignore_caches_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches_disabled.png; sourceTree = "<group>"; };
36AB75D014BD0866005B8045 /* menu_ignore_caches.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches.png; sourceTree = "<group>"; };
36AB75D114BD0866005B8045 /* menu_memory_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_memory_info.png; sourceTree = "<group>"; };
36AB75D214BD0866005B8045 /* menu_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_selection.png; sourceTree = "<group>"; };
36AB75D314BD0866005B8045 /* menu_single_user_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user_disabled.png; sourceTree = "<group>"; };
36AB75D414BD0866005B8045 /* menu_single_user.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user.png; sourceTree = "<group>"; };
36AB75D514BD0866005B8045 /* menu_verbose_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose_disabled.png; sourceTree = "<group>"; };
36AB75D614BD0866005B8045 /* menu_verbose.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose.png; sourceTree = "<group>"; };
36AB75D714BD0866005B8045 /* menu_video_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_video_info.png; sourceTree = "<group>"; };
36AB75D814BD0866005B8045 /* progress_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar_background.png; sourceTree = "<group>"; };
36AB75D914BD0866005B8045 /* progress_bar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar.png; sourceTree = "<group>"; };
36AB75DA14BD0866005B8045 /* text_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_next.png; sourceTree = "<group>"; };
36AB75DB14BD0866005B8045 /* text_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_prev.png; sourceTree = "<group>"; };
36AB75DC14BD0866005B8045 /* theme.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = theme.plist; sourceTree = "<group>"; };
36AB75DD14BD0866005B8045 /* thumb.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = thumb.png; sourceTree = "<group>"; };
36AB75E114BD091C005B8045 /* InstallLog.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = InstallLog.sh; sourceTree = "<group>"; };
36AB75E314BD0925005B8045 /* postinstall */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = postinstall; sourceTree = "<group>"; };
36AB75E414BD092D005B8045 /* preinstall */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = preinstall; sourceTree = "<group>"; };
B0056D8211F3868000754B65 /* APPLE_LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = APPLE_LICENSE; sourceTree = "<group>"; };
B0056D8511F3868000754B65 /* Distribution */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = Distribution; sourceTree = "<group>"; };
B0056DB911F3868000754B65 /* smbios.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = smbios.plist; sourceTree = "<group>"; };
B0056DBD11F3868000754B65 /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = background.png; sourceTree = "<group>"; };
B0056DBE11F3868000754B65 /* boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = boot.png; sourceTree = "<group>"; };
B0056DBF11F3868000754B65 /* device_cdrom.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_cdrom.png; sourceTree = "<group>"; };
B0056DC011F3868000754B65 /* device_ext3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ext3.png; sourceTree = "<group>"; };
B0056DC111F3868000754B65 /* device_fat16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat16.png; sourceTree = "<group>"; };
B0056DC211F3868000754B65 /* device_fat32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_fat32.png; sourceTree = "<group>"; };
B0056DC311F3868000754B65 /* device_generic.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_generic.png; sourceTree = "<group>"; };
B0056DC411F3868000754B65 /* device_hfsplus.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_hfsplus.png; sourceTree = "<group>"; };
B0056DC511F3868000754B65 /* device_ntfs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_ntfs.png; sourceTree = "<group>"; };
B0056DC611F3868000754B65 /* device_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_next.png; sourceTree = "<group>"; };
B0056DC711F3868000754B65 /* device_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_scroll_prev.png; sourceTree = "<group>"; };
B0056DC811F3868000754B65 /* device_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = device_selection.png; sourceTree = "<group>"; };
B0056DC911F3868000754B65 /* font_console.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_console.png; sourceTree = "<group>"; };
B0056DCA11F3868000754B65 /* font_small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = font_small.png; sourceTree = "<group>"; };
B0056DCB11F3868000754B65 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
B0056DCC11F3868000754B65 /* menu_boot.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_boot.png; sourceTree = "<group>"; };
B0056DCD11F3868000754B65 /* menu_help.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_help.png; sourceTree = "<group>"; };
B0056DCE11F3868000754B65 /* menu_ignore_caches.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches.png; sourceTree = "<group>"; };
B0056DCF11F3868000754B65 /* menu_ignore_caches_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_ignore_caches_disabled.png; sourceTree = "<group>"; };
B0056DD011F3868000754B65 /* menu_memory_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_memory_info.png; sourceTree = "<group>"; };
B0056DD111F3868000754B65 /* menu_selection.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_selection.png; sourceTree = "<group>"; };
B0056DD211F3868000754B65 /* menu_single_user.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user.png; sourceTree = "<group>"; };
B0056DD311F3868000754B65 /* menu_single_user_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_single_user_disabled.png; sourceTree = "<group>"; };
B0056DD411F3868000754B65 /* menu_verbose.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose.png; sourceTree = "<group>"; };
B0056DD511F3868000754B65 /* menu_verbose_disabled.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_verbose_disabled.png; sourceTree = "<group>"; };
B0056DD611F3868000754B65 /* menu_video_info.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_video_info.png; sourceTree = "<group>"; };
B0056DD711F3868000754B65 /* progress_bar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar.png; sourceTree = "<group>"; };
B0056DD811F3868000754B65 /* progress_bar_background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = progress_bar_background.png; sourceTree = "<group>"; };
B0056DD911F3868000754B65 /* text_scroll_next.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_next.png; sourceTree = "<group>"; };
B0056DDA11F3868000754B65 /* text_scroll_prev.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = text_scroll_prev.png; sourceTree = "<group>"; };
B0056DDB11F3868000754B65 /* theme.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = theme.plist; sourceTree = "<group>"; };
B0056DFD11F3868000754B65 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
B0056DFE11F3868000754B65 /* theme.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = theme.plist; sourceTree = "<group>"; };
B0056E0011F3868000754B65 /* logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = logo.png; sourceTree = "<group>"; };
B4118C90153EFF3300C8D926 /* bg.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bg.po; sourceTree = "<group>"; };
B4118C91153EFF3300C8D926 /* bs.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = bs.po; sourceTree = "<group>"; };
B4118C92153EFF3300C8D926 /* ca.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ca.po; sourceTree = "<group>"; };
B4118C93153EFF3300C8D926 /* chameleon.pot */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = chameleon.pot; sourceTree = "<group>"; };
B4118C93153EFF3300C8D926 /* chameleon.pot */ = {isa = PBXFileReference; explicitFileType = text; fileEncoding = 4; path = chameleon.pot; sourceTree = "<group>"; };
B4118C94153EFF3300C8D926 /* cs.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = cs.po; sourceTree = "<group>"; };
B4118C95153EFF3300C8D926 /* de.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = de.po; sourceTree = "<group>"; };
B4118C96153EFF3300C8D926 /* el.po */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = el.po; sourceTree = "<group>"; };
B0056DBC11F3868000754B65 /* bullet */ = {
isa = PBXGroup;
children = (
B0056DBD11F3868000754B65 /* background.png */,
B0056DBE11F3868000754B65 /* boot.png */,
B0056DBF11F3868000754B65 /* device_cdrom.png */,
B0056DC011F3868000754B65 /* device_ext3.png */,
B0056DC111F3868000754B65 /* device_fat16.png */,
B0056DC211F3868000754B65 /* device_fat32.png */,
B0056DC311F3868000754B65 /* device_generic.png */,
B0056DC411F3868000754B65 /* device_hfsplus.png */,
B0056DC511F3868000754B65 /* device_ntfs.png */,
B0056DC611F3868000754B65 /* device_scroll_next.png */,
B0056DC711F3868000754B65 /* device_scroll_prev.png */,
B0056DC811F3868000754B65 /* device_selection.png */,
B0056DC911F3868000754B65 /* font_console.png */,
B0056DCA11F3868000754B65 /* font_small.png */,
B0056DCB11F3868000754B65 /* logo.png */,
B0056DCC11F3868000754B65 /* menu_boot.png */,
B0056DCD11F3868000754B65 /* menu_help.png */,
B0056DCE11F3868000754B65 /* menu_ignore_caches.png */,
B0056DCF11F3868000754B65 /* menu_ignore_caches_disabled.png */,
B0056DD011F3868000754B65 /* menu_memory_info.png */,
B0056DD111F3868000754B65 /* menu_selection.png */,
B0056DD211F3868000754B65 /* menu_single_user.png */,
B0056DD311F3868000754B65 /* menu_single_user_disabled.png */,
B0056DD411F3868000754B65 /* menu_verbose.png */,
B0056DD511F3868000754B65 /* menu_verbose_disabled.png */,
B0056DD611F3868000754B65 /* menu_video_info.png */,
B0056DD711F3868000754B65 /* progress_bar.png */,
B0056DD811F3868000754B65 /* progress_bar_background.png */,
B0056DD911F3868000754B65 /* text_scroll_next.png */,
B0056DDA11F3868000754B65 /* text_scroll_prev.png */,
B0056DDB11F3868000754B65 /* theme.plist */,
364B195E1A029963009A30BA /* background.png */,
364B195F1A029963009A30BA /* boot.png */,
364B19601A029963009A30BA /* device_cdrom.png */,
364B19611A029963009A30BA /* device_ext3.png */,
364B19621A029963009A30BA /* device_fat16.png */,
364B19631A029963009A30BA /* device_fat32.png */,
364B19641A029963009A30BA /* device_generic.png */,
364B19651A029963009A30BA /* device_hfsplus.png */,
364B19661A029963009A30BA /* device_ntfs.png */,
364B19671A029963009A30BA /* device_scroll_next.png */,
364B19681A029963009A30BA /* device_scroll_prev.png */,
364B19691A029963009A30BA /* device_selection.png */,
364B196A1A029963009A30BA /* font_console.png */,
364B196B1A029963009A30BA /* font_small.png */,
364B196C1A029963009A30BA /* logo.png */,
364B196D1A029963009A30BA /* menu_boot.png */,
364B196E1A029963009A30BA /* menu_help.png */,
364B196F1A029963009A30BA /* menu_ignore_caches_disabled.png */,
364B19701A029963009A30BA /* menu_ignore_caches.png */,
364B19711A029963009A30BA /* menu_memory_info.png */,
364B19721A029963009A30BA /* menu_selection.png */,
364B19731A029963009A30BA /* menu_single_user_disabled.png */,
364B19741A029963009A30BA /* menu_single_user.png */,
364B19751A029963009A30BA /* menu_verbose_disabled.png */,
364B19761A029963009A30BA /* menu_verbose.png */,
364B19771A029963009A30BA /* menu_video_info.png */,
364B19781A029963009A30BA /* progress_bar_background.png */,
364B19791A029963009A30BA /* progress_bar.png */,
364B197A1A029963009A30BA /* text_scroll_next.png */,
364B197B1A029963009A30BA /* text_scroll_prev.png */,
364B197C1A029963009A30BA /* theme.plist */,
);
path = bullet;
sourceTree = "<group>";
B0056DDC11F3868000754B65 /* default */ = {
isa = PBXGroup;
children = (
36AB75A114BD0866005B8045 /* background.png */,
36AB75A214BD0866005B8045 /* boot.png */,
36AB75A314BD0866005B8045 /* device_befs_o.png */,
36AB75A414BD0866005B8045 /* device_befs.png */,
36AB75A514BD0866005B8045 /* device_cdrom_o.png */,
36AB75A614BD0866005B8045 /* device_cdrom.png */,
36AB75A714BD0866005B8045 /* device_ext3_o.png */,
36AB75A814BD0866005B8045 /* device_ext3.png */,
36AB75A914BD0866005B8045 /* device_fat_o.png */,
36AB75AA14BD0866005B8045 /* device_fat.png */,
36AB75AB14BD0866005B8045 /* device_freebsd_o.png */,
36AB75AC14BD0866005B8045 /* device_freebsd.png */,
36AB75AD14BD0866005B8045 /* device_generic_o.png */,
36AB75AE14BD0866005B8045 /* device_generic.png */,
36AB75AF14BD0866005B8045 /* device_hfsplus_leo_o.png */,
36AB75B014BD0866005B8045 /* device_hfsplus_leo.png */,
36AB75B114BD0866005B8045 /* device_hfsplus_lion_o.png */,
36AB75B214BD0866005B8045 /* device_hfsplus_lion.png */,
36AB75B314BD0866005B8045 /* device_hfsplus_o.png */,
36AB75B414BD0866005B8045 /* device_hfsplus_sl_o.png */,
36AB75B514BD0866005B8045 /* device_hfsplus_sl.png */,
36AB75B614BD0866005B8045 /* device_hfsplus_tiger_o.png */,
36AB75B714BD0866005B8045 /* device_hfsplus_tiger.png */,
36AB75B814BD0866005B8045 /* device_hfsplus.png */,
36AB75B914BD0866005B8045 /* device_hfsraid_leo_o.png */,
36AB75BA14BD0866005B8045 /* device_hfsraid_leo.png */,
36AB75BB14BD0866005B8045 /* device_hfsraid_lion_o.png */,
36AB75BC14BD0866005B8045 /* device_hfsraid_lion.png */,
36AB75BD14BD0866005B8045 /* device_hfsraid_o.png */,
36AB75BE14BD0866005B8045 /* device_hfsraid_sl_o.png */,
36AB75BF14BD0866005B8045 /* device_hfsraid_sl.png */,
36AB75C014BD0866005B8045 /* device_hfsraid_tiger_o.png */,
36AB75C114BD0866005B8045 /* device_hfsraid_tiger.png */,
36AB75C214BD0866005B8045 /* device_hfsraid.png */,
36AB75C314BD0866005B8045 /* device_ntfs_o.png */,
36AB75C414BD0866005B8045 /* device_ntfs.png */,
36AB75C514BD0866005B8045 /* device_openbsd_o.png */,
36AB75C614BD0866005B8045 /* device_openbsd.png */,
36AB75C714BD0866005B8045 /* device_scroll_next.png */,
36AB75C814BD0866005B8045 /* device_scroll_prev.png */,
36AB75C914BD0866005B8045 /* device_selection.png */,
36AB75CA14BD0866005B8045 /* font_console.png */,
36AB75CB14BD0866005B8045 /* font_small.png */,
36AB75CC14BD0866005B8045 /* logo.png */,
36AB75CD14BD0866005B8045 /* menu_boot.png */,
36AB75CE14BD0866005B8045 /* menu_help.png */,
36AB75CF14BD0866005B8045 /* menu_ignore_caches_disabled.png */,
36AB75D014BD0866005B8045 /* menu_ignore_caches.png */,
36AB75D114BD0866005B8045 /* menu_memory_info.png */,
36AB75D214BD0866005B8045 /* menu_selection.png */,
36AB75D314BD0866005B8045 /* menu_single_user_disabled.png */,
36AB75D414BD0866005B8045 /* menu_single_user.png */,
36AB75D514BD0866005B8045 /* menu_verbose_disabled.png */,
36AB75D614BD0866005B8045 /* menu_verbose.png */,
36AB75D714BD0866005B8045 /* menu_video_info.png */,
36AB75D814BD0866005B8045 /* progress_bar_background.png */,
36AB75D914BD0866005B8045 /* progress_bar.png */,
36AB75DA14BD0866005B8045 /* text_scroll_next.png */,
36AB75DB14BD0866005B8045 /* text_scroll_prev.png */,
36AB75DC14BD0866005B8045 /* theme.plist */,
36AB75DD14BD0866005B8045 /* thumb.png */,
364B197D1A02997C009A30BA /* background.png */,
364B197E1A02997C009A30BA /* boot.png */,
364B197F1A02997C009A30BA /* device_befs_o.png */,
364B19801A02997C009A30BA /* device_befs.png */,
364B19811A02997C009A30BA /* device_cdrom_o.png */,
364B19821A02997C009A30BA /* device_cdrom.png */,
364B19831A02997C009A30BA /* device_ext3_o.png */,
364B19841A02997C009A30BA /* device_ext3.png */,
364B19851A02997C009A30BA /* device_fat_o.png */,
364B19861A02997C009A30BA /* device_fat.png */,
364B19871A02997C009A30BA /* device_freebsd_o.png */,
364B19881A02997C009A30BA /* device_freebsd.png */,
364B19891A02997C009A30BA /* device_generic_o.png */,
364B198A1A02997C009A30BA /* device_generic.png */,
364B198B1A02997C009A30BA /* device_hfsfusion_mav_o.png */,
364B198C1A02997C009A30BA /* device_hfsfusion_mav.png */,
364B198D1A02997C009A30BA /* device_hfsplus_leo_o.png */,
364B198E1A02997C009A30BA /* device_hfsplus_leo.png */,
364B198F1A02997C009A30BA /* device_hfsplus_lion_o.png */,
364B19901A02997C009A30BA /* device_hfsplus_lion.png */,
364B19911A02997C009A30BA /* device_hfsplus_mav_o.png */,
364B19921A02997C009A30BA /* device_hfsplus_mav.png */,
364B19931A02997C009A30BA /* device_hfsplus_ml_o.png */,
364B19941A02997C009A30BA /* device_hfsplus_ml.png */,
364B19951A02997C009A30BA /* device_hfsplus_o.png */,
364B19961A02997C009A30BA /* device_hfsplus_recovery_o.png */,
364B19971A02997C009A30BA /* device_hfsplus_recovery.png */,
364B19981A02997C009A30BA /* device_hfsplus_sl_o.png */,
364B19991A02997C009A30BA /* device_hfsplus_sl.png */,
364B199A1A02997C009A30BA /* device_hfsplus_tiger_o.png */,
364B199B1A02997C009A30BA /* device_hfsplus_tiger.png */,
364B199C1A02997C009A30BA /* device_hfsplus_yos_o.png */,
364B199D1A02997C009A30BA /* device_hfsplus_yos.png */,
364B199E1A02997C009A30BA /* device_hfsplus.png */,
364B199F1A02997C009A30BA /* device_hfsraid_leo_o.png */,
364B19A01A02997C009A30BA /* device_hfsraid_leo.png */,
364B19A11A02997C009A30BA /* device_hfsraid_lion_o.png */,
364B19A21A02997C009A30BA /* device_hfsraid_lion.png */,
364B19A31A02997C009A30BA /* device_hfsraid_mav_o.png */,
364B19A41A02997C009A30BA /* device_hfsraid_mav.png */,
364B19A51A02997C009A30BA /* device_hfsraid_ml_o.png */,
364B19A61A02997C009A30BA /* device_hfsraid_ml.png */,
364B19A71A02997C009A30BA /* device_hfsraid_o.png */,
364B19A81A02997C009A30BA /* device_hfsraid_sl_o.png */,
364B19A91A02997C009A30BA /* device_hfsraid_sl.png */,
364B19AA1A02997C009A30BA /* device_hfsraid_tiger_o.png */,
364B19AB1A02997C009A30BA /* device_hfsraid_tiger.png */,
364B19AC1A02997C009A30BA /* device_hfsraid_yos_o.png */,
364B19AD1A02997C009A30BA /* device_hfsraid_yos.png */,
364B19AE1A02997C009A30BA /* device_hfsraid.png */,
364B19AF1A02997C009A30BA /* device_ntfs_o.png */,
364B19B01A02997C009A30BA /* device_ntfs.png */,
364B19B11A02997C009A30BA /* device_openbsd_o.png */,
364B19B21A02997C009A30BA /* device_openbsd.png */,
364B19B31A02997C009A30BA /* device_scroll_next.png */,
364B19B41A02997C009A30BA /* device_scroll_prev.png */,
364B19B51A02997C009A30BA /* device_selection.png */,
364B19B61A02997C009A30BA /* font_console.png */,
364B19B71A02997C009A30BA /* font_small.png */,
364B19B81A02997C009A30BA /* logo.png */,
364B19B91A02997C009A30BA /* menu_boot.png */,
364B19BA1A02997C009A30BA /* menu_help.png */,
364B19BB1A02997C009A30BA /* menu_ignore_caches_disabled.png */,
364B19BC1A02997C009A30BA /* menu_ignore_caches.png */,
364B19BD1A02997C009A30BA /* menu_memory_info.png */,
364B19BE1A02997C009A30BA /* menu_selection.png */,
364B19BF1A02997C009A30BA /* menu_single_user_disabled.png */,
364B19C01A02997C009A30BA /* menu_single_user.png */,
364B19C11A02997C009A30BA /* menu_verbose_disabled.png */,
364B19C21A02997C009A30BA /* menu_verbose.png */,
364B19C31A02997C009A30BA /* menu_video_info.png */,
364B19C41A02997C009A30BA /* progress_bar_background.png */,
364B19C51A02997C009A30BA /* progress_bar.png */,
364B19C61A02997C009A30BA /* text_scroll_next.png */,
364B19C71A02997C009A30BA /* text_scroll_prev.png */,
364B19C81A02997C009A30BA /* theme.plist */,
364B19C91A02997C009A30BA /* thumb.png */,
);
path = default;
sourceTree = "<group>";
08FB7793FE84155DC02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0460;
LastUpgradeCheck = 0610;
};
buildConfigurationList = 1DEB919308733D9F0010E9CD /* Build configuration list for PBXProject "Chameleon" */;
compatibilityVersion = "Xcode 3.2";
1DEB919408733D9F0010E9CD /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
ONLY_ACTIVE_ARCH = YES;
1DEB919508733D9F0010E9CD /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
SDKROOT = macosx;
trunk/i386/libsaio/vbe.c
3333
3434
3535
36
37
3638
3739
3840
......
6971
7072
7173
74
75
7276
7377
7478
static biosBuf_t bb;
#if UNUSED
//==============================================================================
#if UNUSED
static inline void
#endif /* UNUSED */
//==============================================================================
#endif /* UNUSED */
int getVBEInfo( void * infoBlock )
{
bb.intno = 0x10;
trunk/i386/libsaio/hfs.c
423423
424424
425425
426
427
426
428427
429428
430429
......
909908
910909
911910
912
911
913912
914913
915914
......
982981
983982
984983
985
984
986985
987986
988987
}
long
HFSGetFileBlock(CICell ih, char *filePath, unsigned long long *firstBlock)
long HFSGetFileBlock(CICell ih, char *filePath, unsigned long long *firstBlock)
{
char entry[512];
long dirID, result, flags;
// Find the extent for the offset.
for (; ; nextExtent++) {
if (nextExtent < extentDensity) {
if ((countedBlocks+GetExtentSize(extent, nextExtent)-1)<blockNumber) {
if ((countedBlocks + GetExtentSize(extent, nextExtent) - 1) < blockNumber) {
countedBlocks += GetExtentSize(extent, nextExtent);
continue;
}
if (gIsHFSPlus) size = SWAP_BE32(hfsPlusExtents[index].blockCount);
else size = SWAP_BE16(hfsExtents[index].blockCount);
return size;
return size;
}
static long CompareHFSCatalogKeys(void * key, void * testKey)
trunk/i386/libsaio/acpi_patcher.c
3030
3131
3232
33
33
3434
3535
3636
......
4646
4747
4848
49
4950
5051
5152
......
6869
6970
7071
72
7173
7274
7375
......
210212
211213
212214
213
215
214216
215217
216218
......
409411
410412
411413
412
414
413415
414416
415417
......
11271129
11281130
11291131
1130
1132
1133
11311134
11321135
11331136
1134
1137
1138
1139
11351140
11361141
11371142
boolean_t tableSign(char *table, const char *sgn)
{
int i;
for (i=0; i<4; i++)
for (i = 0; i < 4; i++)
{
if ((table[i] &~0x20) != (sgn[i] &~0x20))
{
/* TODO: Before searching the BIOS space we are supposed to search the first 1K of the EBDA */
void *acpi_addr = (void*)ACPI_RANGE_START;
for(; acpi_addr <= (void*)ACPI_RANGE_END; acpi_addr += 16)
{
if(*(uint64_t *)acpi_addr == ACPI_SIGNATURE_UINT64_LE)
/* TODO: Before searching the BIOS space we are supposed to search the first 1K of the EBDA */
void *acpi_addr = (void*)ACPI_RANGE_START;
for(; acpi_addr <= (void*)ACPI_RANGE_END; acpi_addr += 16)
{
if(*(uint64_t *)acpi_addr == ACPI_SIGNATURE_UINT64_LE)
struct acpi_2_ssdt *generate_cst_ssdt(struct acpi_2_fadt* fadt)
{
char ssdt_header[] =
char ssdt_header[] = // cst_ssdt_header
{
0x53, 0x53, 0x44, 0x54, 0xE7, 0x00, 0x00, 0x00, /* SSDT.... */
0x01, 0x17, 0x50, 0x6D, 0x52, 0x65, 0x66, 0x41, /* ..PmRefA */
struct acpi_2_ssdt *generate_pss_ssdt(struct acpi_2_dsdt* dsdt)
{
char ssdt_header[] =
char ssdt_header[] = // pss_ssdt_header
{
0x53, 0x53, 0x44, 0x54, 0x7E, 0x00, 0x00, 0x00, /* SSDT.... */
0x01, 0x6A, 0x50, 0x6D, 0x52, 0x65, 0x66, 0x00, /* ..PmRef. */
DBG("New extended checksum %d\n", rsdp_mod->ExtendedChecksum);
}
if (version) {
if (version)
{
/* XXX aserebln why uint32 cast if pointer is uint64 ? */
acpi20_p = (uint64_t)(uint32_t)rsdp_mod;
addConfigurationTable(&gEfiAcpi20TableGuid, &acpi20_p, "ACPI_20");
} else {
}
else
{
/* XXX aserebln why uint32 cast if pointer is uint64 ? */
acpi10_p = (uint64_t)(uint32_t)rsdp_mod;
addConfigurationTable(&gEfiAcpiTableGuid, &acpi10_p, "ACPI");
trunk/i386/libsaio/bootargs.h
9696
9797
9898
99
100
101
102
103
104
105
106
107
108
109
110
99111
100112
101113
......
115127
116128
117129
130
131
132
133
134
118135
119136
120137
......
142159
143160
144161
145
146
162
163
147164
148
165
149166
150167
151
168
152169
153
170
154171
155172
156173
#define GRAPHICS_MODE1
#define FB_TEXT_MODE2
/* Struct describing an image passed in by the booter */
struct boot_icon_element {
unsigned int width;
unsigned int height;
int y_offset_from_center;
unsigned int data_size;
unsigned int __reserved1[4];
unsigned char data[0];
};
typedef struct boot_icon_element boot_icon_element;
/* Boot argument structure - passed into Mach kernel at boot time.
* "Revision" can be incremented for compatible changes
*/
#define kBootArgsEfiMode32 32
#define kBootArgsEfiMode64 64
/* Bitfields for boot_args->flags */
#define kBootArgsFlagRebootOnPanic(1 << 0)
#define kBootArgsFlagHiDPI(1 << 1)
#define kBootArgsFlagBlack(1 << 2)
typedef struct boot_args {
uint16_t Revision;/* Revision of boot_args structure */
uint16_t Version;/* Version of boot_args structure */
uint32_t efiRuntimeServicesPageCount;
uint64_t efiRuntimeServicesVirtualPageStart; /* virtual address of defragmented runtime pages */
uint32_t efiSystemTable; /* physical address of system table in runtime area */
uint32_t kslide; // uint32_t __reserved2;
uint32_t efiSystemTable;/* physical address of system table in runtime area */
uint32_t kslide;// uint32_t __reserved2;
uint32_t performanceDataStart; /* physical address of log */
uint32_t performanceDataStart;/* physical address of log */
uint32_t performanceDataSize;
uint32_t keyStoreDataStart; /* physical address of key store data */
uint32_t keyStoreDataStart;/* physical address of key store data */
uint32_t keyStoreDataSize;
uint64_tbootMemStart;
uint64_tbootMemStart;/* physical address of interpreter boot memory */
uint64_tbootMemSize;
uint64_t PhysicalMemorySize;
uint64_t FSBFrequency;
trunk/i386/libsaio/gma.c
549549
550550
551551
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
552
553
554
587555
588
589
590
556
557
558
591559
592
593
594
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
595587
596
597
598
599
600
601
602
603
604
588
589
590
605591
606
607
608
609
610
592
593
594
611595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612612
613613
614614
case GMA_IVYBRIDGE_S_GT4: // 0172
case GMA_IVYBRIDGE_S_GT5: // 0176
if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_IVY * 2)
{
uint8_t new_aapl0[AAPL_LEN_IVY];
if (hex2bin(value, new_aapl0, AAPL_LEN_IVY) == 0)
{
memcpy(default_aapl_ivy, new_aapl0, AAPL_LEN_IVY);
verbose("Using user supplied AAPL,ig-platform-id\n");
verbose("AAPL,ig-platform-id: %02x%02x%02x%02x\n",
default_aapl_ivy[0], default_aapl_ivy[1], default_aapl_ivy[2], default_aapl_ivy[3]);
}
devprop_add_value(device, "AAPL,ig-platform-id", default_aapl_ivy, AAPL_LEN_IVY);
}
else if (getIntForKey(kIntelCapriFB, &n_igs, &bootInfo->chameleonConfig))
{
if ((n_igs >= 0) || (n_igs <= 11))
{
verbose("AAPL,ig-platform-id was set in org.chameleon.Boot.plist with value %d\n", n_igs);
devprop_add_value(device, "AAPL,ig-platform-id", ivy_bridge_ig_vals[n_igs], 4);
}
else
{
verbose("AAPL,ig-platform-id was set in org.chameleon.Boot.plist with bad value please choose a number between 0 and 11.\n");
}
}
else
{
uint32_t ig_platform_id;
uint32_t ram = (((getVBEVideoRam() + 512) / 1024) + 512) / 1024;
switch (ram)
{
case 96:
ig_platform_id = 0x01660000; // 96mb Mobile
break;
if (getValueForKey(kAAPLCustomIG, &value, &len, &bootInfo->chameleonConfig) && len == AAPL_LEN_IVY * 2)
{
uint8_t new_aapl0[AAPL_LEN_IVY];
case 64:
ig_platform_id = 0x01660009; // 64mb Mobile
break;
if (hex2bin(value, new_aapl0, AAPL_LEN_IVY) == 0)
{
memcpy(default_aapl_ivy, new_aapl0, AAPL_LEN_IVY);
case 32:
ig_platform_id = 0x01620005; // 32mb Desktop
break;
verbose("Using user supplied AAPL,ig-platform-id\n");
verbose("AAPL,ig-platform-id: %02x%02x%02x%02x\n",
default_aapl_ivy[0], default_aapl_ivy[1], default_aapl_ivy[2], default_aapl_ivy[3]);
}
devprop_add_value(device, "AAPL,ig-platform-id", default_aapl_ivy, AAPL_LEN_IVY);
}
else if (getIntForKey(kIntelCapriFB, &n_igs, &bootInfo->chameleonConfig))
{
if ((n_igs >= 0) || (n_igs <= 11))
{
verbose("AAPL,ig-platform-id was set in org.chameleon.Boot.plist with value %d\n", n_igs);
devprop_add_value(device, "AAPL,ig-platform-id", ivy_bridge_ig_vals[n_igs], 4);
}
else
{
verbose("AAPL,ig-platform-id was set in org.chameleon.Boot.plist with bad value please choose a number between 0 and 11.\n");
}
}
else
{
uint32_t ig_platform_id;
uint32_t ram = (((getVBEVideoRam() + 512) / 1024) + 512) / 1024;
switch (ram)
{
case 96:
ig_platform_id = 0x01660000; // 96mb Mobile
break;
default:
printf("Please specify 96, 64, or 32MB RAM for the HD4000 in the bios.\n"
"The selected %dMB RAM configuration is not supported for the HD4000.\n", ram);
pause();
return false;// Exit early before the AAPL,ig-platform-id property is set.
break;
}
devprop_add_value(device, "AAPL,ig-platform-id", (uint8_t *)&ig_platform_id, 4);
}
case 64:
ig_platform_id = 0x01660009; // 64mb Mobile
break;
devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);
devprop_add_value(device, "built-in", &BuiltIn, 1);
devprop_add_value(device, "class-code", ClassFix, 4);
devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);
break;
case 32:
ig_platform_id = 0x01620005; // 32mb Desktop
break;
default:
printf("Please specify 96, 64, or 32MB RAM for the HD4000 in the bios.\n"
"The selected %dMB RAM configuration is not supported for the HD4000.\n", ram);
pause();
return false;// Exit early before the AAPL,ig-platform-id property is set.
break;
}
devprop_add_value(device, "AAPL,ig-platform-id", (uint8_t *)&ig_platform_id, 4);
}
devprop_add_value(device, "AAPL00,DualLink", HD4000_vals[10], 4);
devprop_add_value(device, "built-in", &BuiltIn, 1);
devprop_add_value(device, "class-code", ClassFix, 4);
devprop_add_value(device, "hda-gfx", (uint8_t *)"onboard-1", 10);
break;
/* Haswell */
/* HD Graphics 5000, HD Graphics 5000 Mobile, HD Graphics P5000, HD Graphics 4600, HD Graphics 4600 Mobile */
//case 0x80860090:
trunk/i386/libsaio/device_inject.c
271271
272272
273273
274
274
275
275276
276277
277278
278
279
280
279281
280282
281283
......
294296
295297
296298
297
299
300
298301
299302
300303
......
306309
307310
308311
309
312
313
310314
311315
312316
......
319323
320324
321325
322
326
327
323328
324329
325330
while(i < string->numentries)
{
if (!(i < DEV_PROP_DEVICE_MAX_ENTRIES)) {
if (!(i < DEV_PROP_DEVICE_MAX_ENTRIES))
{
break;
}
if(!len) {
if(!len)
{
break;
}
len -= 24;
for(x = 0;x < string->entries[i]->num_pci_devpaths; x++)
{
if(!len) {
if(!len)
{
break;
}
snprintf(buffer, len, "%02x%02x%04x%02x%02x", string->entries[i]->pci_dev_path[x].type,
len -= 12;
}
if(!len) {
if(!len)
{
break;
}
uint8_t *dataptr = string->entries[i]->data;
for(x = 0; (uint32_t)x < (string->entries[i]->length) - (24 + (6 * string->entries[i]->num_pci_devpaths)) ; x++)
{
if(!len) {
if(!len)
{
break;
}
snprintf(buffer, len, "%02x", *dataptr++);
trunk/i386/libsaio/hda.c
9292
9393
9494
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116116
117
118
117
118
119119
120120
121121
......
487487
488488
489489
490
490
491
491492
492493
493494
......
513514
514515
515516
516
517
517
518
519
520
518521
519522
520523
......
577580
578581
579582
580
583
584
581585
582586
583587
......
607611
608612
609613
610
614
615
611616
612617
613618
static hda_controller_devices know_hda_controller[] = {
//8086 Intel Corporation
{ HDA_INTEL_HASWELL, "Haswell-ULT" },
{ HDA_INTEL_HASWELL2, "Haswell" },
{ HDA_INTEL_CRYSTAL, "Crystal Well" },
{ HDA_INTEL_CPT, "6 Series/C200 Series Chipset Family" },
{ HDA_INTEL_PATSBURG,"C600/X79 series chipset" },
{ HDA_INTEL_PPT1, "7 Series/C210 Series Chipset Family" },
{ HDA_INTEL_82801F, "82801FB/FBM/FR/FW/FRW (ICH6 Family)" },
{ HDA_INTEL_63XXESB, "631x/631xESB/632xESB" },
{ HDA_INTEL_82801G, "NM10/ICH7 Family" },
{ HDA_INTEL_82801H, "82801H (ICH8 Family)" },
{ HDA_INTEL_82801I, "82801I (ICH9 Family)" },
{ HDA_INTEL_82801JI, "82801JI (ICH10 Family)" },
{ HDA_INTEL_82801JD, "82801JD/DO (ICH10 Family) " },
{ HDA_INTEL_PCH, "5 Series/3400 Series" },
{ HDA_INTEL_PCH2, "5 Series/3400 Series" },
{ HDA_INTEL_SCH, "System Controller Hub (SCH Poulsbo)" },
{ HDA_INTEL_SCH2, "Wildcat Point" },
{ HDA_INTEL_LPT1, "Wellsburg" },
{ HDA_INTEL_LPT2, "Wellsburg" },
{ HDA_INTEL_LYNX, "Lynx Point" },
{ HDA_INTEL_LYNX2, "Lynx Point" },
{ HDA_INTEL_HASWELL,"Haswell-ULT" },
{ HDA_INTEL_HASWELL2,"Haswell" },
{ HDA_INTEL_CRYSTAL,"Crystal Well" },
{ HDA_INTEL_CPT,"6 Series/C200 Series Chipset Family" },
{ HDA_INTEL_PATSBURG,"C600/X79 series chipset" },
{ HDA_INTEL_PPT1,"7 Series/C210 Series Chipset Family" },
{ HDA_INTEL_82801F,"82801FB/FBM/FR/FW/FRW (ICH6 Family)" },
{ HDA_INTEL_63XXESB,"631x/631xESB/632xESB" },
{ HDA_INTEL_82801G,"NM10/ICH7 Family" },
{ HDA_INTEL_82801H,"82801H (ICH8 Family)" },
{ HDA_INTEL_82801I,"82801I (ICH9 Family)" },
{ HDA_INTEL_82801JI,"82801JI (ICH10 Family)" },
{ HDA_INTEL_82801JD,"82801JD/DO (ICH10 Family) " },
{ HDA_INTEL_PCH,"5 Series/3400 Series" },
{ HDA_INTEL_PCH2,"5 Series/3400 Series" },
{ HDA_INTEL_SCH,"System Controller Hub (SCH Poulsbo)" },
{ HDA_INTEL_SCH2,"Wildcat Point" },
{ HDA_INTEL_LPT1,"Wellsburg" },
{ HDA_INTEL_LPT2,"Wellsburg" },
{ HDA_INTEL_LYNX,"Lynx Point" },
{ HDA_INTEL_LYNX2,"Lynx Point" },
//10de NVIDIA Corporation
{ HDA_NVIDIA_MCP51, "MCP51" },
{ HDA_NVIDIA_MCP55, "MCP55" },
{ HDA_NVIDIA_MCP51,"MCP51" },
{ HDA_NVIDIA_MCP55,"MCP55" },
{ HDA_NVIDIA_MCP61_1, "MCP61" },
{ HDA_NVIDIA_MCP61_2, "MCP61" },
{ HDA_NVIDIA_MCP65_1, "MCP65" },
int i;
/* Get format for vendor ID */
switch (controller_vendor_id) {
switch (controller_vendor_id)
{
case ATI_VENDORID:
name_format = "ATI %s HDA Controller (HDMi)"; break;
break;
}
for (i = 0; i < HDAC_DEVICES_LEN; i++) {
if (know_hda_controller[i].model == controller_model) {
for (i = 0; i < HDAC_DEVICES_LEN; i++)
{
if (know_hda_controller[i].model == controller_model)
{
snprintf(desc, sizeof(desc), name_format, know_hda_controller[i].desc);
return desc;
}
verbose("- AUDIO DEVICE INFO -\n");
verbose("--------------------------------\n");
switch ((controller_device_id << 16) | controller_vendor_id) {
switch ((controller_device_id << 16) | controller_vendor_id)
{
/***********************************************************************
* The above case are intended as for HDEF device at address 0x001B0000
if (getValueForKey(kHDEFLayoutID, &value, &len, &bootInfo->chameleonConfig) && len == HDEF_LEN * 2)
{
uint8_t new_HDEF_layout_id[HDEF_LEN];
if (hex2bin(value, new_HDEF_layout_id, HDEF_LEN) == 0){
if (hex2bin(value, new_HDEF_layout_id, HDEF_LEN) == 0)
{
memcpy(default_HDEF_layout_id, new_HDEF_layout_id, HDEF_LEN);
verbose("Using user supplied HDEF layout-id: 0x%02x, 0x%02x, 0x%02x, 0x%02x\n",
default_HDEF_layout_id[0], default_HDEF_layout_id[1], default_HDEF_layout_id[2], default_HDEF_layout_id[3]);
trunk/i386/libsaio/nvidia.c
15661566
15671567
15681568
1569
1569
1570
1571
1572
1573
1574
1575
15701576
15711577
15721578
......
17931799
17941800
17951801
1796
17971802
17981803
17991804
......
19681973
19691974
19701975
1971
19721976
19731977
19741978
......
20132017
20142018
20152019
2020
20162021
20172022
20182023
......
20202025
20212026
20222027
2028
20232029
20242030
20252031
......
20552061
20562062
20572063
2058
2064
20592065
20602066
20612067
static int patch_nvidia_rom(uint8_t *rom)
{
if (!rom || (rom[0] != 0x55 && rom[1] != 0xaa)) {
if (!rom)
{
printf("ROM not found\n");
return PATCH_ROM_FAILED;
}
if (rom[0] != 0x55 && rom[1] != 0xaa)
{
printf("False ROM signature: 0x%02x%02x\n", rom[0], rom[1]);
return PATCH_ROM_FAILED;
}
for (i = 0; i < (sizeof(nvidia_card_exceptions) / sizeof(nvidia_card_exceptions[0])); i++) {
if ((nvidia_card_exceptions[i].device == device_id) && (nvidia_card_exceptions[i].subdev == subsys_id)){
return nvidia_card_exceptions[i].name;
break;
}
}
}
option_rom_pci_header_t*rom_pci_header;
volatile uint8_t*regs;
uint8_t*rom = NULL;
uint8_t*nvRom;
uint8_tnvCardType = 0;
unsigned long longvideoRam = 0;
uint32_tnvBiosOveride;
return false;
}
} else {
uint8_t*nvRom;
rom = malloc(NVIDIA_ROM_SIZE);
// Otherwise read bios from card
nvBiosOveride = 0;
// PROM first
// Enable PROM access
(REG32(NV_PBUS_PCI_NV_20)) = NV_PBUS_PCI_NV_20_ROM_SHADOW_DISABLED;
nvRom = (uint8_t*)&regs[NV_PROM_OFFSET];
// Valid Signature ?
if ((nvPatch = patch_nvidia_rom(rom)) == PATCH_ROM_FAILED) {
printf("ERROR: nVidia ROM Patching Failed!\n");
free(rom);
//return false;
return false;
}
rom_pci_header = (option_rom_pci_header_t*)(rom + *(uint16_t *)&rom[24]);
trunk/i386/libsaio/cpu.c
299299
300300
301301
302
303
304
302
303
304
305305
306
306
307307
308308
309309
......
347347
348348
349349
350
350
351
351352
352353
353354
354355
355356
356357
357
358
359
358360
359361
360362
......
367369
368370
369371
370
371
372
373
374
375
376
377
372378
373379
374380
375
376
377
381
382
378383
379384
380385
......
387392
388393
389394
390
395
396
391397
392398
393399
394400
395
401
402
396403
397404
398405
399406
400407
401
408
409
402410
403411
404
412
413
414
405415
406416
407
417
418
419
408420
409421
410
422
423
424
411425
412426
413
427
428
429
414430
415431
416
432
433
434
417435
418436
419
437
438
439
420440
421441
422
442
443
444
423445
424446
447
425448
426
449
450
451
427452
428453
429454
430455
431456
432457
433
458
459
434460
435461
436462
437463
438464
465
439466
440467
441468
......
468495
469496
470497
471
498
499
472500
473501
474502
......
478506
479507
480508
481
509
510
482511
483512
484513
485514
486
487
515
516
517
518
519
488520
489521
490522
491523
492524
493
525
526
494527
495528
529
496530
497
531
532
498533
499534
500535
501536
502
537
538
539
503540
504541
505
542
543
506544
507545
508
546
547
509548
510549
511550
512551
513552
514553
515
554
555
516556
517
557
558
518559
519
560
561
562
520563
521564
522
565
566
567
523568
524569
525570
......
544589
545590
546591
547
592
593
548594
549595
550
596
597
598
551599
552600
553601
554602
555603
556
557
604
605
606
607
558608
559
609
610
611
560612
561613
562
614
615
616
563617
564
618
619
620
565621
566622
623
567624
568625
569626
570627
571628
572629
573
630
631
574632
575633
576
577
634
635
636
637
638
578639
579640
580641
......
585646
586647
587648
588
649
650
589651
590652
591653
......
611673
612674
613675
614
615
616
676
677
678
679
680
681
617682
618683
619684
620
685
686
621687
622
688
689
690
623691
624692
625693
626
627
694
695
696
697
698
628699
629
700
701
702
630703
631704
632705
633706
634
635
707
708
709
710
711
636712
637713
638
714
715
716
639717
640718
641719
......
665743
666744
667745
668
746
669747
670748
671749
p->CPU.Vendor= p->CPU.CPUID[CPUID_0][1];
p->CPU.Signature= p->CPU.CPUID[CPUID_1][0];
p->CPU.Stepping= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 3, 0); // stepping = cpu_feat_eax & 0xF;
p->CPU.Model= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 7, 4); // model = (cpu_feat_eax >> 4) & 0xF;
p->CPU.Family= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 11, 8); // family = (cpu_feat_eax >> 8) & 0xF;
p->CPU.Stepping= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 3, 0);// stepping = cpu_feat_eax & 0xF;
p->CPU.Model= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 7, 4);// model = (cpu_feat_eax >> 4) & 0xF;
p->CPU.Family= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 11, 8);// family = (cpu_feat_eax >> 8) & 0xF;
//p->CPU.Type= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 13, 12);// type = (cpu_feat_eax >> 12) & 0x3;
p->CPU.ExtModel= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 19, 16); // ext_model = (cpu_feat_eax >> 16) & 0xF;
p->CPU.ExtModel= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 19, 16);// ext_model = (cpu_feat_eax >> 16) & 0xF;
p->CPU.ExtFamily= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][0], 27, 20);// ext_family = (cpu_feat_eax >> 20) & 0xFF;
p->CPU.Model += (p->CPU.ExtModel << 4);
} // end switch
}
if (p->CPU.NoCores == 0) {
if (p->CPU.NoCores == 0)
{
p->CPU.NoCores= (uint8_t)(p->CPU.CoresPerPackage & 0xff);
p->CPU.NoThreads= (uint8_t)(p->CPU.LogicalPerPackage & 0xff);
}
/* get BrandString (if supported) */
/* Copyright: from Apple's XNU cpuid.c */
if (p->CPU.CPUID[CPUID_80][0] > 0x80000004) {
if (p->CPU.CPUID[CPUID_80][0] > 0x80000004)
{
char *s;
bzero(str, 128);
/*
memcpy(&str[16], (char *)reg, 16);
do_cpuid(0x80000004, reg);
memcpy(&str[32], (char *)reg, 16);
for (s = str; *s != '\0'; s++) {
if (*s != ' ') { break; }
for (s = str; *s != '\0'; s++)
{
if (*s != ' ')
{
break;
}
}
strlcpy(p->CPU.BrandString, s, 48);
if (!strncmp(p->CPU.BrandString, CPU_STRING_UNKNOWN,
MIN(sizeof(p->CPU.BrandString),
strlen(CPU_STRING_UNKNOWN) + 1))) {
if (!strncmp(p->CPU.BrandString, CPU_STRING_UNKNOWN, MIN(sizeof(p->CPU.BrandString), strlen(CPU_STRING_UNKNOWN) + 1)))
{
/*
* This string means we have a firmware-programmable brand string,
* and the firmware couldn't figure out what sort of CPU we have.
//workaround for N270. I don't know why it detected wrong
// MSR is *NOT* available on the Intel Atom CPU
if ((p->CPU.Model == CPU_MODEL_ATOM) && (strstr(p->CPU.BrandString, "270"))) {
if ((p->CPU.Model == CPU_MODEL_ATOM) && (strstr(p->CPU.BrandString, "270")))
{
p->CPU.NoCores= 1;
p->CPU.NoThreads= 2;
}
if (p->CPU.Vendor == CPUID_VENDOR_AMD) {
if (p->CPU.Vendor == CPUID_VENDOR_AMD)
{
p->CPU.NoThreads= (uint8_t)bitfield(p->CPU.CPUID[CPUID_1][1], 23, 16);
p->CPU.NoCores= (uint8_t)bitfield(p->CPU.CPUID[CPUID_88][2], 7, 0) + 1;
}
/* setup features */
if ((bit(23) & p->CPU.CPUID[CPUID_1][3]) != 0) {
if ((bit(23) & p->CPU.CPUID[CPUID_1][3]) != 0)
{
p->CPU.Features |= CPU_FEATURE_MMX;
}
if ((bit(25) & p->CPU.CPUID[CPUID_1][3]) != 0) {
if ((bit(25) & p->CPU.CPUID[CPUID_1][3]) != 0)
{
p->CPU.Features |= CPU_FEATURE_SSE;
}
if ((bit(26) & p->CPU.CPUID[CPUID_1][3]) != 0) {
if ((bit(26) & p->CPU.CPUID[CPUID_1][3]) != 0)
{
p->CPU.Features |= CPU_FEATURE_SSE2;
}
if ((bit(0) & p->CPU.CPUID[CPUID_1][2]) != 0) {
if ((bit(0) & p->CPU.CPUID[CPUID_1][2]) != 0)
{
p->CPU.Features |= CPU_FEATURE_SSE3;
}
if ((bit(19) & p->CPU.CPUID[CPUID_1][2]) != 0) {
if ((bit(19) & p->CPU.CPUID[CPUID_1][2]) != 0)
{
p->CPU.Features |= CPU_FEATURE_SSE41;
}
if ((bit(20) & p->CPU.CPUID[CPUID_1][2]) != 0) {
if ((bit(20) & p->CPU.CPUID[CPUID_1][2]) != 0)
{
p->CPU.Features |= CPU_FEATURE_SSE42;
}
if ((bit(29) & p->CPU.CPUID[CPUID_81][3]) != 0) {
if ((bit(29) & p->CPU.CPUID[CPUID_81][3]) != 0)
{
p->CPU.Features |= CPU_FEATURE_EM64T;
}
if ((bit(5) & p->CPU.CPUID[CPUID_1][3]) != 0) {
if ((bit(5) & p->CPU.CPUID[CPUID_1][3]) != 0)
{
p->CPU.Features |= CPU_FEATURE_MSR;
}
//if ((bit(28) & p->CPU.CPUID[CPUID_1][3]) != 0) {
if (p->CPU.NoThreads > p->CPU.NoCores) {
if (p->CPU.NoThreads > p->CPU.NoCores)
{
p->CPU.Features |= CPU_FEATURE_HTT;
}
tscFrequency = measure_tsc_frequency();
DBG("cpu freq classic = 0x%016llx\n", tscFrequency);
/* if usual method failed */
if ( tscFrequency < 1000 ) { //TEST
if ( tscFrequency < 1000 )//TEST
{
tscFrequency = timeRDTSC() * 20;//measure_tsc_frequency();
// DBG("cpu freq timeRDTSC = 0x%016llx\n", tscFrequency);
} else {
// DBG("cpu freq timeRDTSC = 0x%016llxn", timeRDTSC() * 20);
}
fsbFrequency = 0;
cpuFrequency = 0;
bus_ratio_min = bitfield(msr, 47, 40); //valv: not sure about this one (Remarq.1)
msr = rdmsr64(MSR_FLEX_RATIO);
DBG("msr(%d): flex_ratio %08x\n", __LINE__, bitfield(msr, 31, 0));
if (bitfield(msr, 16, 16)) {
if (bitfield(msr, 16, 16))
{
flex_ratio = bitfield(msr, 15, 8);
/* bcc9: at least on the gigabyte h67ma-ud2h,
where the cpu multipler can't be changed to
causing the system to crash since tscGranularity
is inadvertently set to 0.
*/
if (flex_ratio == 0) {
if (flex_ratio == 0)
{
/* Clear bit 16 (evidently the presence bit) */
wrmsr64(MSR_FLEX_RATIO, (msr & 0xFFFFFFFFFFFEFFFFULL));
msr = rdmsr64(MSR_FLEX_RATIO);
DBG("Unusable flex ratio detected. Patched MSR now %08x\n", bitfield(msr, 31, 0));
} else {
if (bus_ratio_max > flex_ratio) {
}
else
{
if (bus_ratio_max > flex_ratio)
{
bus_ratio_max = flex_ratio;
}
}
}
if (bus_ratio_max) {
if (bus_ratio_max)
{
fsbFrequency = (tscFrequency / bus_ratio_max);
}
//valv: Turbo Ratio Limit
if ((intelCPU != 0x2e) && (intelCPU != 0x2f)) {
if ((intelCPU != 0x2e) && (intelCPU != 0x2f))
{
msr = rdmsr64(MSR_TURBO_RATIO_LIMIT);
cpuFrequency = bus_ratio_max * fsbFrequency;
max_ratio = bus_ratio_max * 10;
} else {
}
else
{
cpuFrequency = tscFrequency;
}
if ((getValueForKey(kbusratio, &newratio, &len, &bootInfo->chameleonConfig)) && (len <= 4)) {
if ((getValueForKey(kbusratio, &newratio, &len, &bootInfo->chameleonConfig)) && (len <= 4))
{
max_ratio = atoi(newratio);
max_ratio = (max_ratio * 10);
if (len >= 3) {
if (len >= 3)
{
max_ratio = (max_ratio + 5);
}
verbose("Bus-Ratio: min=%d, max=%s\n", bus_ratio_min, newratio);
// extreme overclockers may love 320 ;)
if ((max_ratio >= min_ratio) && (max_ratio <= 320)) {
if ((max_ratio >= min_ratio) && (max_ratio <= 320))
{
cpuFrequency = (fsbFrequency * max_ratio) / 10;
if (len >= 3) {
if (len >= 3)
{
maxdiv = 1;
} else {
}
else
{
maxdiv = 0;
}
} else {
}
else
{
max_ratio = (bus_ratio_max * 10);
}
}
currdiv = bitfield(msr, 14, 14);
// This will always be model >= 3
if ((p->CPU.Family == 0x06 && p->CPU.Model >= 0x0e) || (p->CPU.Family == 0x0f)) {
if ((p->CPU.Family == 0x06 && p->CPU.Model >= 0x0e) || (p->CPU.Family == 0x0f))
{
/* On these models, maxcoef defines TSC freq */
maxcoef = bitfield(msr, 44, 40);
} else {
}
else
{
/* On lower models, currcoef defines TSC freq */
/* XXX */
maxcoef = currcoef;
}
if (maxcoef) {
if (maxdiv) {
if (maxcoef)
{
if (maxdiv)
{
fsbFrequency = ((tscFrequency * 2) / ((maxcoef * 2) + 1));
} else {
}
else
{
fsbFrequency = (tscFrequency / maxcoef);
}
if (currdiv) {
if (currdiv)
{
cpuFrequency = (fsbFrequency * ((currcoef * 2) + 1) / 2);
} else {
}
else
{
cpuFrequency = (fsbFrequency * currcoef);
}
DBG("max: %d%s current: %d%s\n", maxcoef, maxdiv ? ".5" : "",currcoef, currdiv ? ".5" : "");
}
break;
}
}
/* Mobile CPU */
if (rdmsr64(MSR_IA32_PLATFORM_ID) & (1<<28)) {
if (rdmsr64(MSR_IA32_PLATFORM_ID) & (1<<28))
{
p->CPU.Features |= CPU_FEATURE_MOBILE;
}
} else if ((p->CPU.Vendor == CPUID_VENDOR_AMD) && (p->CPU.Family == 0x0f)) {
switch(p->CPU.ExtFamily) {
}
else if ((p->CPU.Vendor == CPUID_VENDOR_AMD) && (p->CPU.Family == 0x0f))
{
switch(p->CPU.ExtFamily)
{
case 0x00: /* K8 */
msr = rdmsr64(K8_FIDVID_STATUS);
maxcoef = bitfield(msr, 21, 16) / 2 + 4;
msr = rdmsr64(K10_COFVID_STATUS);
do_cpuid2(0x00000006, 0, p->CPU.CPUID[CPUID_6]);
// EffFreq: effective frequency interface
if (bitfield(p->CPU.CPUID[CPUID_6][2], 0, 0) == 1) {
if (bitfield(p->CPU.CPUID[CPUID_6][2], 0, 0) == 1)
{
//uint64_t mperf = measure_mperf_frequency();
uint64_t aperf = measure_aperf_frequency();
cpuFrequency = aperf;
break;
}
if (maxcoef) {
if (currdiv) {
if (!currcoef) {
if (maxcoef)
{
if (currdiv)
{
if (!currcoef)
{
currcoef = maxcoef;
}
if (!cpuFrequency) {
if (!cpuFrequency)
{
fsbFrequency = ((tscFrequency * currdiv) / currcoef);
} else {
}
else
{
fsbFrequency = ((cpuFrequency * currdiv) / currcoef);
}
DBG("%d.%d\n", currcoef / currdiv, ((currcoef % currdiv) * 100) / currdiv);
} else {
if (!cpuFrequency) {
}
else
{
if (!cpuFrequency)
{
fsbFrequency = (tscFrequency / maxcoef);
} else {
}
else
{
fsbFrequency = (cpuFrequency / maxcoef);
}
DBG("%d\n", currcoef);
}
} else if (currcoef) {
if (currdiv) {
}
else if (currcoef)
{
if (currdiv)
{
fsbFrequency = ((tscFrequency * currdiv) / currcoef);
DBG("%d.%d\n", currcoef / currdiv, ((currcoef % currdiv) * 100) / currdiv);
} else {
}
else
{
fsbFrequency = (tscFrequency / currcoef);
DBG("%d\n", currcoef);
}
// keep formatted with spaces instead of tabs
DBG("\n---------------------------------------------\n");
DBG("--------------- CPU INFO ---------------\n");
DBG("------------------ CPU INFO -----------------\n");
DBG("---------------------------------------------\n");
DBG("Brand String: %s\n", p->CPU.BrandString); // Processor name (BIOS)
DBG("Vendor: 0x%x\n", p->CPU.Vendor); // Vendor ex: GenuineIntel
trunk/i386/libsaio/disk.c
747747
748748
749749
750
750
751
751752
752753
753
754
755
754756
755757
756758
......
758760
759761
760762
761
763
764
762765
763766
764
767
768
769
765770
766
771
772
773
767774
768775
769776
770777
771
778
779
772780
773781
774782
......
15651573
15661574
15671575
1568
1576
15691577
15701578
1571
1572
1579
1580
1581
15731582
1574
1583
1584
1585
15751586
15761587
15771588
1578
1589
15791590
15801591
15811592
15821593
1583
1584
1594
1595
1596
15851597
15861598
15871599
......
15911603
15921604
15931605
1594
1606
1607
15951608
1596
1609
1610
1611
15971612
15981613
1599
1614
1615
1616
16001617
16011618
16021619
......
16131630
16141631
16151632
1616
1633
1634
1635
16171636
16181637
16191638
......
16551674
16561675
16571676
1658
1677
1678
16591679
16601680
16611681
......
16641684
16651685
16661686
1667
1668
1687
1688
1689
1690
16691691
16701692
16711693
// Probe the filesystem.
if ( initFunc ) {
if ( initFunc )
{
bvr->flags |= kBVFlagNativeBoot;
if ( probe && initFunc( bvr ) != 0 ) {
if ( probe && initFunc( bvr ) != 0 )
{
// filesystem probe failed.
DEBUG_DISK(("%s: failed probe on dev %x part %d\n", __FUNCTION__, biosdev, partno));
(*bvr->bv_free)(bvr);
bvr = NULL;
}
if ( readBootSector( biosdev, blkoff, (void *)0x7e00 ) == 0 ) {
if ( readBootSector( biosdev, blkoff, (void *)0x7e00 ) == 0 )
{
bvr->flags |= kBVFlagBootable;
}
} else if ( readBootSector( biosdev, blkoff, (void *)0x7e00 ) == 0 ) {
}
else if ( readBootSector( biosdev, blkoff, (void *)0x7e00 ) == 0 )
{
bvr->flags |= kBVFlagForeignBoot;
} else {
}
else
{
(*bvr->bv_free)(bvr);
bvr = NULL;
}
}
if (bvr) {
if (bvr)
{
bvr->flags |= bvrFlags;
}
return bvr;
{
bool valid = false;
config_file_t systemVersion;
char dirSpec[512];
char dirSpec[512];
sprintf(dirSpec, "hd(%d,%d)/System/Library/CoreServices/SystemVersion.plist", BIOS_DEV_UNIT(bvr), bvr->part_no);
if (!loadConfigFile(dirSpec, &systemVersion)) {
if (!loadConfigFile(dirSpec, &systemVersion))
{
valid = true;
} else {
}
else
{
sprintf(dirSpec, "hd(%d,%d)/System/Library/CoreServices/ServerVersion.plist", BIOS_DEV_UNIT(bvr), bvr->part_no);
if (!loadConfigFile(dirSpec, &systemVersion))
{
{
bvr->OSisServer = true;
valid = true;
}
}
if (valid) {
if (valid)
{
const char *val;
int len;
// so copy it and trim
*str = '\0';
// crazybirdy
if (len > 4 && (val[3] == '1')) {
if (len > 4 && (val[3] == '1'))
{
strncat(str, val, MIN(len, 5));
} else {
}
else
{
strncat(str, val, MIN(len, 4));
}
} else {
}
else
{
valid = false;
}
}
bvr->OSisInstaller = true;
strcpy(bvr->OSVersion, "10.7"); // 10.7 +
close(fh);
} else {
}
else
{
close(fh);
}
}
close(fh);
if (!error) {
if (!error)
{
label[fileSize] = '\0';
strcpy(bvr->altlabel, label);
}
// Check for SystemVersion.plist or ServerVersion.plist to determine if a volume hosts an installed system.
if (bvr->flags & kBVFlagNativeBoot) {
if (getOSVersion(bvr,bvr->OSVersion) == true) {
if (bvr->flags & kBVFlagNativeBoot)
{
if (getOSVersion(bvr,bvr->OSVersion) == true)
{
bvr->flags |= kBVFlagSystemVolume;
}
}
trunk/i386/libsaio/smbios.c
705705
706706
707707
708
709708
710709
711710
......
730729
731730
732731
732
733733
734734
735735
case CPU_MODEL_SANDYBRIDGE:// Intel Core i3, i5, i7 LGA1155 (32nm)
case CPU_MODEL_IVYBRIDGE:// Intel Core i3, i5, i7 LGA1155 (22nm)
case CPU_MODEL_IVYBRIDGE_XEON:
defaultBIOSInfo.version = kDefaultiMacSandyBIOSVersion;
defaultBIOSInfo.releaseDate = kDefaultiMacSandyBIOSReleaseDate;
defaultSystemInfo.productName= kDefaultiMacSandy;
case CPU_MODEL_WESTMERE:// Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
case CPU_MODEL_WESTMERE_EX:// Intel Xeon E7
case CPU_MODEL_JAKETOWN:// Intel Core i7, Xeon E5 LGA2011 (32nm)
case CPU_MODEL_IVYBRIDGE_XEON:// Intel Core i7, Xeon E5 v2 LGA2011 (22nm)
defaultBIOSInfo.version= kDefaultMacProWestmereBIOSVersion;
defaultBIOSInfo.releaseDate= kDefaultMacProWestmereBIOSReleaseDate;
defaultSystemInfo.productName= kDefaultMacProWestmere;
trunk/i386/libsaio/stringTable.c
592592
593593
594594
595
595
596
596597
597598
598599
......
619620
620621
621622
622
623
623
624
625
626
624627
625628
626629
......
656659
657660
658661
659
660
662
663
664
665
661666
662667
663
668
669
670
664671
665672
666
673
674
675
667676
668677
669678
670
679
680
671681
672682
673683
674
684
685
675686
676687
677688
......
691702
692703
693704
694
705
706
695707
696708
697709
......
726738
727739
728740
729
730
741
742
743
744
731745
732746
733747
......
744758
745759
746760
747
761
762
748763
749
764
765
766
750767
751768
752769
......
764781
765782
766783
767
784
785
768786
769787
770788
771789
772790
773791
774
792
793
775794
776795
777796
{
int fd, count;
if ((fd = open_bvdev("bt(0,0)", configFile, 0)) < 0) {
if ((fd = open_bvdev("bt(0,0)", configFile, 0)) < 0)
{
return -1;
}
// read file
int i, fd, count, ret=-1;
for(i = 0; i< sizeof(dirspec)/sizeof(dirspec[0]); i++) {
if ((fd = open(dirspec[i], 0)) >= 0) {
for(i = 0; i< sizeof(dirspec)/sizeof(dirspec[0]); i++)
{
if ((fd = open(dirspec[i], 0)) >= 0)
{
// read file
count = read(fd, config->plist, IO_CONFIG_DATA_SIZE);
close(fd);
int i;
for(i = 0; i< sizeof(dirspec)/sizeof(dirspec[0]); i++) {
if ( loadChameleonConfigForDevice(config, "rd(0,0)", dirspec[i]) == 0 ) {
for(i = 0; i< sizeof(dirspec)/sizeof(dirspec[0]); i++)
{
if ( loadChameleonConfigForDevice(config, "rd(0,0)", dirspec[i]) == 0 )
{
return 0;
}
if ( loadChameleonConfigForDevice(config, "", dirspec[i]) == 0 ) {
if ( loadChameleonConfigForDevice(config, "", dirspec[i]) == 0 )
{
return 0;
}
if ( loadChameleonConfigForDevice(config, "bt(0,0)", dirspec[i]) == 0 ) {
if ( loadChameleonConfigForDevice(config, "bt(0,0)", dirspec[i]) == 0 )
{
return 0;
}
BVRef bvr;
for ( bvr = chain; bvr; bvr = bvr->next ) { /* C99 Error */
for ( bvr = chain; bvr; bvr = bvr->next ) /* C99 Error */
{
char device[256];
getDeviceDescription(bvr, device);
if ( loadChameleonConfigForDevice(config, device, dirspec[i]) == 0 ) {
if ( loadChameleonConfigForDevice(config, device, dirspec[i]) == 0 )
{
return 0;
}
}
snprintf(full_path, sizeof(full_path), "%s%s", device, path);
if ((fd = open(full_path, 0)) >= 0) {
if ((fd = open(full_path, 0)) >= 0)
{
// Check for depreciated file names and annoy the user about it.
if(strstr(full_path, "com.apple.Boot.plist")) {
printf("%s is depreciated.\n", full_path);
int i, fd, count, ret=-1;
for(i = 0; i< sizeof(dirspec)/sizeof(dirspec[0]); i++) {
if ((fd = open(dirspec[i], 0)) >= 0) {
for(i = 0; i< sizeof(dirspec)/sizeof(dirspec[0]); i++)
{
if ((fd = open(dirspec[i], 0)) >= 0)
{
// read file
count = read(fd, config->plist, IO_CONFIG_DATA_SIZE);
close(fd);
char * newString(const char * oldString)
{
if ( oldString ) {
if ( oldString )
{
return strcpy(malloc(strlen(oldString)+1), oldString);
} else {
}
else
{
return NULL;
}
}
*val = '\0';
// Scan for the next non-whitespace character.
while ( *ptr && (*ptr == ' ' || *ptr == '=') ) {
while ( *ptr && (*ptr == ' ' || *ptr == '=') )
{
ptr++;
}
strStart = ptr;
// Skip the leading double quote character.
if (*ptr == '\"') {
if (*ptr == '\"')
{
isQuoted = true;
ptr++;
strStart++;
trunk/i386/libsaio/smbios_getters.c
6464
6565
6666
67
68
67
68
69
70
6971
7072
7173
bool getSMBOemProcessorBusSpeed(returnType *value)
{
if (Platform.CPU.Vendor == CPUID_VENDOR_INTEL) { // Intel
switch (Platform.CPU.Family) {
if (Platform.CPU.Vendor == CPUID_VENDOR_INTEL) // Intel
{
switch (Platform.CPU.Family)
{
case 0x06:
{
switch (Platform.CPU.Model) {
trunk/i386/boot2/picopng.c
935935
936936
937937
938
938
939
939940
940941
941942
942943
943
944
945
944946
945947
946948
vector8_resize(out, numpixels * 4);
uint8_t *out_data = out->size ? out->data : 0;
if (bitDepth == 8 && colorType == 0) // greyscale
for (i = 0; i < numpixels; i++) {
for (i = 0; i < numpixels; i++)
{
out_data[4 * i + 0] = out_data[4 * i + 1] = out_data[4 * i + 2] = in[i];
out_data[4 * i + 3] = (info->key_defined && (in[i] == info->key_r)) ? 0 : 255;
}
else if (bitDepth == 8 && colorType == 2) // RGB color
for (i = 0; i < numpixels; i++) {
for (i = 0; i < numpixels; i++)
{
for (c = 0; c < 3; c++)
out_data[4 * i + c] = in[3 * i + c];
out_data[4 * i + 3] = (info->key_defined && (in[3 * i + 0] == info->key_r) &&
trunk/i386/boot2/drivers.c
7474
7575
7676
77
78
79
80
81
82
83
84
77
78
79
80
81
82
83
84
8585
8686
8787
......
103103
104104
105105
106
107
106
107
108108
109109
110110
......
146146
147147
148148
149
150149
151150
152151
153
154
152
155153
156154
157155
......
173171
174172
175173
176
174
175
177176
178177
179178
......
202201
203202
204203
205
204
205
206206
207207
208208
209
209
210
210211
211212
212213
......
216217
217218
218219
219
220
221
220222
221223
222224
......
234236
235237
236238
237
239
240
238241
239
242
243
240244
241245
242246
......
255259
256260
257261
258
262
263
264
259265
260266
261267
......
271277
272278
273279
274
275
280
276281
277282
278283
......
291296
292297
293298
294
299
300
295301
296302
297303
......
302308
303309
304310
305
306
311
307312
308313
309314
......
318323
319324
320325
321
326
327
322328
323329
324330
......
334340
335341
336342
337
343
344
338345
339346
340347
341348
342349
343
350
351
344352
345353
346354
......
350358
351359
352360
353
361
362
354363
355
364
365
366
356367
357368
358369
359
370
371
360372
361373
362374
363375
364376
365
377
378
366379
367380
368381
369
382
383
370384
371385
372386
......
378392
379393
380394
381
382
395
383396
384397
385398
......
389402
390403
391404
392
405
406
393407
394408
395409
......
404418
405419
406420
407
421
422
408423
409424
410425
411
426
427
412428
413429
414430
......
418434
419435
420436
421
422
437
423438
424439
425440
......
430445
431446
432447
433
448
449
434450
435451
436452
#define kDriverPackageSignature2 'MOSX'
struct DriversPackage {
unsigned long signature1;
unsigned long signature2;
unsigned long length;
unsigned long adler32;
unsigned long version;
unsigned long numDrivers;
unsigned long reserved1;
unsigned long reserved2;
unsigned long signature1;
unsigned long signature2;
unsigned long length;
unsigned long adler32;
unsigned long version;
unsigned long numDrivers;
unsigned long reserved1;
unsigned long reserved2;
};
typedef struct DriversPackage DriversPackage;
static long MatchPersonalities(void);
static long MatchLibraries(void);
#ifdef NOTDEF
static ModulePtr FindModule(char *name);
static void ThinFatFile(void **loadAddrP, unsigned long *lengthP);
static ModulePtr FindModule(char *name);
static void ThinFatFile(void **loadAddrP, unsigned long *lengthP);
#endif
static long ParseXML(char *buffer, ModulePtr *module, TagPtr *personalities);
static long InitDriverSupport(void);
return result;
}
//==========================================================================
// InitDriverSupport
static long
InitDriverSupport( void )
static long InitDriverSupport( void )
{
gExtensionsSpec = malloc( 4096 );
gDriverSpec = malloc( 4096 );
{
char dirSpecExtra[1024];
if ( InitDriverSupport() != 0 ) {
if ( InitDriverSupport() != 0 )
{
return 0;
}
// Next try to load Extra extensions from the selected root partition.
strcpy(dirSpecExtra, "/Extra/");
if (FileLoadDrivers(dirSpecExtra, 0) != 0) {
if (FileLoadDrivers(dirSpecExtra, 0) != 0)
{
// If failed, then try to load Extra extensions from the boot partition
// in case we have a separate booter partition or a bt(0,0) aliased ramdisk.
if ( !(gBIOSBootVolume->biosdev == gBootVolume->biosdev && gBIOSBootVolume->part_no == gBootVolume->part_no)
|| (gRAMDiskVolume && gRAMDiskBTAliased) ) {
|| (gRAMDiskVolume && gRAMDiskBTAliased) )
{
// Next try a specfic OS version folder ie 10.5
sprintf(dirSpecExtra, "bt(0,0)/Extra/%s/", &gMacOSVersion);
if (FileLoadDrivers(dirSpecExtra, 0) != 0) {
}
}
}
if(!gHaveKernelCache) {
if(!gHaveKernelCache)
{
// Don't load main driver (from /System/Library/Extentions) if gHaveKernelCache is set.
// since these drivers will already be in the kernel cache.
// NOTE: when gHaveKernelCache, xnu cannot (by default) load *any* extra kexts from the bootloader.
}
}
if (gMKextName[0] != '\0') {
if (gMKextName[0] != '\0')
{
verbose("LoadDrivers: Loading from [%s]\n", gMKextName);
if ( LoadDriverMKext(gMKextName) != 0 ) {
if ( LoadDriverMKext(gMKextName) != 0 )
{
error("Could not load %s\n", gMKextName);
return -1;
}
}
}
} else {
}
else
{
return 0;
}
//==========================================================================
// FileLoadMKext
static long
FileLoadMKext( const char * dirSpec, const char * extDirSpec )
static long FileLoadMKext( const char * dirSpec, const char * extDirSpec )
{
longret, flags, time, time2;
charaltDirSpec[512];
snprintf(gDriverSpec, sizeof(altDirSpec) + 18, "%sExtensions.mkext", altDirSpec);
verbose("LoadDrivers: Loading from [%s]\n", gDriverSpec);
if (LoadDriverMKext(gDriverSpec) == 0) {
if (LoadDriverMKext(gDriverSpec) == 0)
{
return 0;
}
}
//==========================================================================
// FileLoadDrivers
long
FileLoadDrivers( char * dirSpec, long plugin )
long FileLoadDrivers( char * dirSpec, long plugin )
{
long ret, length, flags, time, bundleType;
long long index;
}
// Next try the legacy path.
else if (FileLoadMKext(dirSpec, "") == 0) {
else if (FileLoadMKext(dirSpec, "") == 0)
{
return 0;
}
}
// Make sure this is a directory.
if ((flags & kFileTypeMask) != kFileTypeDirectory) {
if ((flags & kFileTypeMask) != kFileTypeDirectory)
{
continue;
}
// Make sure this is a kext.
length = strlen(name);
if (strcmp(name + length - 5, ".kext")) {
if (strcmp(name + length - 5, ".kext"))
{
continue;
}
// Determine the bundle type.
snprintf(gTempSpec, 4096, "%s/%s", dirSpec, gFileName);
ret = GetFileInfo(gTempSpec, "Contents", &flags, &time);
if (ret == 0) {
if (ret == 0)
{
bundleType = kCFBundleType2;
} else {
}
else
{
bundleType = kCFBundleType3;
}
if (!plugin) {
if (!plugin)
{
snprintf(gDriverSpec, 4096, "%s/%s/%sPlugIns", dirSpec, gFileName, (bundleType == kCFBundleType2) ? "Contents/" : "");
}
ret = LoadDriverPList(dirSpec, gFileName, bundleType);
if (result != 0) {
if (result != 0)
{
result = ret;
}
if (!plugin) {
if (!plugin)
{
FileLoadDrivers(gDriverSpec, 1);
}
}
//==========================================================================
//
long
NetLoadDrivers( char * dirSpec )
long NetLoadDrivers( char * dirSpec )
{
long tries;
// Get the name of the kernel
cnt = strlen(gBootFile);
while (cnt--) {
if ((gBootFile[cnt] == '\\') || (gBootFile[cnt] == ',')) {
if ((gBootFile[cnt] == '\\') || (gBootFile[cnt] == ','))
{
cnt++;
break;
}
tries = 3;
while (tries--)
{
if (LoadDriverMKext(gDriverSpec) == 0) {
if (LoadDriverMKext(gDriverSpec) == 0)
{
break;
}
}
if (tries == -1) {
if (tries == -1)
{
return -1;
}
//==========================================================================
// loadDriverMKext
long
LoadDriverMKext( char * fileSpec )
long LoadDriverMKext( char * fileSpec )
{
unsigned long driversAddr, driversLength;
long length;
// Load the MKext.
length = LoadThinFatFile(fileSpec, (void **)&package);
if (length < sizeof (DriversPackage)) {
if (length < sizeof (DriversPackage))
{
return -1;
}
trunk/i386/boot2/boot.c
148148
149149
150150
151
151152
153
152154
153155
154156
......
160162
161163
162164
163
165
166
167
164168
165169
166170
......
249253
250254
251255
252
256
257
253258
254259
255260
......
259264
260265
261266
262
267
268
269
263270
264271
265272
......
271278
272279
273280
274
281
282
275283
276284
277285
......
282290
283291
284292
285
286
293
294
295
296
287297
288
298
299
289300
290301
291302
......
572583
573584
574585
575
586
587
576588
577
589
590
591
578592
579593
580594
581
582
595
596
597
598
583599
584600
585601
586602
587603
588
604
605
589606
590607
591608
......
593610
594611
595612
596
613
614
597615
598616
599
617
618
619
600620
601621
602622
......
604624
605625
606626
607
627
628
608629
609630
610631
611632
612
633
634
613635
614636
615637
......
628650
629651
630652
631
653
654
632655
633656
634657
......
652675
653676
654677
655
678
679
680
656681
657682
658683
659
684
685
660686
661687
662688
663689
664
690
691
665692
666693
667694
......
673700
674701
675702
676
703
704
677705
678706
707
679708
709
680710
681711
682712
......
694724
695725
696726
697
727
728
729
698730
699731
700732
701733
702734
703
735
736
737
704738
705739
706740
707741
708742
709
743
744
710745
711746
712747
......
720755
721756
722757
723
758
759
724760
725761
726762
......
754790
755791
756792
757
793
794
795
758796
759797
760798
761799
762800
763801
764
802
803
765804
766
805
806
767807
768808
769809
770810
771
811
812
772813
773814
774815
......
800841
801842
802843
803
844
845
846
804847
805848
806849
(int *)&bootArgs->ksize );
if ( ret != 0 )
{
return ret;
}
// Reserve space for boot args
reserveKernBootStruct();
// Load boot drivers from the specifed root path.
//if (!gHaveKernelCache)
LoadDrivers("/");
{
LoadDrivers("/");
}
execute_hook("DriversLoaded", (void*)binary, NULL, NULL, NULL);
longflags, time, cachetime, kerneltime, exttime, ret=-1;
unsigned long adler32;
if((gBootMode & kBootModeSafe) != 0) {
if((gBootMode & kBootModeSafe) != 0)
{
DBG("Kernel Cache ignored.\n");
return -1;
}
{
strlcpy(kernelCacheFile, cacheFile, sizeof(kernelCacheFile));
verbose("Specified kernel cache file path = %s\n", cacheFile);
} else {
}
else
{
// Leopard prelink kernel cache file
if (TIGER || LEOPARD)
{
verbose("Reseted kernel cache file path = %s\n", kernelCacheFile);
}
// Snow Leopard prelink kernel cache file
else if ( SNOW_LEOPARD ) {
else if ( SNOW_LEOPARD )
{
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "kernelcache_%s",
(archCpuType == CPU_TYPE_I386) ? "i386" : "x86_64");
structdirstuff* cacheDir = opendir(kDefaultCachePathSnow);
/* TODO: handle error? */
if (cacheDir) {
while(readdir(cacheDir, (const char**)&name, &flags, &time) >= 0) {
if (cacheDir)
{
while(readdir(cacheDir, (const char**)&name, &flags, &time) >= 0)
{
if (((flags & kFileTypeMask) != kFileTypeDirectory) && time > prev_time
&& strstr(name, kernelCacheFile) && (name[lnam] != '.')) {
&& strstr(name, kernelCacheFile) && (name[lnam] != '.'))
{
snprintf(kernelCacheFile, sizeof(kernelCacheFile), "%s%s", kDefaultCachePathSnow, name);
prev_time = time;
}
updateVRAM();
}
if (platformCPUFeature(CPU_FEATURE_EM64T)) {
if (platformCPUFeature(CPU_FEATURE_EM64T))
{
archCpuType = CPU_TYPE_X86_64;
} else {
}
else
{
archCpuType = CPU_TYPE_I386;
}
if (getValueForKey(karch, &val, &len, &bootInfo->chameleonConfig)) {
if (strncmp(val, "i386", 4) == 0) {
if (getValueForKey(karch, &val, &len, &bootInfo->chameleonConfig))
{
if (strncmp(val, "i386", 4) == 0)
{
archCpuType = CPU_TYPE_I386;
}
}
if (getValueForKey(kKernelArchKey, &val, &len, &bootInfo->chameleonConfig)) {
if (strncmp(val, "i386", 4) == 0) {
if (strncmp(val, "i386", 4) == 0)
{
archCpuType = CPU_TYPE_I386;
}
}
// Notify modules that we are attempting to boot
execute_hook("PreBoot", NULL, NULL, NULL, NULL);
if (!getBoolForKey (kWake, &tryresume, &bootInfo->chameleonConfig)) {
if (!getBoolForKey (kWake, &tryresume, &bootInfo->chameleonConfig))
{
tryresume = true;
tryresumedefault = true;
} else {
}
else
{
tryresumedefault = false;
}
forceresume = false;
}
if (forceresume) {
if (forceresume)
{
tryresume = true;
tryresumedefault = false;
}
while (tryresume) {
while (tryresume)
{
const char *tmp;
BVRef bvr;
if (!getValueForKey(kWakeImage, &val, &len, &bootInfo->chameleonConfig))
if ((ret != 0) || ((flags & kFileTypeMask) != kFileTypeFlat))
break;
if (!forceresume && ((sleeptime+3)<bvr->modTime)) {
if (!forceresume && ((sleeptime+3)<bvr->modTime))
{
#if DEBUG
printf ("Hibernate image is too old by %d seconds. Use ForceWake=y to override\n",
bvr->modTime-sleeptime);
}
/* FIXME: check len vs sizeof(kernelCacheFile) */
strlcpy(kernelCacheFile, val, len + 1);
} else {
}
else
{
kernelCacheFile[0] = 0; // Use default kernel cache file
}
if (gOverrideKernel && kernelCacheFile[0] == 0) {
if (gOverrideKernel && kernelCacheFile[0] == 0)
{
DBG("Using a non default kernel (%s) without specifying 'Kernel Cache' path, KernelCache will not be used\n", bootInfo->bootFile);
useKernelCache = false;
break;
}
if (gMKextName[0] != 0) {
if (gMKextName[0] != 0)
{
DBG("Using a specific MKext Cache (%s), KernelCache will not be used\n",
gMKextName);
useKernelCache = false;
} while(0);
do {
if (useKernelCache) {
if (useKernelCache)
{
ret = LoadKernelCache(kernelCacheFile, &binary);
if (ret >= 0)
{
break;
}
}
bool bootFileWithDevice = false;
//printf(HEADER " (%s).\n", bootInfo->bootFile);
snprintf(bootFile, sizeof(bootFile), "/%s", bootInfo->bootFile); // append a leading /
//sleep(1);
} else {
}
else
{
//printf(HEADER " (%s).\n", bootInfo->bootFile);
snprintf(bootFile, sizeof(bootFile), kDefaultKernelPathForYos"%s", bootInfo->bootFile); // Yosemite
//sleep(1);
}
} else {
}
else
{
strlcpy(bootFile, bootInfo->bootFile, sizeof(bootFile));
}
// Try to load kernel image from alternate locations on boot helper partitions.
ret = -1;
if ((gBootVolume->flags & kBVFlagBooter) && !bootFileWithDevice) {
if ((gBootVolume->flags & kBVFlagBooter) && !bootFileWithDevice)
{
snprintf(bootFilePath, sizeof(bootFilePath), "com.apple.boot.P%s", bootFile);
ret = GetFileInfo(NULL, bootFilePath, &flags, &time);
if (ret == -1)
}
}
}
if (ret == -1) {
if (ret == -1)
{
// No alternate location found, using the original kernel image path.
strlcpy(bootFilePath, bootFile, sizeof(bootFilePath));
}
}
pause();
} else {
}
else
{
/* Won't return if successful. */
ret = ExecKernel(binary);
}
}
// chainboot
if (status == 1) {
if (status == 1)
{
// if we are already in graphics-mode,
if (getVideoMode() == GRAPHICS_MODE) {
if (getVideoMode() == GRAPHICS_MODE)
{
setVideoMode(VGA_TEXT_MODE, 0); // switch back to text mode.
}
}
if ((gBootFileType == kNetworkDeviceType) && gUnloadPXEOnExit) {
if ((gBootFileType == kNetworkDeviceType) && gUnloadPXEOnExit)
{
nbpUnloadBaseCode();
}
}
return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])
&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3])
&& (gMacOSVersion[4] == version[4]));
} else {
}
else
{
return ((gMacOSVersion[0] == version[0]) && (gMacOSVersion[1] == version[1])
&& (gMacOSVersion[2] == version[2]) && (gMacOSVersion[3] == version[3]));
}
trunk/i386/boot2/gui.c
7575
7676
7777
78
79
80
81
7882
7983
8084
......
161165
162166
163167
168
169
170
171
164172
165173
166174
......
397405
398406
399407
408
409
410
411
400412
401413
402414
......
976988
977989
978990
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
10021006
1003
1004
1005
1006
1007
1008
1009
1010
1011
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
10121036
10131037
10141038
iDeviceHFSRAID_Leo_o,
iDeviceHFSRAID_Tiger,
iDeviceHFSRAID_Tiger_o,
iDeviceHFSRECOVERY,
iDeviceHFSRECOVERY_o,
iDeviceEXT3,
iDeviceEXT3_o,
iDeviceFreeBSD, /* FreeBSD/OpenBSD detection,nawcom's code by valv, Icon credits to blackosx */
{.name = "device_hfsraid_leo_o", .image = NULL},
{.name = "device_hfsraid_tiger", .image = NULL},
{.name = "device_hfsraid_tiger_o", .image = NULL},
{.name = "device_hfsplus_recovery", .image = NULL},
{.name = "device_hfsplus_recovery_o", .image = NULL},
{.name = "device_ext3", .image = NULL},
{.name = "device_ext3_o", .image = NULL},
{.name = "device_freebsd", .image = NULL}, /* FreeBSD/OpenBSD detection,nawcom's code by valv, Icon credits to blackosx */
LOADPNG(device_hfsraid_leo_o, iDeviceHFSRAID_Leo);
LOADPNG(device_hfsraid_tiger, iDeviceHFSRAID);
LOADPNG(device_hfsraid_tiger_o, iDeviceHFSRAID_Tiger);
LOADPNG(device_hfsplus_recovery, iDeviceHFS);
LOADPNG(device_hfsplus_recovery_o, iDeviceHFSRECOVERY);
LOADPNG(device_ext3, iDeviceGeneric);
LOADPNG(device_ext3_o, iDeviceEXT3);
LOADPNG(device_freebsd, iDeviceGeneric); /* FreeBSD/OpenBSD detection,nawcom's code by valv, Icon credits to blackosx */
{
case kPartitionTypeHFS:
{
// Use HFS or HFSRAID icon depending on bvr flags. Fallbacks are handled by alt_image above.
switch (device->OSVersion[3]) {
case '9':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_mav : iDeviceHFS_mav);
break;
case '8':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_ML : iDeviceHFS_ML);
break;
case '7':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_Lion : iDeviceHFS_Lion);
break;
case '6':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_SL : iDeviceHFS_SL);
break;
case '5':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_Leo : iDeviceHFS_Leo);
break;
case '4':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_Tiger : iDeviceHFS_Tiger);
break;
case '1':
if (device->OSVersion[4] == '0') { // 10.10
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_yos : iDeviceHFS_yos);
// ErmaC : TODO test needed for recovery icon
// Use HFSRECOVERY icon.
//if (device->flags & kBVFlagBooter)
//{
//devicetype = iDeviceHFSRECOVERY;
//}
//else
//{
// Use HFS or HFSRAID icon depending on bvr flags. Fallbacks are handled by alt_image above.
switch (device->OSVersion[3]) {
case '9':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_mav : iDeviceHFS_mav);
break;
}
//if (device->OSVersion[4] == '1') { // 10.11
//devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_??? : iDeviceHFS_???);
//break;
//}
default:
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID : iDeviceHFS);
break;
}
case '8':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_ML : iDeviceHFS_ML);
break;
case '7':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_Lion : iDeviceHFS_Lion);
break;
case '6':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_SL : iDeviceHFS_SL);
break;
case '5':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_Leo : iDeviceHFS_Leo);
break;
case '4':
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_Tiger : iDeviceHFS_Tiger);
break;
case '1':
if (device->OSVersion[4] == '0') { // 10.10
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_yos : iDeviceHFS_yos);
break;
}
//if (device->OSVersion[4] == '1') { // 10.11
//devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID_??? : iDeviceHFS_???);
//break;
//}
default:
devicetype = (device->flags & kBVFlagBooter ? iDeviceHFSRAID : iDeviceHFS);
break;
}
//}
break;
trunk/i386/modules/MakeInc.dir
126126
127127
128128
129
129
130130
131131
132132
@ld -arch i386 \
-alias _$(MODULE_START) start \
-dylib -read_only_relocs suppress \
-S -x -Z -dead_strip_dylibs \
-S -Z -dead_strip_dylibs \
-no_uuid \
-current_version $(MODULE_VERSION) -compatibility_version $(MODULE_COMPAT_VERSION) \
-final_output $(MODULE_NAME) \
trunk/i386/modules/klibc/strndup.c
1010
1111
1212
13
1314
14
15
16
1517
1618
char *d = malloc(l);
if (d)
{
memcpy(d, s, l);
d[n] = '\0';
d[n] = '\0';
}
return d;
}
trunk/i386/modules/klibc/Cconfig
44
55
66
7
7
88
99
1010
config KLIBC_MODULE
tristate "klibc Module"
default n
default m
---help---
Say Y here if you want to enable the use of this module.
trunk/i386/util/bdmesg.c
2020
2121
2222
23
2324
25
2426
2527
2628
......
2830
2931
3032
33
3134
35
3236
3337
3438
......
4044
4145
4246
47
4348
49
4450
51
52
4553
4654
root = IORegistryEntryFromPath(kIOMasterPortDefault, "IOService:/");
if (root)
{
bootLog = IORegistryEntryCreateCFProperty(root, CFSTR("boot-log"), kCFAllocatorDefault, 0);
}
if (!bootLog)
{
root = IORegistryEntryFromPath(kIOMasterPortDefault, "IODeviceTree:/efi/platform");
if (root)
{
bootLog = IORegistryEntryCreateCFProperty(root, CFSTR("boot-log"), kCFAllocatorDefault, 0);
}
}
if (!bootLog)
const UInt8 *msglog = CFDataGetBytePtr((CFDataRef)bootLog);
if (msglog)
{
printf("%s\n", msglog);
}
CFRelease(bootLog);
return 0;
}
trunk/package/OptionalSettings/PowerManagement.txt
3030
3131
3232
33
34
3335
3436
Bool@EnableC2State:EnableC2State=Yes
Bool@EnableC3State:EnableC3State=Yes
Bool@EnableC4State:EnableC4State=Yes
#Bool@EnableC6State:EnableC6State=Yes
#Bool@EnableC7State:EnableC7State=Yes
Bool@GenerateCStates:GenerateCStates=Yes
Bool@GeneratePStates:GeneratePStates=Yes
trunk/package/Resources/templates/Localizable.strings
194194
195195
196196
197
198
199
197200
198201
199202
"EnableC6State_title" = "EnableC6State=Yes";
"EnableC6State_description" = "Enable specific Processor power state, C6.";
"EnableC7State_title" = "EnableC7State=Yes";
"EnableC7State_description" = "Enable specific Processor power state, C7.";
"GenerateCStates_title" = "GenerateCStates=Yes";
"GenerateCStates_description" = "Enable auto generation of processor idle sleep states (C-States).";
trunk/CHANGES
1
2
3
4
5
6
7
8
19
210
311
......
2230
2331
2432
25
33
2634
2735
2836
- bitshoveler : Remove "-x" option from "ld" command which breaks build under newer Xcode versions (/i386/modules/MakeInc.dir)
- bitshoveler : Comment out some unused functions by expanding "#if UNUSED" conditional (stringTable.c)
- bitshoveler : Comment out unused static functions, which cause build to fail in "release" mode (vbe.c)
- bitshoveler : Fix null pointer handling (nvidia.c)
- bitshoveler : Only write terminating null char if malloc succeeded (strndup.c)
- bitshoveler : Fix memory leak (bdmesg.c)
- ErmaC : (re)enable klibc module
- ErmaC : Merge Recovery Icons(png) courtesy of blackosx
- ErmaC : Merge Yosemite patch (ready from June 2014) Thanks all involved in the test and develop;
Special thanks: Alex J, viv xix, zenith432 from http://forge.voodooprojects.org/p/chameleon/issues/375/
Testing and improvements: Pike R. Alpha, ErmaC, Bungo, blackosx, Micky1979, crazybirdy, oldnapalm, janek202, MinusZwei and Andy Vandijck.
- meklort : Make compile on gcc w/ errors enabled.
- bitshoveler : Remove the '-x' option from the offending 'ld' command
- Jief : Makefile dependency missing for boot0 and boot1h
- ErmaC :Temp disable klibc module
- ErmaC : Temp disable klibc module
- meklort : Silence output.
- meklort : Add --no-print-directory.
- meklort : Replace \t with tab.

Archive Download the corresponding diff file

Revision: 2456