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
13void 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