Chameleon

Chameleon Commit Details

Date:2013-12-27 15:31:40 (10 years 3 months ago)
Author:ErmaC
Commit:2285
Parents: 2284
Message:Updating
Changes:
M/trunk/i386/libsaio/hda.h
M/trunk/i386/libsaio/smbios.h
M/trunk/i386/libsaio/acpi_patcher.c
M/trunk/Chameleon.xcodeproj/project.pbxproj
M/trunk/i386/libsaio/smbios_getters.c
M/trunk/i386/libsaio/nvidia.c
M/trunk/i386/libsaio/hda.c
M/trunk/i386/libsaio/smbios.c
M/trunk/i386/libsaio/smbios_decode.c

File differences

trunk/Chameleon.xcodeproj/project.pbxproj
77
88
99
10
11
12
13
14
15
16
1710
18
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
19116
20117
21
22
23
24
25
26118
27119
28120
......
103195
104196
105197
106
107198
108199
109200
......
11551246
11561247
11571248
1158
1159
11601249
11611250
11621251
......
12111300
12121301
12131302
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
12881303
12891304
12901305
......
13521367
13531368
13541369
1355
1356
13571370
13581371
13591372
......
14601473
14611474
14621475
1463
14641476
14651477
14661478
......
33183330
33193331
33203332
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
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
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
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
3386
3387
3388
3389
3390
3391
3392
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
34153438
34163439
34173440
objects = {
/* Begin PBXFileReference section */
012E60F7137AC68F00E35218 /* ati_reg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ati_reg.h; sourceTree = "<group>"; };
012E60F8137AC68F00E35218 /* smbios_decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smbios_decode.c; sourceTree = "<group>"; };
012E60F9137AC68F00E35218 /* smbios_getters.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smbios_getters.c; sourceTree = "<group>"; };
012E60FA137AC68F00E35218 /* smbios_getters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smbios_getters.h; sourceTree = "<group>"; };
012E60FB137AC68F00E35218 /* smbios.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smbios.c; sourceTree = "<group>"; };
0172D0DC11FB66820030222E /* dram_controllers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dram_controllers.h; sourceTree = "<group>"; };
0172D0DD11FB66820030222E /* dram_controllers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dram_controllers.c; sourceTree = "<group>"; };
019DFBAF11FB94090013E8CC /* MEMTEST86_LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = MEMTEST86_LICENSE; sourceTree = "<group>"; };
1D2A1AF513743A2600787720 /* bootargs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bootargs.h; sourceTree = "<group>"; };
360A04661861F48F0091F464 /* acpi_patcher.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = acpi_patcher.c; sourceTree = "<group>"; };
360A04671861F48F0091F464 /* acpi_patcher.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = acpi_patcher.h; sourceTree = "<group>"; };
360A04681861F48F0091F464 /* acpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = acpi.h; sourceTree = "<group>"; };
360A04691861F48F0091F464 /* allocate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = allocate.c; sourceTree = "<group>"; };
360A046A1861F48F0091F464 /* aml_generator.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = aml_generator.c; sourceTree = "<group>"; };
360A046B1861F48F0091F464 /* aml_generator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = aml_generator.h; sourceTree = "<group>"; };
360A046C1861F48F0091F464 /* asm.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = asm.s; sourceTree = "<group>"; };
360A046D1861F48F0091F464 /* ati_reg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ati_reg.h; sourceTree = "<group>"; };
360A046E1861F48F0091F464 /* ati.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ati.c; sourceTree = "<group>"; };
360A046F1861F48F0091F464 /* ati.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ati.h; sourceTree = "<group>"; };
360A04701861F48F0091F464 /* base64-decode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "base64-decode.c"; sourceTree = "<group>"; };
360A04711861F48F0091F464 /* befs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = befs.c; sourceTree = "<group>"; };
360A04721861F48F0091F464 /* befs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = befs.h; sourceTree = "<group>"; };
360A04731861F48F0091F464 /* bios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bios.h; sourceTree = "<group>"; };
360A04741861F48F0091F464 /* bios.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = bios.s; sourceTree = "<group>"; };
360A04751861F48F0091F464 /* biosfn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = biosfn.c; sourceTree = "<group>"; };
360A04761861F48F0091F464 /* bootargs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bootargs.h; sourceTree = "<group>"; };
360A04771861F48F0091F464 /* bootstruct.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bootstruct.c; sourceTree = "<group>"; };
360A04781861F48F0091F464 /* bootstruct.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bootstruct.h; sourceTree = "<group>"; };
360A04791861F48F0091F464 /* cache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cache.c; sourceTree = "<group>"; };
360A047A1861F48F0091F464 /* Cconfig */ = {isa = PBXFileReference; lastKnownFileType = text; path = Cconfig; sourceTree = "<group>"; };
360A047B1861F48F0091F464 /* console.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = console.c; sourceTree = "<group>"; };
360A047C1861F48F0091F464 /* convert.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = convert.c; sourceTree = "<group>"; };
360A047D1861F48F0091F464 /* convert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = convert.h; sourceTree = "<group>"; };
360A047E1861F48F0091F464 /* cpu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cpu.c; sourceTree = "<group>"; };
360A047F1861F48F0091F464 /* cpu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cpu.h; sourceTree = "<group>"; };
360A04801861F48F0091F464 /* device_inject.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = device_inject.c; sourceTree = "<group>"; };
360A04811861F48F0091F464 /* device_inject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = device_inject.h; sourceTree = "<group>"; };
360A04821861F48F0091F464 /* device_tree.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = device_tree.c; sourceTree = "<group>"; };
360A04831861F48F0091F464 /* device_tree.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = device_tree.h; sourceTree = "<group>"; };
360A04841861F48F0091F464 /* disk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = disk.c; sourceTree = "<group>"; };
360A04851861F48F0091F464 /* disk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = disk.h; sourceTree = "<group>"; };
360A04861861F48F0091F464 /* dram_controllers.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dram_controllers.c; sourceTree = "<group>"; };
360A04871861F48F0091F464 /* dram_controllers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dram_controllers.h; sourceTree = "<group>"; };
360A04881861F48F0091F464 /* efi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = efi.h; sourceTree = "<group>"; };
360A04891861F48F0091F464 /* exfat.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = exfat.c; sourceTree = "<group>"; };
360A048A1861F48F0091F464 /* exfat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = exfat.h; sourceTree = "<group>"; };
360A048B1861F48F0091F464 /* ext2fs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ext2fs.c; sourceTree = "<group>"; };
360A048C1861F48F0091F464 /* ext2fs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ext2fs.h; sourceTree = "<group>"; };
360A048D1861F48F0091F464 /* fake_efi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fake_efi.c; sourceTree = "<group>"; };
360A048E1861F48F0091F464 /* fake_efi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fake_efi.h; sourceTree = "<group>"; };
360A048F1861F48F0091F464 /* fdisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fdisk.h; sourceTree = "<group>"; };
360A04901861F48F0091F464 /* freebsd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = freebsd.c; sourceTree = "<group>"; };
360A04911861F48F0091F464 /* freebsd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = freebsd.h; sourceTree = "<group>"; };
360A04921861F48F0091F464 /* gma.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gma.c; sourceTree = "<group>"; };
360A04931861F48F0091F464 /* gma.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gma.h; sourceTree = "<group>"; };
360A04941861F48F0091F464 /* hda.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hda.c; sourceTree = "<group>"; };
360A04951861F48F0091F464 /* hda.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hda.h; sourceTree = "<group>"; };
360A04961861F48F0091F464 /* hfs_CaseTables.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hfs_CaseTables.h; sourceTree = "<group>"; };
360A04971861F48F0091F464 /* hfs_compare.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hfs_compare.c; sourceTree = "<group>"; };
360A04981861F48F0091F464 /* hfs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hfs.c; sourceTree = "<group>"; };
360A04991861F48F0091F464 /* hfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hfs.h; sourceTree = "<group>"; };
360A049A1861F48F0091F464 /* hpet.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hpet.c; sourceTree = "<group>"; };
360A049B1861F48F0091F464 /* hpet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hpet.h; sourceTree = "<group>"; };
360A049C1861F48F0091F464 /* io_inline.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = io_inline.h; sourceTree = "<group>"; };
360A049D1861F48F0091F464 /* libsaio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libsaio.h; sourceTree = "<group>"; };
360A049E1861F48F0091F464 /* load.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = load.c; sourceTree = "<group>"; };
360A049F1861F48F0091F464 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
360A04A01861F48F0091F464 /* md5c.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = md5c.c; sourceTree = "<group>"; };
360A04A11861F48F0091F464 /* memvendors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = memvendors.h; sourceTree = "<group>"; };
360A04A21861F48F0091F464 /* misc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = misc.c; sourceTree = "<group>"; };
360A04A31861F48F0091F464 /* msdos_private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = msdos_private.h; sourceTree = "<group>"; };
360A04A41861F48F0091F464 /* msdos.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = msdos.c; sourceTree = "<group>"; };
360A04A51861F48F0091F464 /* msdos.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = msdos.h; sourceTree = "<group>"; };
360A04A61861F48F0091F464 /* nbp_cmd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nbp_cmd.h; sourceTree = "<group>"; };
360A04A71861F48F0091F464 /* nbp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nbp.c; sourceTree = "<group>"; };
360A04A81861F48F0091F464 /* ntfs_private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ntfs_private.h; sourceTree = "<group>"; };
360A04A91861F48F0091F464 /* ntfs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ntfs.c; sourceTree = "<group>"; };
360A04AA1861F48F0091F464 /* ntfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ntfs.h; sourceTree = "<group>"; };
360A04AB1861F48F0091F464 /* nvidia_helper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nvidia_helper.c; sourceTree = "<group>"; };
360A04AC1861F48F0091F464 /* nvidia_helper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nvidia_helper.h; sourceTree = "<group>"; };
360A04AD1861F48F0091F464 /* nvidia.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nvidia.c; sourceTree = "<group>"; };
360A04AE1861F48F0091F464 /* nvidia.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = nvidia.h; sourceTree = "<group>"; };
360A04AF1861F48F0091F464 /* openbsd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = openbsd.c; sourceTree = "<group>"; };
360A04B01861F48F0091F464 /* openbsd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = openbsd.h; sourceTree = "<group>"; };
360A04B11861F48F0091F464 /* pci_root.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pci_root.c; sourceTree = "<group>"; };
360A04B21861F48F0091F464 /* pci_root.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pci_root.h; sourceTree = "<group>"; };
360A04B31861F48F0091F464 /* pci_setup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pci_setup.c; sourceTree = "<group>"; };
360A04B41861F48F0091F464 /* pci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pci.c; sourceTree = "<group>"; };
360A04B51861F48F0091F464 /* pci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pci.h; sourceTree = "<group>"; };
360A04B61861F48F0091F464 /* platform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = platform.c; sourceTree = "<group>"; };
360A04B71861F48F0091F464 /* platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; };
360A04B81861F48F0091F464 /* saio_internal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = saio_internal.h; sourceTree = "<group>"; };
360A04B91861F48F0091F464 /* saio_types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = saio_types.h; sourceTree = "<group>"; };
360A04BA1861F48F0091F464 /* sl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sl.h; sourceTree = "<group>"; };
360A04BB1861F48F0091F464 /* smbios_decode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smbios_decode.c; sourceTree = "<group>"; };
360A04BC1861F48F0091F464 /* smbios_getters.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smbios_getters.c; sourceTree = "<group>"; };
360A04BD1861F48F0091F464 /* smbios_getters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = smbios_getters.h; sourceTree = "<group>"; };
360A04BE1861F48F0091F464 /* smbios.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smbios.c; sourceTree = "<group>"; };
360A04BF1861F48F0091F464 /* smbios.c.diff */ = {isa = PBXFileReference; lastKnownFileType = text; path = smbios.c.diff; sourceTree = "<group>"; };
360A04C01861F48F0091F464 /* smbios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = smbios.h; sourceTree = "<group>"; };
360A04C11861F48F0091F464 /* smbios.h.diff */ = {isa = PBXFileReference; lastKnownFileType = text; path = smbios.h.diff; sourceTree = "<group>"; };
360A04C21861F48F0091F464 /* spd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spd.c; sourceTree = "<group>"; };
360A04C31861F48F0091F464 /* spd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = spd.h; sourceTree = "<group>"; };
360A04C41861F48F0091F464 /* stringTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = stringTable.c; sourceTree = "<group>"; };
360A04C51861F48F0091F464 /* sys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sys.c; sourceTree = "<group>"; };
360A04C61861F48F0091F464 /* table.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = table.c; sourceTree = "<group>"; };
360A04C71861F48F0091F464 /* term.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = term.h; sourceTree = "<group>"; };
360A04C81861F48F0091F464 /* ufs_byteorder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ufs_byteorder.h; sourceTree = "<group>"; };
360A04C91861F48F0091F464 /* ufs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ufs.h; sourceTree = "<group>"; };
360A04CA1861F48F0091F464 /* usb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = usb.c; sourceTree = "<group>"; };
360A04CB1861F48F0091F464 /* vbe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = vbe.c; sourceTree = "<group>"; };
360A04CC1861F48F0091F464 /* vbe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vbe.h; sourceTree = "<group>"; };
360A04CD1861F48F0091F464 /* xml.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = xml.c; sourceTree = "<group>"; };
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>"; };
362D5486172FEA35008CEDFC /* ati.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ati.h; sourceTree = "<group>"; };
362D5487172FEA57008CEDFC /* gma.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gma.c; sourceTree = "<group>"; };
362D5488172FEA57008CEDFC /* gma.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gma.h; sourceTree = "<group>"; };
362D5489172FEA6A008CEDFC /* freebsd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = freebsd.c; sourceTree = "<group>"; };
362D548A172FEA6A008CEDFC /* freebsd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = freebsd.h; 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>"; };
36AE6E5D16D644F300D083A6 /* Cconfig */ = {isa = PBXFileReference; lastKnownFileType = text; name = Cconfig; path = FileNVRAM/Cconfig; sourceTree = "<group>"; };
36AE6E5E16D644F300D083A6 /* FileNVRAM.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = FileNVRAM.dylib; path = FileNVRAM/FileNVRAM.dylib; sourceTree = "<group>"; };
36AE6E5F16D644F300D083A6 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; name = Makefile; path = FileNVRAM/Makefile; sourceTree = "<group>"; };
65ED53931204B83200B22507 /* disk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = disk.h; sourceTree = "<group>"; };
6DBAFD1313B0D21E0047ED33 /* modules_support.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = modules_support.s; sourceTree = "<group>"; };
6DBAFD1413B0D21E0047ED33 /* modules.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = modules.c; sourceTree = "<group>"; };
6DBAFD1513B0D21E0047ED33 /* modules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modules.h; sourceTree = "<group>"; };
AB4DDA9C15CEFF2100E77157 /* ppmsetup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ppmsetup.h; sourceTree = "<group>"; };
AB4DDA9D15CEFF2100E77157 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
AB4DDA9E15CEFF2100E77157 /* Readme.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Readme.txt; sourceTree = "<group>"; };
ABE4A59C15B6EA73007812A6 /* nvidia_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nvidia_helper.h; sourceTree = "<group>"; };
ABE4A59D15B6EA73007812A6 /* nvidia_helper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nvidia_helper.c; sourceTree = "<group>"; };
B0056CE711F3868000754B65 /* boot0.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = boot0.s; sourceTree = "<group>"; };
B0056CE811F3868000754B65 /* chain0.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = chain0.s; sourceTree = "<group>"; };
B0056CE911F3868000754B65 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
B0056D2111F3868000754B65 /* string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = string.c; sourceTree = "<group>"; };
B0056D2211F3868000754B65 /* strtol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = strtol.c; sourceTree = "<group>"; };
B0056D2311F3868000754B65 /* zalloc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = zalloc.c; sourceTree = "<group>"; };
B0056D2511F3868000754B65 /* acpi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acpi.h; sourceTree = "<group>"; };
B0056D2611F3868000754B65 /* acpi_patcher.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = acpi_patcher.c; sourceTree = "<group>"; };
B0056D2711F3868000754B65 /* acpi_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = acpi_patcher.h; sourceTree = "<group>"; };
B0056D2811F3868000754B65 /* allocate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = allocate.c; sourceTree = "<group>"; };
B0056D2911F3868000754B65 /* asm.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = asm.s; sourceTree = "<group>"; };
B0056D2A11F3868000754B65 /* ati.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ati.c; sourceTree = "<group>"; };
B0056D2C11F3868000754B65 /* bios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bios.h; sourceTree = "<group>"; };
B0056D2D11F3868000754B65 /* bios.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = bios.s; sourceTree = "<group>"; };
B0056D2E11F3868000754B65 /* biosfn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = biosfn.c; sourceTree = "<group>"; };
B0056D2F11F3868000754B65 /* bootstruct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bootstruct.c; sourceTree = "<group>"; };
B0056D3011F3868000754B65 /* bootstruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bootstruct.h; sourceTree = "<group>"; };
B0056D3111F3868000754B65 /* cache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cache.c; sourceTree = "<group>"; };
B0056D3211F3868000754B65 /* console.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = console.c; sourceTree = "<group>"; };
B0056D3311F3868000754B65 /* convert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = convert.c; sourceTree = "<group>"; };
B0056D3411F3868000754B65 /* convert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = convert.h; sourceTree = "<group>"; };
B0056D3511F3868000754B65 /* cpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpu.c; sourceTree = "<group>"; };
B0056D3611F3868000754B65 /* cpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu.h; sourceTree = "<group>"; };
B0056D3711F3868000754B65 /* device_inject.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = device_inject.c; sourceTree = "<group>"; };
B0056D3811F3868000754B65 /* device_inject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = device_inject.h; sourceTree = "<group>"; };
B0056D3911F3868000754B65 /* device_tree.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = device_tree.c; sourceTree = "<group>"; };
B0056D3A11F3868000754B65 /* device_tree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = device_tree.h; sourceTree = "<group>"; };
B0056D3B11F3868000754B65 /* disk.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = disk.c; sourceTree = "<group>"; };
B0056D3C11F3868000754B65 /* efi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = efi.h; sourceTree = "<group>"; };
B0056D3D11F3868000754B65 /* ext2fs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ext2fs.c; sourceTree = "<group>"; };
B0056D3E11F3868000754B65 /* ext2fs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ext2fs.h; sourceTree = "<group>"; };
B0056D3F11F3868000754B65 /* fake_efi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fake_efi.c; sourceTree = "<group>"; };
B0056D4011F3868000754B65 /* fake_efi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fake_efi.h; sourceTree = "<group>"; };
B0056D4111F3868000754B65 /* fdisk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = fdisk.h; sourceTree = "<group>"; };
B0056D4211F3868000754B65 /* hfs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hfs.c; sourceTree = "<group>"; };
B0056D4311F3868000754B65 /* hfs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hfs.h; sourceTree = "<group>"; };
B0056D4411F3868000754B65 /* hfs_CaseTables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hfs_CaseTables.h; sourceTree = "<group>"; };
B0056D4511F3868000754B65 /* hfs_compare.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hfs_compare.c; sourceTree = "<group>"; };
B0056D4611F3868000754B65 /* hpet.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = hpet.c; sourceTree = "<group>"; };
B0056D4711F3868000754B65 /* hpet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hpet.h; sourceTree = "<group>"; };
B0056D4811F3868000754B65 /* io_inline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = io_inline.h; sourceTree = "<group>"; };
B0056D4911F3868000754B65 /* libsaio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libsaio.h; sourceTree = "<group>"; };
B0056D4A11F3868000754B65 /* load.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = load.c; sourceTree = "<group>"; };
B0056D4B11F3868000754B65 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
B0056D4C11F3868000754B65 /* md5c.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = md5c.c; sourceTree = "<group>"; };
B0056D4F11F3868000754B65 /* memvendors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memvendors.h; sourceTree = "<group>"; };
B0056D5011F3868000754B65 /* misc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = misc.c; sourceTree = "<group>"; };
B0056D5111F3868000754B65 /* msdos.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = msdos.c; sourceTree = "<group>"; };
B0056D5211F3868000754B65 /* msdos.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msdos.h; sourceTree = "<group>"; };
B0056D5311F3868000754B65 /* msdos_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = msdos_private.h; sourceTree = "<group>"; };
B0056D5411F3868000754B65 /* nbp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nbp.c; sourceTree = "<group>"; };
B0056D5511F3868000754B65 /* nbp_cmd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nbp_cmd.h; sourceTree = "<group>"; };
B0056D5611F3868000754B65 /* ntfs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ntfs.c; sourceTree = "<group>"; };
B0056D5711F3868000754B65 /* ntfs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ntfs.h; sourceTree = "<group>"; };
B0056D5811F3868000754B65 /* ntfs_private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ntfs_private.h; sourceTree = "<group>"; };
B0056D5911F3868000754B65 /* nvidia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = nvidia.c; sourceTree = "<group>"; };
B0056D5A11F3868000754B65 /* nvidia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nvidia.h; sourceTree = "<group>"; };
B0056D5B11F3868000754B65 /* pci.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci.c; sourceTree = "<group>"; };
B0056D5C11F3868000754B65 /* pci.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pci.h; sourceTree = "<group>"; };
B0056D5D11F3868000754B65 /* pci_root.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_root.c; sourceTree = "<group>"; };
B0056D5E11F3868000754B65 /* pci_root.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pci_root.h; sourceTree = "<group>"; };
B0056D5F11F3868000754B65 /* pci_setup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pci_setup.c; sourceTree = "<group>"; };
B0056D6011F3868000754B65 /* platform.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = platform.c; sourceTree = "<group>"; };
B0056D6111F3868000754B65 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; };
B0056D6211F3868000754B65 /* saio_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = saio_internal.h; sourceTree = "<group>"; };
B0056D6311F3868000754B65 /* saio_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = saio_types.h; sourceTree = "<group>"; };
B0056D6411F3868000754B65 /* sl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sl.h; sourceTree = "<group>"; };
B0056D6511F3868000754B65 /* SMBIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMBIOS.h; sourceTree = "<group>"; };
B0056D6811F3868000754B65 /* spd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = spd.c; sourceTree = "<group>"; };
B0056D6911F3868000754B65 /* spd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spd.h; sourceTree = "<group>"; };
B0056D6A11F3868000754B65 /* stringTable.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stringTable.c; sourceTree = "<group>"; };
B0056D6B11F3868000754B65 /* sys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sys.c; sourceTree = "<group>"; };
B0056D6C11F3868000754B65 /* table.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = table.c; sourceTree = "<group>"; };
B0056D6E11F3868000754B65 /* ufs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ufs.h; sourceTree = "<group>"; };
B0056D7011F3868000754B65 /* ufs_byteorder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ufs_byteorder.h; sourceTree = "<group>"; };
B0056D7111F3868000754B65 /* usb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = usb.c; sourceTree = "<group>"; };
B0056D7211F3868000754B65 /* vbe.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vbe.c; sourceTree = "<group>"; };
B0056D7311F3868000754B65 /* vbe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vbe.h; sourceTree = "<group>"; };
B0056D7411F3868000754B65 /* xml.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xml.c; sourceTree = "<group>"; };
B0056D7511F3868000754B65 /* xml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xml.h; sourceTree = "<group>"; };
B0056D7611F3868000754B65 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
B0056D7A11F3868000754B65 /* machOconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = machOconv.c; sourceTree = "<group>"; };
B0056D7B11F3868000754B65 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
B0056E1811F3868000754B65 /* screen_format.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = screen_format.png; sourceTree = "<group>"; };
B0056E1911F3868000754B65 /* xnulogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = xnulogo.png; sourceTree = "<group>"; };
B0056E1A11F3868000754B65 /* Users_Guide0.5.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = Users_Guide0.5.pdf; sourceTree = "<group>"; };
B00F494911F6089500B1D7C5 /* aml_generator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aml_generator.h; sourceTree = "<group>"; };
B00F494A11F6089500B1D7C5 /* aml_generator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = aml_generator.c; sourceTree = "<group>"; };
B0146EFF11FDEF550010765C /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = "<group>"; };
B0146F0011FDEFB90010765C /* GPL_V2_LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = GPL_V2_LICENSE; sourceTree = "<group>"; };
B4118C63153EFEC200C8D926 /* clean_po_headers.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = clean_po_headers.sh; sourceTree = "<group>"; };
B4189A2014BFBF1C00ED5B0B /* zconf.hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zconf.hash.c; path = config/zconf.hash.c; sourceTree = "<group>"; };
B4189A2114BFBF1C00ED5B0B /* zconf.tab.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = zconf.tab.c; path = config/zconf.tab.c; sourceTree = "<group>"; };
B4189A2214BFBF5600ED5B0B /* Cconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cconfig; sourceTree = "<group>"; };
B4189A2314BFBF7200ED5B0B /* Cconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cconfig; sourceTree = "<group>"; };
B4189A2414BFBFD100ED5B0B /* Cconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cconfig; sourceTree = "<group>"; };
B4AABE5914C3B8B90055ECD1 /* postinstall */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = postinstall; sourceTree = "<group>"; };
B4AABE5B14C3B8C70055ECD1 /* postinstall */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = postinstall; sourceTree = "<group>"; };
B0056D2411F3868000754B65 /* libsaio */ = {
isa = PBXGroup;
children = (
B0056D2511F3868000754B65 /* acpi.h */,
B0056D2611F3868000754B65 /* acpi_patcher.c */,
B0056D2711F3868000754B65 /* acpi_patcher.h */,
B0056D2811F3868000754B65 /* allocate.c */,
B00F494A11F6089500B1D7C5 /* aml_generator.c */,
B00F494911F6089500B1D7C5 /* aml_generator.h */,
B0056D2911F3868000754B65 /* asm.s */,
012E60F7137AC68F00E35218 /* ati_reg.h */,
B0056D2A11F3868000754B65 /* ati.c */,
362D5486172FEA35008CEDFC /* ati.h */,
B0056D2C11F3868000754B65 /* bios.h */,
B0056D2D11F3868000754B65 /* bios.s */,
B0056D2E11F3868000754B65 /* biosfn.c */,
1D2A1AF513743A2600787720 /* bootargs.h */,
B0056D2F11F3868000754B65 /* bootstruct.c */,
B0056D3011F3868000754B65 /* bootstruct.h */,
B0056D3111F3868000754B65 /* cache.c */,
B4189A2314BFBF7200ED5B0B /* Cconfig */,
B0056D3211F3868000754B65 /* console.c */,
B0056D3311F3868000754B65 /* convert.c */,
B0056D3411F3868000754B65 /* convert.h */,
B0056D3511F3868000754B65 /* cpu.c */,
B0056D3611F3868000754B65 /* cpu.h */,
B0056D3711F3868000754B65 /* device_inject.c */,
B0056D3811F3868000754B65 /* device_inject.h */,
B0056D3911F3868000754B65 /* device_tree.c */,
B0056D3A11F3868000754B65 /* device_tree.h */,
B0056D3B11F3868000754B65 /* disk.c */,
65ED53931204B83200B22507 /* disk.h */,
0172D0DC11FB66820030222E /* dram_controllers.h */,
0172D0DD11FB66820030222E /* dram_controllers.c */,
B0056D3C11F3868000754B65 /* efi.h */,
B0056D3D11F3868000754B65 /* ext2fs.c */,
B0056D3E11F3868000754B65 /* ext2fs.h */,
B0056D3F11F3868000754B65 /* fake_efi.c */,
B0056D4011F3868000754B65 /* fake_efi.h */,
B0056D4111F3868000754B65 /* fdisk.h */,
362D5489172FEA6A008CEDFC /* freebsd.c */,
362D548A172FEA6A008CEDFC /* freebsd.h */,
362D5487172FEA57008CEDFC /* gma.c */,
362D5488172FEA57008CEDFC /* gma.h */,
B0056D4411F3868000754B65 /* hfs_CaseTables.h */,
B0056D4511F3868000754B65 /* hfs_compare.c */,
B0056D4211F3868000754B65 /* hfs.c */,
B0056D4311F3868000754B65 /* hfs.h */,
B0056D4611F3868000754B65 /* hpet.c */,
B0056D4711F3868000754B65 /* hpet.h */,
B0056D4811F3868000754B65 /* io_inline.h */,
B0056D4911F3868000754B65 /* libsaio.h */,
B0056D4A11F3868000754B65 /* load.c */,
B0056D4B11F3868000754B65 /* Makefile */,
B0056D4C11F3868000754B65 /* md5c.c */,
B0056D4F11F3868000754B65 /* memvendors.h */,
B0056D5011F3868000754B65 /* misc.c */,
B0056D5111F3868000754B65 /* msdos.c */,
B0056D5211F3868000754B65 /* msdos.h */,
B0056D5311F3868000754B65 /* msdos_private.h */,
B0056D5411F3868000754B65 /* nbp.c */,
B0056D5511F3868000754B65 /* nbp_cmd.h */,
B0056D5611F3868000754B65 /* ntfs.c */,
B0056D5711F3868000754B65 /* ntfs.h */,
B0056D5811F3868000754B65 /* ntfs_private.h */,
B0056D5911F3868000754B65 /* nvidia.c */,
B0056D5A11F3868000754B65 /* nvidia.h */,
ABE4A59C15B6EA73007812A6 /* nvidia_helper.h */,
ABE4A59D15B6EA73007812A6 /* nvidia_helper.c */,
B0056D5B11F3868000754B65 /* pci.c */,
B0056D5C11F3868000754B65 /* pci.h */,
B0056D5D11F3868000754B65 /* pci_root.c */,
B0056D5E11F3868000754B65 /* pci_root.h */,
B0056D5F11F3868000754B65 /* pci_setup.c */,
B0056D6011F3868000754B65 /* platform.c */,
B0056D6111F3868000754B65 /* platform.h */,
B0056D6211F3868000754B65 /* saio_internal.h */,
B0056D6311F3868000754B65 /* saio_types.h */,
B0056D6411F3868000754B65 /* sl.h */,
B0056D6511F3868000754B65 /* SMBIOS.h */,
012E60F8137AC68F00E35218 /* smbios_decode.c */,
012E60F9137AC68F00E35218 /* smbios_getters.c */,
012E60FA137AC68F00E35218 /* smbios_getters.h */,
012E60FB137AC68F00E35218 /* smbios.c */,
B0056D6811F3868000754B65 /* spd.c */,
B0056D6911F3868000754B65 /* spd.h */,
B0056D6A11F3868000754B65 /* stringTable.c */,
B0056D6B11F3868000754B65 /* sys.c */,
B0056D6C11F3868000754B65 /* table.c */,
B0056D6E11F3868000754B65 /* ufs.h */,
B0056D7011F3868000754B65 /* ufs_byteorder.h */,
B0056D7111F3868000754B65 /* usb.c */,
B0056D7211F3868000754B65 /* vbe.c */,
B0056D7311F3868000754B65 /* vbe.h */,
B0056D7411F3868000754B65 /* xml.c */,
B0056D7511F3868000754B65 /* xml.h */,
1D2A1AF513743A2600787720 /* bootargs.h */,
360A04661861F48F0091F464 /* acpi_patcher.c */,
360A04671861F48F0091F464 /* acpi_patcher.h */,
360A04681861F48F0091F464 /* acpi.h */,
360A04691861F48F0091F464 /* allocate.c */,
360A046A1861F48F0091F464 /* aml_generator.c */,
360A046B1861F48F0091F464 /* aml_generator.h */,
360A046C1861F48F0091F464 /* asm.s */,
360A046D1861F48F0091F464 /* ati_reg.h */,
360A046E1861F48F0091F464 /* ati.c */,
360A046F1861F48F0091F464 /* ati.h */,
360A04701861F48F0091F464 /* base64-decode.c */,
360A04711861F48F0091F464 /* befs.c */,
360A04721861F48F0091F464 /* befs.h */,
360A04731861F48F0091F464 /* bios.h */,
360A04741861F48F0091F464 /* bios.s */,
360A04751861F48F0091F464 /* biosfn.c */,
360A04761861F48F0091F464 /* bootargs.h */,
360A04771861F48F0091F464 /* bootstruct.c */,
360A04781861F48F0091F464 /* bootstruct.h */,
360A04791861F48F0091F464 /* cache.c */,
360A047A1861F48F0091F464 /* Cconfig */,
360A047B1861F48F0091F464 /* console.c */,
360A047C1861F48F0091F464 /* convert.c */,
360A047D1861F48F0091F464 /* convert.h */,
360A047E1861F48F0091F464 /* cpu.c */,
360A047F1861F48F0091F464 /* cpu.h */,
360A04801861F48F0091F464 /* device_inject.c */,
360A04811861F48F0091F464 /* device_inject.h */,
360A04821861F48F0091F464 /* device_tree.c */,
360A04831861F48F0091F464 /* device_tree.h */,
360A04841861F48F0091F464 /* disk.c */,
360A04851861F48F0091F464 /* disk.h */,
360A04861861F48F0091F464 /* dram_controllers.c */,
360A04871861F48F0091F464 /* dram_controllers.h */,
360A04881861F48F0091F464 /* efi.h */,
360A04891861F48F0091F464 /* exfat.c */,
360A048A1861F48F0091F464 /* exfat.h */,
360A048B1861F48F0091F464 /* ext2fs.c */,
360A048C1861F48F0091F464 /* ext2fs.h */,
360A048D1861F48F0091F464 /* fake_efi.c */,
360A048E1861F48F0091F464 /* fake_efi.h */,
360A048F1861F48F0091F464 /* fdisk.h */,
360A04901861F48F0091F464 /* freebsd.c */,
360A04911861F48F0091F464 /* freebsd.h */,
360A04921861F48F0091F464 /* gma.c */,
360A04931861F48F0091F464 /* gma.h */,
360A04941861F48F0091F464 /* hda.c */,
360A04951861F48F0091F464 /* hda.h */,
360A04961861F48F0091F464 /* hfs_CaseTables.h */,
360A04971861F48F0091F464 /* hfs_compare.c */,
360A04981861F48F0091F464 /* hfs.c */,
360A04991861F48F0091F464 /* hfs.h */,
360A049A1861F48F0091F464 /* hpet.c */,
360A049B1861F48F0091F464 /* hpet.h */,
360A049C1861F48F0091F464 /* io_inline.h */,
360A049D1861F48F0091F464 /* libsaio.h */,
360A049E1861F48F0091F464 /* load.c */,
360A049F1861F48F0091F464 /* Makefile */,
360A04A01861F48F0091F464 /* md5c.c */,
360A04A11861F48F0091F464 /* memvendors.h */,
360A04A21861F48F0091F464 /* misc.c */,
360A04A31861F48F0091F464 /* msdos_private.h */,
360A04A41861F48F0091F464 /* msdos.c */,
360A04A51861F48F0091F464 /* msdos.h */,
360A04A61861F48F0091F464 /* nbp_cmd.h */,
360A04A71861F48F0091F464 /* nbp.c */,
360A04A81861F48F0091F464 /* ntfs_private.h */,
360A04A91861F48F0091F464 /* ntfs.c */,
360A04AA1861F48F0091F464 /* ntfs.h */,
360A04AB1861F48F0091F464 /* nvidia_helper.c */,
360A04AC1861F48F0091F464 /* nvidia_helper.h */,
360A04AD1861F48F0091F464 /* nvidia.c */,
360A04AE1861F48F0091F464 /* nvidia.h */,
360A04AF1861F48F0091F464 /* openbsd.c */,
360A04B01861F48F0091F464 /* openbsd.h */,
360A04B11861F48F0091F464 /* pci_root.c */,
360A04B21861F48F0091F464 /* pci_root.h */,
360A04B31861F48F0091F464 /* pci_setup.c */,
360A04B41861F48F0091F464 /* pci.c */,
360A04B51861F48F0091F464 /* pci.h */,
360A04B61861F48F0091F464 /* platform.c */,
360A04B71861F48F0091F464 /* platform.h */,
360A04B81861F48F0091F464 /* saio_internal.h */,
360A04B91861F48F0091F464 /* saio_types.h */,
360A04BA1861F48F0091F464 /* sl.h */,
360A04BB1861F48F0091F464 /* smbios_decode.c */,
360A04BC1861F48F0091F464 /* smbios_getters.c */,
360A04BD1861F48F0091F464 /* smbios_getters.h */,
360A04BE1861F48F0091F464 /* smbios.c */,
360A04BF1861F48F0091F464 /* smbios.c.diff */,
360A04C01861F48F0091F464 /* smbios.h */,
360A04C11861F48F0091F464 /* smbios.h.diff */,
360A04C21861F48F0091F464 /* spd.c */,
360A04C31861F48F0091F464 /* spd.h */,
360A04C41861F48F0091F464 /* stringTable.c */,
360A04C51861F48F0091F464 /* sys.c */,
360A04C61861F48F0091F464 /* table.c */,
360A04C71861F48F0091F464 /* term.h */,
360A04C81861F48F0091F464 /* ufs_byteorder.h */,
360A04C91861F48F0091F464 /* ufs.h */,
360A04CA1861F48F0091F464 /* usb.c */,
360A04CB1861F48F0091F464 /* vbe.c */,
360A04CC1861F48F0091F464 /* vbe.h */,
360A04CD1861F48F0091F464 /* xml.c */,
360A04CE1861F48F0091F464 /* xml.h */,
);
path = libsaio;
sourceTree = "<group>";
trunk/i386/libsaio/acpi_patcher.c
110110
111111
112112
113
114
115
116
117
118
113119
114120
115121
122
123
116124
117125
118126
119127
120128
121129
122
130
123131
124132
125133
{
sprintf(dirSpec, "bt(0,0)/Extra/%s", filename);
fd = open(dirSpec, 0);
if (fd < 0)
{
// NOT FOUND:
verbose("ACPI Table not found: %s\n", filename);
*dirSpec = '\0';
}
}
}
// Bungo
/*** Moved above
if (fd < 0)
{
// NOT FOUND:
verbose("ACPI Table not found: %s\n", filename);
*dirSpec = '\0';
}
***/
if (outDirspec) *outDirspec = dirSpec;
return fd;
}
trunk/i386/libsaio/hda.c
236236
237237
238238
239
239240
240241
241242
......
617618
618619
619620
620
621
621622
622623
623624
624625
625
626
626627
627628
628629
{ HDA_CODEC_ALC892, 0, "Realtek ALC892" },
{ HDA_CODEC_ALC898, 0, "Realtek ALC898" },
{ HDA_CODEC_ALC899, 0, "Realtek ALC899" },
{ HDA_CODEC_ALC900, 0, "Realtek ALC1150" },
{ HDA_CODEC_AD1882, 0, "Analog Devices AD1882" },
{ HDA_CODEC_AD1882A, 0, "Analog Devices AD1882A" },
{ HDA_CODEC_AD1883, 0, "Analog Devices AD1883" },
case HDA_NVIDIA_GK104:
case HDA_NVIDIA_GF110:
case HDA_NVIDIA_GF119:
case HDA_NVIDIA_GT116:
case HDA_NVIDIA_GT116:
case HDA_NVIDIA_GT104:
case HDA_NVIDIA_GT108:
case HDA_NVIDIA_GT106:
case HDA_NVIDIA_GT100:
case HDA_NVIDIA_0BE4:
case HDA_NVIDIA_0BE4:
case HDA_NVIDIA_0BE3:
case HDA_NVIDIA_0BE2:
trunk/i386/libsaio/hda.h
405405
406406
407407
408
408409
409410
410411
#define HDA_CODEC_ALC892 HDA_CODEC_CONSTRUCT(REALTEK, 0x0892)
#define HDA_CODEC_ALC898 HDA_CODEC_CONSTRUCT(REALTEK, 0x0898)
#define HDA_CODEC_ALC899 HDA_CODEC_CONSTRUCT(REALTEK, 0x0899)
#define HDA_CODEC_ALC900 HDA_CODEC_CONSTRUCT(REALTEK, 0x0900)
#define HDA_CODEC_ALCXXXX HDA_CODEC_CONSTRUCT(REALTEK, 0xffff)
/* Motorola */
trunk/i386/libsaio/nvidia.c
11921192
11931193
11941194
1195
1195
11961196
11971197
11981198
......
20542054
20552055
20562056
2057
2057
20582058
20592059
20602060
{ 0x10DE1249,"GeForce GTS 450" },
{ 0x10DE124B,"GeForce GT 640" },
{ 0x10DE124D,"GeForce GT 555M" },
// { 0x10DE1250,"GF116-INT" },
{ 0x10DE1250,"GF116-INT" },
{ 0x10DE1251,"GeForce GTX 560M" },
// 1260 - 126F
// 1270 - 127F
{
version_start += 8;
}
strncpy(version_str, (const char*)rom+version_start, i-version_start);
break;
}
trunk/i386/libsaio/smbios.c
209209
210210
211211
212
212
213213
214214
215215
......
222222
223223
224224
225
226
227
228
229
225230
226231
227232
......
293298
294299
295300
296
301
297302
298303
299
300
301
302
303
304
305
306
307
308
304
309305
306
307
308
309
310
311
312
313
314
315
310316
311317
312318
313319
314
315
320
321
316322
317
318
323
324
319325
320
321
326
327
322328
323
324
329
330
325331
326
327
332
333
328334
335
329336
330337
331338
......
438445
439446
440447
448
449
450
451
441452
442453
443454
char *productName;
char *version;
char *serialNumber;
char *skuNumber;
char *skuNumber;// ErmaC
char *family;
} defaultSystemInfo_t;
{
char *manufacturer;
char *product;
char *productName;// ErmaC
char *serialNumber;// ErmaC
char *assetTagNumber;// ErmaC
char *locationInChassis;// ErmaC
char *boardType;// ErmaC
} defaultBaseBoard_t;
defaultBaseBoard_t defaultBaseBoard;
// Bungo
{kSMBTypeBaseBoard,kSMBString,getFieldOffset(SMBBaseBoard, version),
kSMBBaseBoardVersionKey, NULL, NULL}, // SMboardproductname - MacPro3,1
kSMBBaseBoardVersionKey, NULL, &defaultBaseBoard.productName}, // SMboardproductname - MacPro3,1
{kSMBTypeBaseBoard,kSMBString,getFieldOffset(SMBBaseBoard, serialNumber),
kSMBBaseBoardSerialNumberKey, NULL, NULL}, // SMboardserial - C02140302D5DMT31M
{kSMBTypeBaseBoard,kSMBString,getFieldOffset(SMBBaseBoard, assetTagNumber), kSMBBaseBoardAssetTagNumberKey,
NULL, NULL},
{kSMBTypeBaseBoard,kSMBString,getFieldOffset(SMBBaseBoard, locationInChassis), kSMBBaseBoardLocationInChassisKey,
NULL, NULL},
{kSMBTypeBaseBoard,kSMBByte,getFieldOffset(SMBBaseBoard, boardType), kSMBBaseBoardTypeKey,
NULL, NULL},
kSMBBaseBoardSerialNumberKey, NULL, &defaultBaseBoard.serialNumber }, // SMboardserial - C02140302D5DMT31M
{kSMBTypeBaseBoard,kSMBString,getFieldOffset(SMBBaseBoard, assetTagNumber),
kSMBBaseBoardAssetTagNumberKey, NULL, &defaultBaseBoard.assetTagNumber }, // SMboardassetag - Base Board Asset Tag#
{kSMBTypeBaseBoard,kSMBString,getFieldOffset(SMBBaseBoard, locationInChassis),
kSMBBaseBoardLocationInChassisKey, NULL, &defaultBaseBoard.locationInChassis }, // SMboardlocation - Part Component
{kSMBTypeBaseBoard,kSMBByte,getFieldOffset(SMBBaseBoard, boardType),
kSMBBaseBoardTypeKey,NULL, &defaultBaseBoard.boardType }, // SMboardtype - 10 (Motherboard) all model, 11 (Processor+Memory Module) MacPro
//
// Bungo
/* =======================
System Enclosure (Type 3)
========================= */
{kSMBTypeSystemEnclosure,kSMBString,getFieldOffset(SMBSystemEnclosure, manufacturer),kSMBSystemEnclosureManufacturerKey,
NULL,&defaultBaseBoard.manufacturer},
{kSMBTypeSystemEnclosure,kSMBString,getFieldOffset(SMBSystemEnclosure, manufacturer),
kSMBSystemEnclosureManufacturerKey, NULL,&defaultBaseBoard.manufacturer }, // SMchassismanufacturer - Apple Inc.
{kSMBTypeSystemEnclosure,kSMBByte,getFieldOffset(SMBSystemEnclosure, type),kSMBSystemEnclosureTypeKey,
NULL, NULL},
{kSMBTypeSystemEnclosure, kSMBByte,getFieldOffset(SMBSystemEnclosure, type),
kSMBSystemEnclosureTypeKey, NULL, &defaultBaseBoard.boardType}, // SMchassistype - 7
{kSMBTypeSystemEnclosure,kSMBString,getFieldOffset(SMBSystemEnclosure, version), kSMBSystemEnclosureVersionKey,
NULL,&defaultBaseBoard.product },
{kSMBTypeSystemEnclosure, kSMBString, getFieldOffset(SMBSystemEnclosure, version),
kSMBSystemEnclosureVersionKey, NULL, &defaultBaseBoard.product }, // SMchassisversion - Mac-F42C88C8
{kSMBTypeSystemEnclosure,kSMBString,getFieldOffset(SMBSystemEnclosure, serialNumber),kSMBSystemEnclosureSerialNumberKey,
NULL, NULL},
{kSMBTypeSystemEnclosure, kSMBString, getFieldOffset(SMBSystemEnclosure, serialNumber),
kSMBSystemEnclosureSerialNumberKey, NULL, &defaultSystemInfo.serialNumber }, // SMchassisserial
{kSMBTypeSystemEnclosure,kSMBString,getFieldOffset(SMBSystemEnclosure, assetTagNumber), kSMBSystemEnclosureAssetTagNumberKey,
NULL, NULL},
{kSMBTypeSystemEnclosure, kSMBString, getFieldOffset(SMBSystemEnclosure, assetTagNumber),
kSMBSystemEnclosureAssetTagNumberKey, NULL, &defaultBaseBoard.assetTagNumber }, // SMchassisassettag - Pro Enclosure
/* ============================
Processor Information (Type 4)
============================== */
defaultBaseBoard.manufacturer = kDefaultVendorManufacturer;
defaultBaseBoard.product = kDefaultBoardProduct;
defaultBaseBoard.boardType = kDefaultBoardType;// ErmaC
defaultBaseBoard.serialNumber = KDefaultBoardSerialNumber;// ErmaC
defaultBaseBoard.assetTagNumber = KDefaultBoardAssetTagNumber;// ErmaC
defaultBaseBoard.locationInChassis = kDefaultLocatioInChassis;// ErmaC
if (platformCPUFeature(CPU_FEATURE_MOBILE))
{
trunk/i386/libsaio/smbios_decode.c
1818
1919
2020
21
2221
2322
2423
......
5150
5251
5352
53
5454
5555
56
57
56
5857
5958
6059
61
60
6261
6362
6463
65
66
67
68
64
65
66
67
68
69
70
71
72
73
74
75
76
6977
7078
7179
7280
73
81
7482
7583
7684
77
78
79
80
81
85
86
87
88
89
8290
8391
8492
8593
86
87
88
89
90
91
92
94
95
96
97
98
99
93100
94101
95102
96
97
103
104
98105
99106
100107
101108
102
109
103110
104111
105112
106
107
108
109
110
111
112
113
113
114
115
116
117
118
119
120
121
122
123
124
114125
115126
116127
117128
118
129
119130
120131
121132
122
123
124
125
126
127
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
128149
129150
130151
131152
132
153
133154
134155
135156
136
137
138
139
140
141
142
143
144
145
157
158
159
160
161
162
163
164
165
166
167
146168
147169
148170
149
150
151
171
172
173
174
152175
153176
154177
155178
156
179
157180
181
182
183
184
185
186
187
188
189
158190
159191
160
161
162
163
192
193
194
195
164196
165197
166198
167
168
169
170
171
172
199
200
201
202
203
204
173205
174206
175207
......
209241
210242
211243
212
244
213245
214246
215247
216
248
217249
218250
219251
220
252
221253
222254
223255
224
256
225257
226258
227259
228
260
229261
230262
231263
232
264
233265
234266
235267
236268
237
238
269
270
239271
240272
241
273
242274
243275
244276
245
277
246278
247279
248280
249
281
250282
251283
252284
#define DBG(x...)msglog(x)
#endif
static SMBWord minorVersion;
extern char *getSMBStringForField(SMBStructHeader *structHeader, uint8_t field);
"RAM",/* 16h unused */
"RAM",/* 17h unused */
"DDR3",/* 18h DDR3, chosen in [5776134] */
"FBD2"/* 19h FBD2 */
};
static const int
kSMBMemoryDeviceTypeCount = sizeof(SMBMemoryDeviceTypes) /
static const int kSMBMemoryDeviceTypeCount = sizeof(SMBMemoryDeviceTypes) /
sizeof(SMBMemoryDeviceTypes[0]);
//-------------------------------------------------------------------------------------------------------------------------
// BIOSInformation
// BIOS Information (Type 0)
//-------------------------------------------------------------------------------------------------------------------------
void decodeBIOSInformation(SMBBIOSInformation *structHeader)
{
DBG("BIOSInformation:\n");
DBG("\tvendor: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->vendor));
DBG("\tversion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\treleaseDate: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->releaseDate));
DBG("BIOS Information:\n");
DBG("\tVendor: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->vendor));
DBG("\tVersion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
// Address Segment
DBG("\tRelease Date: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->releaseDate));
// ROM Size
//DBG("\tSupported BIOS functions: (0x%llX) %s\n", structHeader->characteristics, SMBBIOSInfoChar0[structHeader->characteristics]);
// Major Release
// Minor Release
// Firmware Major Release
// Firmware Minor Release
//SMBByte characteristicsExt1;
//SMBByte characteristicsExt2;
DBG("\n");
}
//-------------------------------------------------------------------------------------------------------------------------
// SystemInformation
// System Information (Type 1)
//-------------------------------------------------------------------------------------------------------------------------
void decodeSystemInformation(SMBSystemInformation *structHeader)
{
DBG("SystemInformation:\n");
DBG("\tmanufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tproductName: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->productName));
DBG("\tversion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\tserialNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("System Information:\n");
DBG("\tManufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tProduct Name: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->productName));
DBG("\tVersion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\tSerial Number: ** PRIVATE **\n"); //%s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
if (minorVersion < 1 || structHeader->header.length < 25)
return;
uint8_t *uuid = structHeader->uuid;
DBG("\tuuid: %02X%02X%02X%02X-%02X%02X-%02X%02X-%02x%02X-%02X%02X%02X%02X%02X%02X\n",
uuid[0], uuid[1], uuid[2], uuid[3],
uuid[4], uuid[5],
uuid[6], uuid[7],
uuid[8], uuid[9],
uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]);
DBG("\twakeupReason: 0x%x\n", structHeader->wakeupReason);
if (uuid) {
DBG("\tuuid: %02X%02X%02X%02X-%02X%02X-%02X%02X-%02x%02X-%02X%02X%02X%02X%02X%02X\n",
uuid[0], uuid[1], uuid[2], uuid[3], uuid[4], uuid[5], uuid[6], uuid[7],
uuid[8], uuid[9], uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]);
}
DBG("\tWake-up Type: 0x%x\n", structHeader->wakeupReason);
if (minorVersion < 4 || structHeader->header.length < 27)
return;
DBG("\tskuNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->skuNumber));
DBG("\tfamily: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->family));
DBG("\tSKU Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->skuNumber)); // System SKU#
DBG("\tFamily: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->family));
DBG("\n");
}
//-------------------------------------------------------------------------------------------------------------------------
// BaseBoard
// Base Board (or Module) Information (Type 2)
//-------------------------------------------------------------------------------------------------------------------------
void decodeBaseBoard(SMBBaseBoard *structHeader)
{
DBG("BaseBoard:\n");
DBG("\tmanufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tproduct: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->product));
DBG("\tversion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\tserialNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tassetTagNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTagNumber));
DBG("\tlocationInChassis: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->locationInChassis));
DBG("\tboardType: 0x%X\n", structHeader->boardType);
DBG("Base Board Information:\n");
DBG("\tManufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tProduct Name: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->product));
DBG("\tVersion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\tSerial Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tAsset Tag: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTagNumber));
// Feature Flags (BYTE)
DBG("\tLocation In Chassis: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->locationInChassis)); // Part Component
// Chassis Handle (WORD)
DBG("\tType: 0x%X\n", structHeader->boardType);
// Number of Contained Object Handles (n) (BYTE)
// Contained Object Handles n(WORDs)
DBG("\n");
}
//-------------------------------------------------------------------------------------------------------------------------
// SystemEnclosure
// System Enclosure or Chassis (Type 3)
//-------------------------------------------------------------------------------------------------------------------------
void decodeSystemEnclosure(SMBSystemEnclosure *structHeader)
{
DBG("SystemEnclosure:\n");
DBG("\tmanufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\ttype: %d\n", structHeader->type);
DBG("\tversion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\tserialNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tassetTagNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTagNumber));
DBG("Chassis Information:\n");
DBG("\tManufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tType: %d\n", structHeader->type);
DBG("\tVersion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version));
DBG("\tSerial Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tAsset Tag Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTagNumber));
// Boot-up State:
// Power Supply State
// Thermal State
// Security Status:
// OEM Information:
// Height;
// Cords;
// ElementsCount;
// ElementLen;
// Elements[1]; // open array of ElementsCount*ElementLen BYTEs
DBG("\n");
}
//-------------------------------------------------------------------------------------------------------------------------
// ProcessorInformation
// Processor Information (Type 4)
//-------------------------------------------------------------------------------------------------------------------------
void decodeProcessorInformation(SMBProcessorInformation *structHeader)
{
DBG("ProcessorInformation:\n");
DBG("\tsocketDesignation: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->socketDesignation));
DBG("\tprocessorType: %d\n", structHeader->processorType);
DBG("\tprocessorFamily: 0x%X\n", structHeader->processorFamily);
DBG("\tmanufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tprocessorID: 0x%llX\n", structHeader->processorID);
DBG("\tprocessorVersion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->processorVersion));
DBG("\texternalClock: %dMHz\n", structHeader->externalClock);
DBG("\tmaximumClock: %dMHz\n", structHeader->maximumClock);
DBG("\tcurrentClock: %dMHz\n", structHeader->currentClock);
DBG("Processor Information:\n");
DBG("\tSocket Designation: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->socketDesignation));
DBG("\tType: %d\n", structHeader->processorType);
DBG("\tFamily: 0x%X\n", structHeader->processorFamily);
DBG("\tManufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tID: 0x%llX\n", structHeader->processorID);
DBG("\tProcessor Version: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->processorVersion));
//DBG("\tVoltage: 0.%xV\n", structHeader->voltage);
DBG("\tExternal Clock: %dMHz\n", structHeader->externalClock);
DBG("\tMaximum Clock: %dMHz\n", structHeader->maximumClock);
DBG("\tCurrent Clock: %dMHz\n", structHeader->currentClock);
if (minorVersion < 3 || structHeader->header.length < 35)
return;
DBG("\tserialNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tassetTag: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTag));
DBG("\tpartNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->partNumber));
DBG("\tSerial Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tAsset Tag: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTag));
DBG("\tPart Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->partNumber));
//DBG("\tProcessor Family 2: %d\n", structHeader->processorFamily2);
DBG("\n");
}
//-------------------------------------------------------------------------------------------------------------------------
// MemoryDevice
// Memory Module Information (Type 6)
//-------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------
// OEM Strings (Type 11)
//-------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------
// MemoryDevice (Type 17)
//-------------------------------------------------------------------------------------------------------------------------
void decodeMemoryDevice(SMBMemoryDevice *structHeader)
{
DBG("MemoryDevice:\n");
DBG("\tdeviceLocator: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->deviceLocator));
DBG("\tbankLocator: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->bankLocator));
DBG("\tmemoryType: %s\n", SMBMemoryDeviceTypes[structHeader->memoryType]);
DBG("Memory Device:\n");
DBG("\tDevice Locator: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->deviceLocator));
DBG("\tBank Locator: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->bankLocator));
DBG("\tMemory Type: %s\n", SMBMemoryDeviceTypes[structHeader->memoryType]);
if (minorVersion < 3 || structHeader->header.length < 27)
return;
DBG("\tmemorySpeed: %dMHz\n", structHeader->memorySpeed);
DBG("\terrorHandle: %x\n", structHeader->errorHandle);
DBG("\tmanufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tserialNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tassetTag: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTag));
DBG("\tpartNumber: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->partNumber));
DBG("\tSpeed: %d MHz\n", structHeader->memorySpeed);
DBG("\tError Handle: %x\n", structHeader->errorHandle);
DBG("\tManufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer));
DBG("\tSerial Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber));
DBG("\tAsset Tag: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTag));
DBG("\tPart Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->partNumber));
DBG("\n");
}
switch (structHeader->type)
{
case kSMBTypeBIOSInformation:
case kSMBTypeBIOSInformation: // Type 0
decodeBIOSInformation((SMBBIOSInformation *)structHeader);
break;
case kSMBTypeSystemInformation:
case kSMBTypeSystemInformation: // Type 1
decodeSystemInformation((SMBSystemInformation *)structHeader);
break;
case kSMBTypeBaseBoard:
case kSMBTypeBaseBoard: // Type 2
decodeBaseBoard((SMBBaseBoard *)structHeader);
break;
case kSMBTypeSystemEnclosure:
case kSMBTypeSystemEnclosure: // Type 3
decodeSystemEnclosure((SMBSystemEnclosure *)structHeader);
break;
case kSMBTypeProcessorInformation:
case kSMBTypeProcessorInformation: // Type 4
decodeProcessorInformation((SMBProcessorInformation *)structHeader);
break;
case kSMBTypeMemoryDevice:
case kSMBTypeMemoryDevice: // Type 17
decodeMemoryDevice((SMBMemoryDevice *)structHeader);
break;
/* Skip all Apple Specific Structures */
case kSMBTypeFirmwareVolume:
case kSMBTypeMemorySPD:
case kSMBTypeFirmwareVolume: // Type
case kSMBTypeMemorySPD: // Type
break;
case kSMBTypeOemProcessorType:
case kSMBTypeOemProcessorType: // Type
decodeOemProcessorType((SMBOemProcessorType *)structHeader);
break;
case kSMBTypeOemProcessorBusSpeed:
case kSMBTypeOemProcessorBusSpeed: // Type
decodeOemProcessorBusSpeed((SMBOemProcessorBusSpeed *)structHeader);
break;
case kSMBTypeEndOfTable:
case kSMBTypeEndOfTable: // Type
/* Skip, to be added at the end */
break;
trunk/i386/libsaio/smbios.h
3434
3535
3636
37
37
38
3839
3940
4041
......
4344
4445
4546
46
47
48
4749
4850
4951
......
5557
5658
5759
58
59
60
61
62
63
64
65
60
61
62
63
64
65
66
6667
6768
6869
......
8081
8182
8283
83
84
85
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
86133
87
88
89
90
91
92
93
94
95
96
97
98
99
134
135
100136
101
102
103
104
105
106
107
137
138
139
140
141
108142
109143
110
111
112
113
114
144
145
146
147
148
149
115150
116151
117152
118153
119
154
120155
121156
122157
......
127162
128163
129164
130
131
132
133
134
165
166
167
168
169
135170
136
171
137172
138173
139174
......
146181
147182
148183
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
165201
166202
167203
168204
169205
170206
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
186225
187226
227
228
229
188230
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
205250
206251
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
234286
235287
236288
237289
238
239
240
241
290
291
292
242293
243
294
295
296
297
298
244299
245300
246301
......
255310
256311
257312
258
259
260
261
262
313
314
315
316
317
263318
264319
265320
......
273328
274329
275330
276
331
332
333
334
335
277336
278
279
280
281
282
283
284
285
286
287
337
338
339
340
341
342
343
344
345
346
347
348
349
350
288351
289352
290
291
292
353
354
355
356
357
358
359
360
293361
294
295
296
297
298
299
300
301
302
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
303377
304378
305
306
379
380
381
382
383
307384
308385
309386
......
313390
314391
315392
316
317
393
394
395
396
397
318398
319399
320400
......
324404
325405
326406
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
351440
352441
353
354
355
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
356457
357
358
359
360
361
362
363
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
364475
365
476
477
478
479
480
481
482
483
484
485
486
487
488
366489
367490
368491
369492
370
371
493
494
372495
373496
374
375
376
377
378
379
380
381
497
498
499
500
501
502
503
504
505
506
507
508
382509
383510
384
385
386
387
388
389
511
512
513
514
515
516
390517
391518
392519
393520
394521
395522
396
397
398
399
400
401
523
524
525
526
527
528
402529
403530
404531
405
406
407
408
409
532
533
534
535
536
537
410538
411539
412540
typedef uint64_t SMBQWord;
typedef struct DMIEntryPoint {
typedef struct DMIEntryPoint
{
SMBByte anchor[5];
SMBByte checksum;
SMBWord tableLength;
SMBByte bcdRevision;
} __attribute__((packed)) DMIEntryPoint;
typedef struct SMBEntryPoint {
typedef struct SMBEntryPoint
{
SMBByte anchor[4];
SMBByte checksum;
SMBByte entryPointLength;
DMIEntryPoint dmi;
} __attribute__((packed)) SMBEntryPoint;
//
// Header common to all SMBIOS structures
//
typedef struct SMBStructHeader {
SMBByte type;
SMBByte length;
SMBWord handle;
/* Header common to all SMBIOS structures */
typedef struct SMBStructHeader
{
SMBBytetype;
SMBBytelength;
SMBWordhandle;
//SMBByte*data;
} __attribute__((packed)) SMBStructHeader;
#define SMB_STRUCT_HEADER SMBStructHeader header;
#define SMB_ANCHOR_RESET(x)\
bzero(x, sizeof(typedef struct SMBAnchor));
//
// SMBIOS structure types.
//
/*
=======================
SMBIOS structure types.
=======================*/
enum
{
kSMBTypeBIOSInformation= 0, // BIOS information (Type 0)
kSMBTypeSystemInformation= 1, // System Information (Type 1)
kSMBTypeBaseBoard= 2, // BaseBoard Information (Type 2)
kSMBTypeSystemEnclosure= 3, // System Chassis Information (Type 3)
kSMBTypeProcessorInformation= 4, // Processor Information (Type 4)
// Memory Controller Information (Type 5) Obsolete
kSMBTypeMemoryModule= 6, // Memory Module Information (Type 6) Obsolete
kSMBTypeCacheInformation= 7, // Cache Information (Type 7)
// Port Connector Information (Type 8)
kSMBTypeSystemSlot= 9, // System Slots (Type 9)
// On Board Devices Information (Type 10) Obsolete
// kSMBOEMStrings= 11 ,// OEM Strings (Type 11)
// System Configuration Options (Type 12)
// BIOS Language Information (Type 13)
// Group Associations (Type 14)
// System Event Log (Type 15)
kSMBTypePhysicalMemoryArray= 16, // Physical Memory Array (Type 16)
kSMBTypeMemoryDevice= 17, // Memory Device (Type 17)
kSMBType32BitMemoryErrorInfo= 18, // 32-Bit Memory Error Information (Type 18)
// Memory Array Mapped Address (Type 19)
// Memory Device Mapped Address (Type 20)
// Built-in Pointing Device (Type 21)
// Portable Battery (Type 22)
// System Reset (Type 23)
// Hardware Security (Type 24)
// System Power Controls (Type 25)
// Voltage Probe (Type 26)
// Cooling Device (Type 27)
// Temperature Probe (Type 28)
// Electrical Current Probe (Type 29)
// Out-of-Band Remote Access (Type 30)
// Boot Integrity Service (BIS) Entry Point (Type 31)
// System Boot Information (Type 32)
kSMBType64BitMemoryErrorInfo= 33, // 64-Bit Memory Error Information (Type 33)
// Managment Device (Type 34)
// Managment Device Component (Type 35)
// Management Device Threshold Data (Type 36)
// Memory Channel (Type 37)
// IPMI Device Information (Type 38)
// System Power Supply (Type 39)
// Additional Information (Type 40)
// Onboard Devices Extended Information (Type 41)
// Management Controlle Host Interface (Type 42)
enum {
kSMBTypeBIOSInformation = 0,
kSMBTypeSystemInformation = 1,
kSMBTypeBaseBoard= 2,
kSMBTypeSystemEnclosure = 3,
kSMBTypeProcessorInformation = 4,
kSMBTypeMemoryModule = 6,
kSMBTypeCacheInformation = 7,
kSMBTypeSystemSlot = 9,
kSMBTypePhysicalMemoryArray = 16,
kSMBTypeMemoryDevice = 17,
kSMBType32BitMemoryErrorInfo = 18,
kSMBType64BitMemoryErrorInfo = 33,
// Inactive (Type 126)
kSMBTypeEndOfTable= 127, // End-of-Table (Type 127)
kSMBTypeEndOfTable = 127,
/* Apple Specific Structures */
kSMBTypeFirmwareVolume = 128,
kSMBTypeMemorySPD = 130,
kSMBTypeOemProcessorType = 131,
kSMBTypeOemProcessorBusSpeed = 132
/* Apple Specific Structures */
kSMBTypeFirmwareVolume= 128, // FirmwareVolume (TYPE 128)
kSMBTypeMemorySPD= 130, // MemorySPD (TYPE 130)
kSMBTypeOemProcessorType= 131, // Processor Type (Type 131)
kSMBTypeOemProcessorBusSpeed= 132 //Processor Bus Speed (Type 132)
};
//
// BIOS Information (Type 0)
//
typedef struct SMBBIOSInformation {
SMB_STRUCT_HEADER // Type 0
/* =======================
BIOS Information (Type 0)
========================= */
typedef struct SMBBIOSInformation
{
SMB_STRUCT_HEADER
SMBString vendor; // BIOS vendor name
SMBString version; // BIOS version
SMBWord startSegment; // BIOS segment start
SMBString releaseDate; // BIOS release date
SMBByte romSize; // (n); 64K * (n+1) bytes
SMBByte romSize; // BIOS ROM Size (n); 64K * (n+1) bytes
SMBQWord characteristics; // supported BIOS functions
// Bungo
SMBByte characteristicsExt1; // BIOS characteristics extension byte 1
SMBByte ECreleaseMinor; // Embedded Controller firmware release (minor)
} __attribute__((packed)) SMBBIOSInformation;
//
// System Information (Type 1)
//
typedef struct SMBSystemInformation {
/* =========================
System Information (Type 1)
=========================== */
typedef struct SMBSystemInformation
{
// 2.0+ spec (8 bytes)
SMB_STRUCT_HEADER // Type 1
SMB_STRUCT_HEADER
SMBString manufacturer;
SMBString productName;
SMBString version;
SMBString family;
} __attribute__((packed)) SMBSystemInformation;
//
// Base Board (Type 2)
//
typedef struct SMBBaseBoard {
SMB_STRUCT_HEADER // Type 2
SMBStringmanufacturer;
SMBStringproduct;
SMBStringversion;
SMBStringserialNumber;
SMBStringassetTagNumber;
SMBBytefeatureFlags;
SMBStringlocationInChassis;
SMBWordchassisHandle;
SMBByteboardType;
SMBBytenumberOfContainedHandles;
/* =========================================
Base Board (or Module) Information (Type 2)
=========================================== */
typedef struct SMBBaseBoard
{
SMB_STRUCT_HEADER // Type 2
SMBStringmanufacturer;
SMBStringproduct;
SMBStringversion;
SMBStringserialNumber;
SMBStringassetTagNumber;
SMBByte featureFlags;// Collection of flag that identify features of this baseboard
SMBStringlocationInChassis;
SMBWord chassisHandle;
SMBByte boardType;// Type of board
SMBByte numberOfContainedHandles;
//SMBWord containedObjectHandles[1];
// 0 - 255 contained handles go here but we do not include
// them in our structure. Be careful to use numberOfContainedHandles
// times sizeof(SMBWord) when computing the actual record size,
// if you need it.
} __attribute__((packed)) SMBBaseBoard;
// Values for boardType in Type 2 records
enum {
kSMBBaseBoardUnknown= 0x01,
kSMBBaseBoardOther= 0x02,
kSMBBaseBoardServerBlade= 0x03,
kSMBBaseBoardConnectivitySwitch= 0x04,
kSMBBaseBoardSystemMgmtModule= 0x05,
kSMBBaseBoardProcessorModule= 0x06,
kSMBBaseBoardIOModule= 0x07,
kSMBBaseBoardMemoryModule= 0x08,
kSMBBaseBoardDaughter= 0x09,
kSMBBaseBoardMotherboard= 0x0A,
kSMBBaseBoardProcessorMemoryModule= 0x0B,
kSMBBaseBoardProcessorIOModule= 0x0C,
kSMBBaseBoardInterconnect= 0x0D,
/* ====================================
Values for boardType in Type 2 records
====================================== */
enum
{
kSMBBaseBoardUnknown = 0x01,// Unknow
kSMBBaseBoardOther = 0x02,// Other
kSMBBaseBoardServerBlade = 0x03,// Server Blade
kSMBBaseBoardConnectivitySwitch = 0x04,// Connectivity Switch
kSMBBaseBoardSystemMgmtModule = 0x05,// System Management Module
kSMBBaseBoardProcessorModule = 0x06,// Processor Module
kSMBBaseBoardIOModule = 0x07,// I/O Module
kSMBBaseBoardMemoryModule = 0x08,// Memory Module
kSMBBaseBoardDaughter = 0x09,// Daughter Board
kSMBBaseBoardMotherboard = 0x0A,// Motherboard (includes processor, memory, and I/O)
kSMBBaseBoardProcessorMemoryModule = 0x0B,// Processor/Memory Module
kSMBBaseBoardProcessorIOModule = 0x0C,// Processor/IO Module
kSMBBaseBoardInterconnect = 0x0D// Interconnect board
};
/* =======================
System Enclosure (Type 3)
========================= */
//
// System Enclosure (Type 3)
//
typedef struct SMBSystemEnclosure {
SMB_STRUCT_HEADER // Type 3
SMBString manufacturer;
SMBByte type;
SMBString version;
SMBString serialNumber;
SMBString assetTagNumber;
SMBByte bootupState;
SMBByte powerSupplyState;
SMBByte thermalState;
SMBByte securityStatus;
SMBDWord oemDefined;
typedef struct SMBSystemEnclosure
{
SMB_STRUCT_HEADER // Type 3
SMBString manufacturer;
SMBByte type;// System Enclosure Indicator
SMBString version;// Board Number?
SMBString serialNumber;
SMBString assetTagNumber;
SMBByte bootupState;// State of enclosure when when it was last booted
SMBByte powerSupplyState;// State of enclosure's power supply when last booted
SMBByte thermalState;// Thermal state of the enclosure when last booted
SMBByte securityStatus;// Physical security status of the enclosure when last booted
SMBDWord oemDefined;// OEM- or BIOS vendor-specific information
//SMBByte height;// Height of the enclosure, in 'U's
//SMBByte numberOfPowerCords;// Number of power cords associated with the enclosure or chassis
//SMBByte containedElementCount;// Number of Contained Element record that follow, in the range 0 to 255
//SMBByte containedElementRecord;// Byte leght of each Contained Element record that follow, in the range 0 to 255
//SMBBytecontainedElements;// Elements, possibly defined by other SMBIOS structures present in chassis
//SMBString skuNumber;// Number of null-terminated string describing the chassis or enclosure SKU number (2.7+)
} __attribute__((packed)) SMBSystemEnclosure;
//
// Processor Information (Type 4)
//
typedef struct SMBProcessorInformation {
// 2.0+ spec (26 bytes)
SMB_STRUCT_HEADER // Type 4
SMBString socketDesignation;
SMBByte processorType; // CPU = 3
SMBByte processorFamily; // processor family enum
SMBString manufacturer;
SMBQWord processorID; // based on CPUID
SMBString processorVersion;
SMBByte voltage; // bit7 cleared indicate legacy mode
SMBWord externalClock; // external clock in MHz
SMBWord maximumClock; // max internal clock in MHz
SMBWord currentClock; // current internal clock in MHz
SMBByte status;
SMBByte processorUpgrade; // processor upgrade enum
// 2.1+ spec (32 bytes)
SMBWord L1CacheHandle;
SMBWord L2CacheHandle;
SMBWord L3CacheHandle;
// 2.3+ spec (35 bytes)
SMBString serialNumber;
SMBString assetTag;
SMBString partNumber;
/* ============================
Processor Information (Type 4)
============================== */
typedef struct SMBProcessorInformation
{
// 2.0+ spec (26 bytes)
SMB_STRUCT_HEADER // Type 4
SMBString socketDesignation;
SMBByte processorType; // CPU = 3
SMBByte processorFamily; // processor family enum
SMBString manufacturer;
SMBQWord processorID; // based on CPUID
SMBString processorVersion;
SMBByte voltage; // bit7 cleared indicate legacy mode
SMBWord externalClock; // external clock in MHz
SMBWord maximumClock; // max internal clock in MHz
SMBWord currentClock; // current internal clock in MHz
SMBByte status;
SMBByte processorUpgrade; // processor upgrade enum
// 2.1+ spec (32 bytes)
SMBWord L1CacheHandle;
SMBWord L2CacheHandle;
SMBWord L3CacheHandle;
// 2.3+ spec (35 bytes)
SMBString serialNumber;
SMBString assetTag;
SMBString partNumber;
// 2.5+ spec
//SMBByte coreCount;
//SMBByte coreEnabled;
//SMBByte threadCount;
//SMBWord processorCharacteristics;
// 2.6+ spec
//SMBWord processorFamily2;
} __attribute__((packed)) SMBProcessorInformation;
#define kSMBProcessorInformationMinSize 26
//
// Memory Module Information (Type 6)
// Obsoleted since SMBIOS version 2.1
//
/* =======================================================================
Memory Controller Information (Type 5) Obsoleted since SMBIOS version 2.1
========================================================================= */
typedef struct SMBMemoryModule {
/* ===================================================================
Memory Module Information (Type 6) Obsoleted since SMBIOS version 2.1
===================================================================== */
typedef struct SMBMemoryModule
{
SMB_STRUCT_HEADER // Type 6
SMBString socketDesignation;
SMBByte bankConnections;
#define kSMBMemoryModuleSizeNotEnabled 0x7E
#define kSMBMemoryModuleSizeNotInstalled 0x7F
//
// Cache Information (Type 7)
//
typedef struct SMBCacheInformation {
/* ========================
Cache Information (Type 7)
========================== */
typedef struct SMBCacheInformation
{
SMB_STRUCT_HEADER // Type 7
SMBString socketDesignation;
SMBWord cacheConfiguration;
SMBByte associativity;
} __attribute__((packed)) SMBCacheInformation;
typedef struct SMBSystemSlot {
/* ===================
System Slots (Type 9)
===================== */
typedef struct SMBSystemSlot
{
// 2.0+ spec (12 bytes)
SMB_STRUCT_HEADER // Type 9
SMBString slotDesignation;
SMBByte slotType;
SMBByte slotDataBusWidth;
SMBByte currentUsage;
SMBByte slotLength;
SMBWord slotID;
SMBByte slotCharacteristics1;
// 2.1+ spec (13 bytes)
SMBByte slotCharacteristics2;
SMB_STRUCT_HEADER
SMBString slotDesignation;
SMBByte slotType;
SMBByte slotDataBusWidth;
SMBByte currentUsage;
SMBByte slotLength;
SMBWord slotID;
SMBByte slotCharacteristics1;
// 2.1+ spec (13 bytes)
SMBByte slotCharacteristics2;
// 2.6+ spec
//SMBWordsegmentGroupNumber;
//SMBBytebusNumber;
//SMBBytedevFuncNumber;
} __attribute__((packed)) SMBSystemSlot;
//
// Physical Memory Array (Type 16)
//
/* ===================
OEM Strings (Type 11)
===================== */
//typedef struct SMBOEMStrings
//{
//SMB_STRUCT_HEADER // Type 11
//SMBBytecount;// number of strings
//} __attribute__((packed)) SMBOEMStrings;
typedef struct SMBPhysicalMemoryArray {
// 2.1+ spec (15 bytes)
SMB_STRUCT_HEADER // Type 16
SMBByte physicalLocation; // physical location
SMBByte arrayUse; // the use for the memory array
SMBByte errorCorrection; // error correction/detection method
SMBDWord maximumCapacity; // maximum memory capacity in kilobytes
SMBWord errorHandle; // handle of a previously detected error
SMBWord numMemoryDevices; // number of memory slots or sockets
/* =============================
Physical Memory Array (Type 16)
=============================== */
typedef struct SMBPhysicalMemoryArray
{
// 2.1+ spec (15 bytes)
SMB_STRUCT_HEADER // Type 16
SMBByte physicalLocation; // physical location
SMBByte arrayUse; // the use for the memory array
SMBByte errorCorrection; // error correction/detection method
SMBDWord maximumCapacity; // maximum memory capacity in kilobytes
SMBWord errorHandle; // handle of a previously detected error
SMBWord numMemoryDevices; // number of memory slots or sockets
// 2.7+ spec
//SMBQWord extMaximumCapacity;// maximum memory capacity in bytes
} __attribute__((packed)) SMBPhysicalMemoryArray;
// Memory Array - Use
enum {
/* ================
Memory Array - Use
================== */
enum
{
kSMBMemoryArrayUseOther = 0x01,
kSMBMemoryArrayUseUnknown = 0x02,
kSMBMemoryArrayUseSystemMemory = 0x03,
kSMBMemoryArrayUseCacheMemory = 0x07
};
// Memory Array - Error Correction Types
enum {
/* ===================================
Memory Array - Error Correction Types
===================================== */
enum
{
kSMBMemoryArrayErrorCorrectionTypeOther = 0x01,
kSMBMemoryArrayErrorCorrectionTypeUnknown = 0x02,
kSMBMemoryArrayErrorCorrectionTypeNone = 0x03,
kSMBMemoryArrayErrorCorrectionTypeCRC = 0x07
};
//
// Memory Device (Type 17)
//
typedef struct SMBMemoryDevice {
// 2.1+ spec (21 bytes)
SMB_STRUCT_HEADER // Type 17
SMBWord arrayHandle; // handle of the parent memory array
SMBWord errorHandle; // handle of a previously detected error
SMBWord totalWidth; // total width in bits; including ECC bits
SMBWord dataWidth; // data width in bits
SMBWord memorySize; // bit15 is scale, 0 = MB, 1 = KB
SMBByte formFactor; // memory device form factor
SMBByte deviceSet; // parent set of identical memory devices
SMBString deviceLocator; // labeled socket; e.g. "SIMM 3"
SMBString bankLocator; // labeled bank; e.g. "Bank 0" or "A"
SMBByte memoryType; // type of memory
SMBWord memoryTypeDetail; // additional detail on memory type
// 2.3+ spec (27 bytes)
SMBWord memorySpeed; // speed of device in MHz (0 for unknown)
SMBString manufacturer;
SMBString serialNumber;
SMBString assetTag;
SMBString partNumber;
/* =====================
Memory Device (Type 17)
======================= */
typedef struct SMBMemoryDevice
{
// 2.1+ spec (21 bytes)
SMB_STRUCT_HEADER // Type 17
SMBWord arrayHandle; // handle of the parent memory array
SMBWord errorHandle; // handle of a previously detected error
SMBWord totalWidth; // total width in bits; including ECC bits
SMBWord dataWidth; // data width in bits
SMBWord memorySize; // bit15 is scale, 0 = MB, 1 = KB
SMBByte formFactor; // memory device form factor
SMBByte deviceSet; // parent set of identical memory devices
SMBString deviceLocator; // labeled socket; e.g. "SIMM 3"
SMBString bankLocator; // labeled bank; e.g. "Bank 0" or "A"
SMBByte memoryType; // type of memory
SMBWord memoryTypeDetail; // additional detail on memory type
// 2.3+ spec (27 bytes)
SMBWord memorySpeed; // speed of device in MHz (0 for unknown)
SMBString manufacturer;
SMBString serialNumber;
SMBString assetTag;
SMBString partNumber;
// 2.6+ spec
//SMBByte memoryAtributes;
// 2.7+ spec
//SMBDWord memoryExtSize;
//SMBWord confMemClkSpeed;
// 2.8+ spec
//SMBWord minimumVolt;
//SMBWord maximumVolt;
//SMBWord configuredVolt;
} __attribute__((packed)) SMBMemoryDevice;
//
// Firmware Volume Description (Apple Specific - Type 128)
//
/* ===================================
Memory Array Mapped Address (Type 19)
===================================== */
//typedef struct SMBMemoryArrayMappedAddress
//{
// 2.1+ spec
//SMB_STRUCT_HEADER // Type 19
//SMBDWord startingAddress;
//SMBDWord endingAddress;
//SMBWord arrayHandle;
//SMBByte partitionWidth;
// 2.7+ spec
//SMBQWord extStartAddress;
//SMBQWord extEndAddress;
//} __attribute__((packed)) SMBMemoryArrayMappedAddress;
enum {
FW_REGION_RESERVED = 0,
FW_REGION_RECOVERY = 1,
FW_REGION_MAIN = 2,
FW_REGION_NVRAM = 3,
FW_REGION_CONFIG = 4,
FW_REGION_DIAGVAULT = 5,
/* ====================================
Memory Device Mapped Address (Type 20)
====================================== */
//typedef struct SMBMemoryDeviceMappedAddress
//{
// 2.1+ spec
//SMB_STRUCT_HEADER // Type 20
//SMBDWord startingAddress;
//SMBDWord endingAddress;
//SMBWord arrayHandle;
//SMBByte partitionRowPosition;
//SMBByte interleavePosition;
//SMBByte interleaveDataDepth;
// 2.7+ spec
//SMBQWord extStartAddress;
//SMBQWord extEndAddress;
//} __attribute__((packed)) SMBMemoryDeviceMappedAddress;
NUM_FLASHMAP_ENTRIES = 8
/* =====================================================
Firmware Volume Description (Apple Specific - Type 128)
======================================================= */
enum
{
FW_REGION_RESERVED = 0,
FW_REGION_RECOVERY = 1,
FW_REGION_MAIN = 2,
FW_REGION_NVRAM = 3,
FW_REGION_CONFIG = 4,
FW_REGION_DIAGVAULT = 5,
NUM_FLASHMAP_ENTRIES = 8
};
typedef struct FW_REGION_INFO
{
SMBDWord StartAddress;
SMBDWord EndAddress;
SMBDWord StartAddress;
SMBDWord EndAddress;
} __attribute__((packed)) FW_REGION_INFO;
typedef struct SMBFirmwareVolume {
SMB_STRUCT_HEADER // Type 128
SMBByte RegionCount;
SMBByte Reserved[3];
SMBDWord FirmwareFeatures;
SMBDWord FirmwareFeaturesMask;
SMBByte RegionType[ NUM_FLASHMAP_ENTRIES ];
FW_REGION_INFO FlashMap[ NUM_FLASHMAP_ENTRIES ];
/* ========
(Type 128)
========== */
typedef struct SMBFirmwareVolume
{
SMB_STRUCT_HEADER// Type 128
SMBByte RegionCount;
SMBByte Reserved[3];
SMBDWord FirmwareFeatures;
SMBDWord FirmwareFeaturesMask;
SMBByte RegionType[ NUM_FLASHMAP_ENTRIES ];
FW_REGION_INFO FlashMap[ NUM_FLASHMAP_ENTRIES ];
} __attribute__((packed)) SMBFirmwareVolume;
//
// Memory SPD Data (Apple Specific - Type 130)
//
typedef struct SMBMemorySPD {
SMB_STRUCT_HEADER // Type 130
/* ===========================================
Memory SPD Data (Apple Specific - Type 130)
============================================= */
typedef struct SMBMemorySPD
{
SMB_STRUCT_HEADER// Type 130
SMBWord Type17Handle;
SMBWord Offset;
SMBWord Size;
SMBWord Data[];
} __attribute__((packed)) SMBMemorySPD;
//
// OEM Processor Type (Apple Specific - Type 131)
//
typedef struct SMBOemProcessorType {
SMB_STRUCT_HEADER
/* ============================================
OEM Processor Type (Apple Specific - Type 131)
============================================== */
typedef struct SMBOemProcessorType
{
SMB_STRUCT_HEADER// Type131
SMBWord ProcessorType;
} __attribute__((packed)) SMBOemProcessorType;
//
// OEM Processor Bus Speed (Apple Specific - Type 132)
//
typedef struct SMBOemProcessorBusSpeed {
SMB_STRUCT_HEADER
/* =================================================
OEM Processor Bus Speed (Apple Specific - Type 132)
=================================================== */
typedef struct SMBOemProcessorBusSpeed
{
SMB_STRUCT_HEADER// Type 132
SMBWord ProcessorBusSpeed; // MT/s unit
} __attribute__((packed)) SMBOemProcessorBusSpeed;
trunk/i386/libsaio/smbios_getters.c
4242
4343
4444
45
45
4646
4747
4848
4949
5050
51
51
5252
5353
5454
5555
56
56
5757
5858
5959
......
6161
6262
6363
64
64
6565
6666
6767
......
9191
9292
9393
94
95
94
95
96
97
98
9699
97100
98101
......
127130
128131
129132
133
134
130135
131136
137
138
132139
133140
134141
......
158165
159166
160167
161
168
162169
163170
164171
......
177184
178185
179186
187
188
189
180190
181191
182192
......
240250
241251
242252
243
244
245
246
247
248253
249254
250255
value->word = 0;
break;
default:
value->word = Platform.CPU.FSBFrequency/1000000;
value->word = (uint16_t)(Platform.CPU.FSBFrequency/1000000);
}
}
break;
default:
value->word = Platform.CPU.FSBFrequency/1000000;
value->word = (uint16_t)(Platform.CPU.FSBFrequency/1000000);
}
}
else
{
value->word = Platform.CPU.FSBFrequency/1000000;
value->word = (uint16_t)(Platform.CPU.FSBFrequency/1000000);
}
return true;
bool getProcessorInformationMaximumClock(returnType *value)
{
value->word = Platform.CPU.CPUFrequency/1000000;
value->word = (uint16_t)(Platform.CPU.CPUFrequency/1000000);
return true;
}
case CPU_MODEL_WESTMERE:// Intel Core i7, Xeon X56xx, Xeon E56xx, Xeon W36xx LGA1366 (32nm) 6 Core
case CPU_MODEL_NEHALEM_EX:// Intel Xeon X75xx, Xeon X65xx, Xeon E75xx, Xeon E65x
case CPU_MODEL_WESTMERE_EX:// Intel Xeon E7
case CPU_MODEL_SANDYBRIDGE:
case CPU_MODEL_JAKETOWN:
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:
case CPU_MODEL_HASWELL:
case CPU_MODEL_JAKETOWN:// Intel Core i7, Xeon E5 LGA2011 (32nm)
{
// thanks to dgobe for i3/i5/i7 bus speed detection
int nhm_bus = 0x3F;
value->word = qpibusspeed;
return true;
}
default:
break; //Unsupported CPU type
}
}
default:
break;
}
}
return false;
{
if (!done)
{
verbose("CPU is %s, family 0x%x, model 0x%x\n", Platform.CPU.BrandString, Platform.CPU.Family, Platform.CPU.Model);
verbose("CPU is %s, family 0x%x, model 0x%x\n", Platform.CPU.BrandString, (uint32_t)Platform.CPU.Family, (uint32_t)Platform.CPU.Model);
done = true;
}
return true;
case CPU_MODEL_NEHALEM:// Intel Core i7, Xeon W35xx, Xeon X55xx, Xeon E55xx LGA1366 (45nm)
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-xxxx LGA2011 (32nm)
if (strstr(Platform.CPU.BrandString, "Xeon(R)"))
{
value->word = 0x0501;// Xeon
}
return true;
case CPU_MODEL_JAKETOWN:// Intel Core i7, Xeon E5-xxxx LGA2011 (32nm)
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
value->word = 0x0501;// Core i7
return true;
case 0x19:// Intel Core i5 650 @3.20 Ghz
value->word = 0x601;// Core i5

Archive Download the corresponding diff file

Revision: 2285