Home | History | Annotate | Download | only in disk
      1 /* ----------------------------------------------------------------------- *
      2  *
      3  *   Copyright 2009 Pierre-Alexandre Meyer
      4  *
      5  *   This file is part of Syslinux, and is made available under
      6  *   the terms of the GNU General Public License version 2.
      7  *
      8  * ----------------------------------------------------------------------- */
      9 
     10 #include <stdlib.h>
     11 #include <string.h>
     12 
     13 void get_label(int label, char **buffer_label)
     14 {
     15     int buffer_size = (80 * sizeof(char));
     16     char *buffer = malloc(buffer_size);
     17     *buffer_label = buffer;
     18 
     19     switch (label) {
     20     case 0x01:
     21 	strlcpy(buffer, "DOS 12-bit fat", buffer_size);
     22 	break;
     23     case 0x02:
     24 	strlcpy(buffer, "XENIX root", buffer_size);
     25 	break;
     26     case 0x03:
     27 	strlcpy(buffer, "XENIX /usr", buffer_size);
     28 	break;
     29     case 0x04:
     30 	strlcpy(buffer, "DOS 3.0+ 16-bit FAT (up to 32M)", buffer_size);
     31 	break;
     32     case 0x05:
     33 	strlcpy(buffer, "DOS 3.3+ Extended Partition", buffer_size);
     34 	break;
     35     case 0x06:
     36 	strlcpy(buffer, "DOS 3.31+ 16-bit FAT (over 32M)", buffer_size);
     37 	break;
     38     case 0x07:
     39 	strlcpy(buffer, "NTFS/exFAT/HPFS", buffer_size);
     40 	//case 0x07: strlcpy(buffer, "Advanced Unix", buffer_size); break;
     41 	//case 0x07: strlcpy(buffer, "Windows NT NTFS", buffer_size); break;
     42 	//case 0x07: strlcpy(buffer, "QNX2.x (pre-1988)", buffer_size); break;
     43 	break;
     44     case 0x08:
     45 	strlcpy(buffer, "AIX", buffer_size);
     46 	//case 0x08: strlcpy(buffer, "AIX boot partition", buffer_size); break;
     47 	//case 0x08: strlcpy(buffer, "SplitDrive", buffer_size); break;
     48 	//case 0x08: strlcpy(buffer, "DELL partition spanning multiple drives", buffer_size); break;
     49 	//case 0x08: strlcpy(buffer, "Commodore DOS", buffer_size); break;
     50 	//case 0x08: strlcpy(buffer, "QNX 1.x and 2.x ("qny")", buffer_size); break;
     51 	break;
     52     case 0x09:
     53 	strlcpy(buffer, "AIX bootable partition", buffer_size);
     54 	//case 0x09: strlcpy(buffer, "Coherent filesystem", buffer_size); break;
     55 	//case 0x09: strlcpy(buffer, "QNX 1.x and 2.x ("qnz")", buffer_size); break;
     56 	break;
     57     case 0x0a:
     58 	strlcpy(buffer, "OS/2 Boot Manager", buffer_size);
     59 	//case 0x0a: strlcpy(buffer, "Coherent swap partition", buffer_size); break;
     60 	//case 0x0a: strlcpy(buffer, "OPUS", buffer_size); break;
     61 	break;
     62     case 0x0b:
     63 	strlcpy(buffer, "WIN95 OSR2 32-bit FAT", buffer_size);
     64 	break;
     65     case 0x0c:
     66 	strlcpy(buffer, "WIN95 OSR2 32-bit FAT, LBA-mapped", buffer_size);
     67 	break;
     68     case 0x0e:
     69 	strlcpy(buffer, "WIN95: DOS 16-bit FAT, LBA-mapped", buffer_size);
     70 	break;
     71     case 0x0f:
     72 	strlcpy(buffer, "WIN95: Extended partition, LBA-mapped", buffer_size);
     73 	break;
     74     case 0x10:
     75 	strlcpy(buffer, "OPUS", buffer_size);
     76 	break;
     77     case 0x11:
     78 	strlcpy(buffer, "Hidden DOS 12-bit FAT", buffer_size);
     79 	break;
     80     case 0x12:
     81 	strlcpy(buffer, "Compaq diagnostic partition", buffer_size);
     82 	break;
     83     case 0x14:
     84 	strlcpy(buffer, "Hidden DOS 16-bit FAT <32M", buffer_size);
     85 	break;
     86     case 0x16:
     87 	strlcpy(buffer, "Hidden DOS 16-bit FAT >=32M", buffer_size);
     88 	break;
     89     case 0x17:
     90 	strlcpy(buffer, "Hidden HPFS/exFAT/NTFS", buffer_size);
     91 	break;
     92     case 0x18:
     93 	strlcpy(buffer, "AST SmartSleep Partition", buffer_size);
     94 	break;
     95     case 0x19:
     96 	strlcpy(buffer, "Unused (Claimed for Willowtech Photon COS)",
     97 		buffer_size);
     98 	break;
     99     case 0x1b:
    100 	strlcpy(buffer, "Hidden WIN95 OSR2 32-bit FAT", buffer_size);
    101 	break;
    102     case 0x1c:
    103 	strlcpy(buffer, "Hidden WIN95 OSR2 32-bit FAT, LBA-mapped",
    104 		buffer_size);
    105 	break;
    106     case 0x1e:
    107 	strlcpy(buffer, "Hidden WIN95 16-bit FAT, LBA-mapped", buffer_size);
    108 	break;
    109     case 0x20:
    110 	strlcpy(buffer, "Unused", buffer_size);
    111 	break;
    112     case 0x21:
    113 	strlcpy(buffer, "Reserved", buffer_size);
    114 	//case 0x21: strlcpy(buffer, "Unused", buffer_size); break;
    115 	break;
    116     case 0x22:
    117 	strlcpy(buffer, "Unused", buffer_size);
    118 	break;
    119     case 0x23:
    120 	strlcpy(buffer, "Reserved", buffer_size);
    121 	break;
    122     case 0x24:
    123 	strlcpy(buffer, "NEC DOS 3.x", buffer_size);
    124 	break;
    125     case 0x26:
    126 	strlcpy(buffer, "Reserved", buffer_size);
    127 	break;
    128     case 0x27:
    129 	strlcpy(buffer, "PQService (Acer laptop hidden rescue partition)", buffer_size);
    130 	//Windows RE hidden partition
    131 	//MirOS BSD partition
    132 	//RouterBOOT kernel partition
    133 	break;
    134     case 0x2a:
    135 	strlcpy(buffer, "AtheOS File System (AFS)", buffer_size);
    136 	break;
    137     case 0x2b:
    138 	strlcpy(buffer, "SyllableSecure (SylStor)", buffer_size);
    139 	break;
    140     case 0x31:
    141 	strlcpy(buffer, "Reserved", buffer_size);
    142 	break;
    143     case 0x32:
    144 	strlcpy(buffer, "NOS", buffer_size);
    145 	break;
    146     case 0x33:
    147 	strlcpy(buffer, "Reserved", buffer_size);
    148 	break;
    149     case 0x34:
    150 	strlcpy(buffer, "Reserved", buffer_size);
    151 	break;
    152     case 0x35:
    153 	strlcpy(buffer, "JFS on OS/2 or eCS", buffer_size);
    154 	break;
    155     case 0x36:
    156 	strlcpy(buffer, "Reserved", buffer_size);
    157 	break;
    158     case 0x38:
    159 	strlcpy(buffer, "THEOS ver 3.2 2gb partition", buffer_size);
    160 	break;
    161     case 0x39:
    162 	strlcpy(buffer, "Plan 9 partition", buffer_size);
    163 	//case 0x39: strlcpy(buffer, "THEOS ver 4 spanned partition", buffer_size); break;
    164 	break;
    165     case 0x3a:
    166 	strlcpy(buffer, "THEOS ver 4 4gb partition", buffer_size);
    167 	break;
    168     case 0x3b:
    169 	strlcpy(buffer, "THEOS ver 4 extended partition", buffer_size);
    170 	break;
    171     case 0x3c:
    172 	strlcpy(buffer, "PartitionMagic recovery partition", buffer_size);
    173 	break;
    174     case 0x3d:
    175 	strlcpy(buffer, "Hidden NetWare", buffer_size);
    176 	break;
    177     case 0x40:
    178 	strlcpy(buffer, "Venix 80286", buffer_size);
    179 	break;
    180     case 0x41:
    181 	strlcpy(buffer, "PPC PReP Boot", buffer_size); break;
    182 	//case 0x41: strlcpy(buffer, "Personal RISC Boot", buffer_size); break;
    183 	// strlcpy(buffer, "Linux/MINIX (sharing disk with DRDOS)", buffer_size);
    184 	break;
    185     case 0x42:
    186 	strlcpy(buffer, "SFS (Secure Filesystem)", buffer_size); break;
    187 	// strlcpy(buffer, "Linux swap (sharing disk with DRDOS)", buffer_size);
    188 	//case 0x42: strlcpy(buffer, "Windows 2000 marker", buffer_size); break;
    189 	break;
    190     case 0x43:
    191 	strlcpy(buffer, "Linux native (sharing disk with DRDOS)", buffer_size);
    192 	break;
    193     case 0x44:
    194 	strlcpy(buffer, "GoBack partition", buffer_size);
    195 	break;
    196     case 0x45:
    197 	strlcpy(buffer, "Boot-US boot manager", buffer_size);
    198 	//case 0x45: strlcpy(buffer, "Priam", buffer_size); break;
    199 	//case 0x45: strlcpy(buffer, "EUMEL/Elan", buffer_size); break;
    200 	break;
    201     case 0x46:
    202 	strlcpy(buffer, "EUMEL/Elan", buffer_size);
    203 	break;
    204     case 0x47:
    205 	strlcpy(buffer, "EUMEL/Elan", buffer_size);
    206 	break;
    207     case 0x48:
    208 	strlcpy(buffer, "EUMEL/Elan", buffer_size);
    209 	break;
    210     case 0x4a:
    211 	strlcpy(buffer, "AdaOS Aquila (Default)", buffer_size);
    212 	//case 0x4a: strlcpy(buffer, "ALFS/THIN lightweight filesystem for DOS", buffer_size); break;
    213 	break;
    214     case 0x4c:
    215 	strlcpy(buffer, "Oberon partition", buffer_size);
    216 	break;
    217     case 0x4d:
    218 	strlcpy(buffer, "QNX4.x", buffer_size);
    219 	break;
    220     case 0x4e:
    221 	strlcpy(buffer, "QNX4.x 2nd part", buffer_size);
    222 	break;
    223     case 0x4f:
    224 	strlcpy(buffer, "QNX4.x 3rd part", buffer_size);
    225 	//case 0x4f: strlcpy(buffer, "Oberon partition", buffer_size); break;
    226 	break;
    227     case 0x50:
    228 	strlcpy(buffer, "OnTrack Disk Manager (older versions) RO",
    229 		buffer_size);
    230 	//case 0x50: strlcpy(buffer, "Lynx RTOS", buffer_size); break;
    231 	//case 0x50: strlcpy(buffer, "Native Oberon (alt)", buffer_size); break;
    232 	break;
    233     case 0x51:
    234 	strlcpy(buffer, "OnTrack Disk Manager RW (DM6 Aux1)", buffer_size);
    235 	//case 0x51: strlcpy(buffer, "Novell", buffer_size); break;
    236 	break;
    237     case 0x52:
    238 	strlcpy(buffer, "CP/M", buffer_size);
    239 	//case 0x52: strlcpy(buffer, "Microport SysV/AT", buffer_size); break;
    240 	break;
    241     case 0x53:
    242 	strlcpy(buffer, "Disk Manager 6.0 Aux3", buffer_size);
    243 	break;
    244     case 0x54:
    245 	strlcpy(buffer, "Disk Manager 6.0 Dynamic Drive Overlay", buffer_size);
    246 	break;
    247     case 0x55:
    248 	strlcpy(buffer, "EZ-Drive", buffer_size);
    249 	break;
    250     case 0x56:
    251 	strlcpy(buffer, "Golden Bow VFeature Partitioned Volume.", buffer_size);
    252 	//case 0x56: strlcpy(buffer, "DM converted to EZ-BIOS", buffer_size); break;
    253 	break;
    254     case 0x57:
    255 	strlcpy(buffer, "DrivePro", buffer_size);
    256 	//case 0x57: strlcpy(buffer, "VNDI Partition", buffer_size); break;
    257 	break;
    258     case 0x5c:
    259 	strlcpy(buffer, "Priam EDisk", buffer_size);
    260 	break;
    261     case 0x61:
    262 	strlcpy(buffer, "SpeedStor", buffer_size);
    263 	break;
    264     case 0x63:
    265 	strlcpy(buffer,
    266 		"Unix System V (SCO, ISC Unix, UnixWare, ...), Mach, GNU Hurd",
    267 		buffer_size);
    268 	break;
    269     case 0x64:
    270 	strlcpy(buffer, "Novell Netware 286, 2.xx", buffer_size); break;
    271 	//strlcpy(buffer, "PC-ARMOUR protected partition", buffer_size);
    272 	break;
    273     case 0x65:
    274 	strlcpy(buffer, "Novell Netware 386, 3.xx or 4.xx", buffer_size);
    275 	break;
    276     case 0x66:
    277 	strlcpy(buffer, "Novell Netware SMS Partition", buffer_size);
    278 	break;
    279     case 0x67:
    280 	strlcpy(buffer, "Novell", buffer_size);
    281 	break;
    282     case 0x68:
    283 	strlcpy(buffer, "Novell", buffer_size);
    284 	break;
    285     case 0x69:
    286 	strlcpy(buffer, "Novell Netware 5+, Novell Netware NSS Partition",
    287 		buffer_size);
    288 	break;
    289     case 0x70:
    290 	strlcpy(buffer, "DiskSecure Multi-Boot", buffer_size);
    291 	break;
    292     case 0x71:
    293 	strlcpy(buffer, "Reserved", buffer_size);
    294 	break;
    295     case 0x72:
    296 	strlcpy(buffer, "V7/x86", buffer_size);
    297 	break;
    298     case 0x73:
    299 	strlcpy(buffer, "Reserved", buffer_size);
    300 	break;
    301     case 0x74:
    302 	//strlcpy(buffer, "Reserved", buffer_size);
    303 	strlcpy(buffer, "Scramdisk partition", buffer_size); break;
    304     case 0x75:
    305 	strlcpy(buffer, "IBM PC/IX", buffer_size);
    306 	break;
    307     case 0x76:
    308 	strlcpy(buffer, "Reserved", buffer_size);
    309 	break;
    310     case 0x77:
    311 	strlcpy(buffer, "M2FS/M2CS partition", buffer_size);
    312 	break;
    313 	//case 0x77: strlcpy(buffer, "VNDI Partition", buffer_size); break;
    314     case 0x78:
    315 	strlcpy(buffer, "XOSL FS", buffer_size);
    316 	break;
    317     case 0x7E:
    318 	strlcpy(buffer, "Unused", buffer_size);
    319 	break;
    320     case 0x80:
    321 	strlcpy(buffer, "MINIX until 1.4a", buffer_size);
    322 	break;
    323     case 0x81:
    324 	strlcpy(buffer, "MINIX since 1.4b, early Linux", buffer_size);
    325 	//case 0x81: strlcpy(buffer, "Mitac disk manager", buffer_size); break;
    326 	break;
    327     case 0x82:
    328 	strlcpy(buffer, "Linux swap", buffer_size);
    329 	//case 0x82: strlcpy(buffer, "Prime", buffer_size); break;
    330 	//case 0x82: strlcpy(buffer, "Solaris x86", buffer_size); break;
    331 	break;
    332     case 0x83:
    333 	strlcpy(buffer, "Linux native (usually ext2fs)", buffer_size);
    334 	break;
    335     case 0x84:
    336 	strlcpy(buffer, "OS/2 hidden C: drive", buffer_size);
    337 	//case 0x84: strlcpy(buffer, "Hibernation partition", buffer_size); break;
    338 	break;
    339     case 0x85:
    340 	strlcpy(buffer, "Linux extended partition", buffer_size);
    341 	break;
    342     case 0x86:
    343 	strlcpy(buffer, "NTFS volume set", buffer_size);
    344 	//case 0x86: strlcpy(buffer, "Old Linux RAID partition superblock", buffer_size); break;
    345 	break;
    346     case 0x87:
    347 	strlcpy(buffer, "NTFS volume set", buffer_size);
    348 	break;
    349     case 0x88:
    350 	strlcpy(buffer, "Linux Plaintext", buffer_size);
    351 	break;
    352     case 0x8a:
    353 	strlcpy(buffer, "Linux Kernel Partition (used by AiR-BOOT)",
    354 		buffer_size);
    355 	break;
    356     case 0x8b:
    357 	strlcpy(buffer, "Legacy Fault Tolerant FAT32 volume", buffer_size);
    358 	break;
    359     case 0x8c:
    360 	strlcpy(buffer,
    361 		"Legacy Fault Tolerant FAT32 volume using BIOS extd INT 13h",
    362 		buffer_size);
    363 	break;
    364     case 0x8d:
    365 	strlcpy(buffer, "Free FDISK hidden Primary DOS FAT12 partitition",
    366 		buffer_size);
    367 	break;
    368     case 0x8e:
    369 	strlcpy(buffer, "Linux LVM partition", buffer_size);
    370 	break;
    371     case 0x90:
    372 	strlcpy(buffer, "Free FDISK hidden Primary DOS FAT16 partitition",
    373 		buffer_size);
    374 	break;
    375     case 0x91:
    376 	strlcpy(buffer, "Free FDISK hidden DOS extended partitition",
    377 		buffer_size);
    378 	break;
    379     case 0x92:
    380 	strlcpy(buffer, "Free FDISK hidden Primary DOS large FAT16 partitition",
    381 		buffer_size);
    382 	break;
    383     case 0x93:
    384 	strlcpy(buffer, "Hidden Linux native partition", buffer_size);
    385 	//case 0x93: strlcpy(buffer, "Amoeba", buffer_size); break;
    386 	break;
    387     case 0x94:
    388 	strlcpy(buffer, "Amoeba bad block table", buffer_size);
    389 	break;
    390     case 0x95:
    391 	strlcpy(buffer, "MIT EXOPC native partitions", buffer_size);
    392 	break;
    393     case 0x96:
    394 	strlcpy(buffer, "CHRP ISO-9660 filesystem", buffer_size);
    395 	break;
    396     case 0x97:
    397 	strlcpy(buffer, "Free FDISK hidden Primary DOS FAT32 partitition",
    398 		buffer_size);
    399 	break;
    400     case 0x98:
    401 	strlcpy(buffer, "Free FDISK hidden Primary DOS FAT32 partitition (LBA)",
    402 		buffer_size);
    403 	break;
    404     case 0x99:
    405 	strlcpy(buffer, "DCE376 logical drive", buffer_size);
    406 	break;
    407     case 0x9a:
    408 	strlcpy(buffer, "Free FDISK hidden Primary DOS FAT16 partitition (LBA)",
    409 		buffer_size);
    410 	break;
    411     case 0x9b:
    412 	strlcpy(buffer, "Free FDISK hidden DOS extended partitition (LBA)",
    413 		buffer_size);
    414 	break;
    415     case 0x9e:
    416 	strlcpy(buffer, "ForthOS partition", buffer_size);
    417 	break;
    418     case 0x9f:
    419 	strlcpy(buffer, "BSD/OS", buffer_size);
    420 	break;
    421     case 0xa0:
    422 	strlcpy(buffer, "Laptop hibernation partition", buffer_size);
    423 	break;
    424     case 0xa1:
    425 	strlcpy(buffer, "Laptop hibernation partition", buffer_size);
    426 	//case 0xa1: strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size); break;
    427 	break;
    428     case 0xa3:
    429 	strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size);
    430 	break;
    431     case 0xa4:
    432 	strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size);
    433 	break;
    434     case 0xa5:
    435 	strlcpy(buffer, "BSD/386, 386BSD, NetBSD, FreeBSD", buffer_size);
    436 	break;
    437     case 0xa6:
    438 	strlcpy(buffer, "OpenBSD", buffer_size);
    439 	break;
    440     case 0xa7:
    441 	strlcpy(buffer, "NeXTSTEP", buffer_size);
    442 	break;
    443     case 0xa8:
    444 	strlcpy(buffer, "Mac OS-X", buffer_size);
    445 	break;
    446     case 0xa9:
    447 	strlcpy(buffer, "NetBSD", buffer_size);
    448 	break;
    449     case 0xaa:
    450 	strlcpy(buffer, "Olivetti Fat 12 1.44Mb Service Partition",
    451 		buffer_size);
    452 	break;
    453     case 0xab:
    454 	strlcpy(buffer, "Mac OS-X Boot partition", buffer_size);
    455 	//case 0xab: strlcpy(buffer, "GO! partition", buffer_size); break;
    456 	break;
    457     case 0xae:
    458 	strlcpy(buffer, "ShagOS filesystem", buffer_size);
    459 	break;
    460     case 0xaf:
    461 	strlcpy(buffer, "ShagOS swap partition", buffer_size);
    462 	break;
    463     case 0xb0:
    464 	strlcpy(buffer, "BootStar Dummy", buffer_size);
    465 	break;
    466     case 0xb1:
    467 	strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size);
    468 	break;
    469     case 0xb2:
    470 	strlcpy(buffer, "QNX Neutrino Power-Safe filesystem", buffer_size);
    471 	break;
    472     case 0xb3:
    473 	strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size);
    474 	break;
    475     case 0xb4:
    476 	strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size);
    477 	break;
    478     case 0xb6:
    479 	strlcpy(buffer, "HP Volume Expansion (SpeedStor variant)", buffer_size);
    480 	break;
    481     case 0xb7:
    482 	strlcpy(buffer, "BSDI BSD/386 filesystem", buffer_size);
    483 	break;
    484     case 0xb8:
    485 	strlcpy(buffer, "BSDI BSD/386 swap partition", buffer_size);
    486 	break;
    487     case 0xbb:
    488 	strlcpy(buffer, "Boot Wizard hidden", buffer_size);
    489 	break;
    490     case 0xbc:
    491 	strlcpy(buffer, "Acronis backup partition", buffer_size);
    492 	break;
    493     case 0xbe:
    494 	strlcpy(buffer, "Solaris 8 boot partition", buffer_size);
    495 	break;
    496     case 0xbf:
    497 	strlcpy(buffer, "Solaris partition", buffer_size);
    498 	break;
    499     case 0xc0:
    500 	strlcpy(buffer, "CTOS", buffer_size);
    501 	//case 0xc0: strlcpy(buffer, "REAL/32 secure small partition", buffer_size); break;
    502 	//case 0xc0: strlcpy(buffer, "NTFT Partition", buffer_size); break;
    503 	break;
    504     case 0xc1:
    505 	strlcpy(buffer, "DRDOS/secured (FAT-12)", buffer_size);
    506 	break;
    507     case 0xc2:
    508 	strlcpy(buffer, "Hidden Linux", buffer_size); break;
    509 	//strlcpy(buffer, "Reserved for DR-DOS 7+", buffer_size);
    510 	break;
    511     case 0xc3:
    512 	strlcpy(buffer, "Hidden Linux swap", buffer_size);
    513 	break;
    514     case 0xc4:
    515 	strlcpy(buffer, "DRDOS/secured (FAT-16, < 32M)", buffer_size);
    516 	break;
    517     case 0xc5:
    518 	strlcpy(buffer, "DRDOS/secured (extended)", buffer_size);
    519 	break;
    520     case 0xc6:
    521 	strlcpy(buffer, "DRDOS/secured (FAT-16, >= 32M)", buffer_size);
    522 	//case 0xc6: strlcpy(buffer, "Windows NT corrupted FAT16 volume/stripe set", buffer_size); break;
    523 	break;
    524     case 0xc7:
    525 	strlcpy(buffer, "Windows NT corrupted NTFS volume/stripe set",
    526 		buffer_size);
    527 	//case 0xc7: strlcpy(buffer, "Syrinx boot", buffer_size); break;
    528 	break;
    529     case 0xc8:
    530 	strlcpy(buffer, "Reserved for DR-DOS 8.0+", buffer_size);
    531 	break;
    532     case 0xc9:
    533 	strlcpy(buffer, "Reserved for DR-DOS 8.0+", buffer_size);
    534 	break;
    535     case 0xca:
    536 	strlcpy(buffer, "Reserved for DR-DOS 8.0+", buffer_size);
    537 	break;
    538     case 0xcb:
    539 	strlcpy(buffer, "reserved for DRDOS/secured (FAT32)", buffer_size);
    540 	break;
    541     case 0xcc:
    542 	strlcpy(buffer, "reserved for DRDOS/secured (FAT32, LBA)", buffer_size);
    543 	break;
    544     case 0xcd:
    545 	strlcpy(buffer, "CTOS Memdump?", buffer_size);
    546 	break;
    547     case 0xce:
    548 	strlcpy(buffer, "reserved for DRDOS/secured (FAT16, LBA)", buffer_size);
    549 	break;
    550     case 0xcf:
    551 	strlcpy(buffer, "DR-DOS 7.04+ secured EXT DOS (LBA)", buffer_size);
    552 	break;
    553     case 0xd0:
    554 	strlcpy(buffer, "REAL/32 secure big partition", buffer_size);
    555 	break;
    556     case 0xd1:
    557 	strlcpy(buffer, "Old Multiuser DOS secured FAT12", buffer_size);
    558 	break;
    559     case 0xd4:
    560 	strlcpy(buffer, "Old Multiuser DOS secured FAT16 <32M", buffer_size);
    561 	break;
    562     case 0xd5:
    563 	strlcpy(buffer, "Old Multiuser DOS secured extended partition",
    564 		buffer_size);
    565 	break;
    566     case 0xd6:
    567 	strlcpy(buffer, "Old Multiuser DOS secured FAT16 >=32M", buffer_size);
    568 	break;
    569     case 0xd8:
    570 	strlcpy(buffer, "CP/M-86", buffer_size);
    571 	break;
    572     case 0xda:
    573 	strlcpy(buffer, "Non-FS Data", buffer_size);
    574 	break;
    575     case 0xdb:
    576 	strlcpy(buffer,
    577 		"Digital Research CP/M, Concurrent CP/M, Concurrent DOS",
    578 		buffer_size);
    579 	//case 0xdb: strlcpy(buffer, "CTOS (Convergent Technologies OS -Unisys)", buffer_size); break;
    580 	//case 0xdb: strlcpy(buffer, "KDG Telemetry SCPU boot", buffer_size); break;
    581 	break;
    582     case 0xdd:
    583 	strlcpy(buffer, "Hidden CTOS Memdump?", buffer_size);
    584 	break;
    585     case 0xde:
    586 	strlcpy(buffer, "Dell PowerEdge Server utilities (FAT fs)",
    587 		buffer_size);
    588 	break;
    589     case 0xdf:
    590 	strlcpy(buffer, "DG/UX virtual disk manager partition", buffer_size);
    591 	break;
    592 	//case 0xdf: strlcpy(buffer, "BootIt EMBRM", buffer_size); break;
    593     case 0xe0:
    594 	strlcpy(buffer,
    595 		"Reserved by STMicroelectronics for a filesystem called ST AVFS.",
    596 		buffer_size);
    597 	break;
    598     case 0xe1:
    599 	strlcpy(buffer, "DOS access or SpeedStor 12-bit FAT extended partition",
    600 		buffer_size);
    601 	break;
    602     case 0xe3:
    603 	strlcpy(buffer, "DOS R/O or SpeedStor", buffer_size);
    604 	break;
    605     case 0xe4:
    606 	strlcpy(buffer, "SpeedStor 16-bit FAT extended partition < 1024 cyl.",
    607 		buffer_size);
    608 	break;
    609     case 0xe5:
    610 	strlcpy(buffer,
    611 		"Tandy DOS with logical sectored FAT (According to Powerquest.)",
    612 		buffer_size);
    613 	//case 0xe5: strlcpy(buffer, "Reserved", buffer_size); break;
    614 	break;
    615     case 0xe6:
    616 	strlcpy(buffer, "Storage Dimensions SpeedStor", buffer_size);
    617 	break;
    618     case 0xe8:
    619 	strlcpy(buffer, "LUKS", buffer_size);
    620 	break;
    621     case 0xeb:
    622 	strlcpy(buffer, "BeOS", buffer_size);
    623 	break;
    624     case 0xec:
    625 	strlcpy(buffer, "SkyOS SkyFS", buffer_size);
    626 	break;
    627     case 0xed:
    628 	strlcpy(buffer, "Reserved for Matthias Paul's Sprytix", buffer_size);
    629 	break;
    630     case 0xee:
    631 	strlcpy(buffer,
    632 		"GPT",
    633 		buffer_size);
    634 	break;
    635     case 0xef:
    636 	strlcpy(buffer, "EFI file system",
    637 		buffer_size);
    638 	break;
    639     case 0xf0:
    640 	strlcpy(buffer, "Linux/PA-RISC boot loader", buffer_size);
    641 	break;
    642     case 0xf1:
    643 	strlcpy(buffer, "SpeedStor", buffer_size);
    644 	break;
    645     case 0xf2:
    646 	strlcpy(buffer,
    647 		"DOS 3.3+ secondary partition (Powerquest writes: Unisys DOS with logical sectored FAT.)",
    648 		buffer_size);
    649 	break;
    650     case 0xf3:
    651 	strlcpy(buffer,
    652 		"Reserved (Powerquest writes: Storage Dimensions SpeedStor.)",
    653 		buffer_size);
    654 	break;
    655     case 0xf4:
    656 	strlcpy(buffer, "SpeedStor large partition", buffer_size);
    657 	//case 0xf4: strlcpy(buffer, "Prologue single-volume partition", buffer_size); break;
    658 	break;
    659     case 0xf5:
    660 	strlcpy(buffer, "Prologue multi-volume partition", buffer_size);
    661 	break;
    662     case 0xf6:
    663 	strlcpy(buffer,
    664 		"Reserved (Powerquest writes: Storage Dimensions SpeedStor. )",
    665 		buffer_size);
    666 	break;
    667     case 0xf7:
    668 	strlcpy(buffer, "DDRdrive Solid State File System", buffer_size);
    669 	break;
    670     case 0xf9:
    671 	strlcpy(buffer, "pCache", buffer_size);
    672 	break;
    673     case 0xfa:
    674 	strlcpy(buffer, "Bochs", buffer_size);
    675 	break;
    676     case 0xfb:
    677 	strlcpy(buffer, "VMware File System partition", buffer_size);
    678 	break;
    679     case 0xfc:
    680 	strlcpy(buffer, "VMware Swap partition", buffer_size);
    681 	break;
    682     case 0xfd:
    683 	strlcpy(buffer,
    684 		"Linux raid partition with autodetect using persistent superblock (Powerquest writes: Reserved for FreeDOS. )",
    685 		buffer_size);
    686 	break;
    687     case 0xfe:
    688 	strlcpy(buffer, "LANstep", buffer_size); break;
    689 	//strlcpy(buffer, "SpeedStor > 1024 cyl.", buffer_size);
    690 	//case 0xfe: strlcpy(buffer, "IBM PS/2 IML (Initial Microcode Load) partition, located at the end of the disk.", buffer_size); break;
    691 	//case 0xfe: strlcpy(buffer, "Windows NT Disk Administrator hidden partition", buffer_size); break;
    692 	//case 0xfe: strlcpy(buffer, "Linux Logical Volume Manager partition (old)", buffer_size); break;
    693 	break;
    694     case 0xff:
    695 	strlcpy(buffer, "Xenix Bad Block Table ", buffer_size);
    696 	break;
    697     default:
    698 	strlcpy(buffer, "Unknown", buffer_size);
    699 	break;
    700     }
    701 }
    702