aboutsummaryrefslogtreecommitdiffstats
path: root/com32/gpllib
diff options
context:
space:
mode:
authorErwan Velu <erwanaliasr1@gmail.com>2011-01-26 23:56:09 +0100
committerErwan Velu <erwanaliasr1@gmail.com>2011-01-26 23:56:09 +0100
commit7444a40f48c3f70a34ddb9a95945a5d709058038 (patch)
tree5eae23b203e83e184ad26a9c8499b833a40f9b25 /com32/gpllib
parent994c9d75b0ae7773d99da8ef6d4a4a43714c4bb4 (diff)
parent558087bfd62e8f74f58157e885cecc00feba836a (diff)
downloadsyslinux-7444a40f48c3f70a34ddb9a95945a5d709058038.tar.gz
syslinux-7444a40f48c3f70a34ddb9a95945a5d709058038.tar.xz
syslinux-7444a40f48c3f70a34ddb9a95945a5d709058038.zip
Merge remote branch 'origin/master' into chouffe
Diffstat (limited to 'com32/gpllib')
-rw-r--r--com32/gpllib/disk/mbrs.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/com32/gpllib/disk/mbrs.c b/com32/gpllib/disk/mbrs.c
index 41bb20c6..6150fcf4 100644
--- a/com32/gpllib/disk/mbrs.c
+++ b/com32/gpllib/disk/mbrs.c
@@ -27,8 +27,6 @@ void get_mbr_string(const uint32_t label, char *buffer, const int buffer_size)
switch (s_label) {
case 0x0000:
- case 0xfa33:
- case 0xfab8:
case 0xfabe:
strlcpy(buffer, "No bootloader", buffer_size - 1);
break;
@@ -39,7 +37,18 @@ void get_mbr_string(const uint32_t label, char *buffer, const int buffer_size)
strlcpy(buffer, "Acer 3", buffer_size - 1);
break;
case 0x33c0:
- strlcpy(buffer, "Windows", buffer_size - 1);
+ /* We need more than 2 bytes */
+ if (((label >> 8) & 0xff) == 0x8e)
+ strlcpy(buffer, "Windows", buffer_size - 1);
+ else if (((label >> 8) & 0xff) == 0x90)
+ strlcpy(buffer, "DiskCryptor", buffer_size - 1);
+ else if (((label >> 8) & 0xff) == 0xfa)
+ strlcpy(buffer, "Syslinux", buffer_size - 1);
+ else
+ strlcpy(buffer, "Unknown mbr", buffer_size - 1);
+ break;
+ case 0x33ed:
+ strlcpy(buffer, "Syslinux ISOhybrid", buffer_size - 1);
break;
case 0x33ff:
strlcpy(buffer, "HP/Gateway", buffer_size - 1);
@@ -56,6 +65,9 @@ void get_mbr_string(const uint32_t label, char *buffer, const int buffer_size)
case 0xeb04:
strlcpy(buffer, "Solaris", buffer_size - 1);
break;
+ case 0xeb31:
+ strlcpy(buffer, "Paragon", buffer_size - 1);
+ break;
case 0xeb48:
strlcpy(buffer, "Grub", buffer_size - 1);
break;
@@ -78,13 +90,19 @@ void get_mbr_string(const uint32_t label, char *buffer, const int buffer_size)
break;
case 0xfa31:
/* We need more than 2 bytes */
- if (((label >> 8) & 0xff) == 0xc9)
- strlcpy(buffer, "Master Boot LoaDeR", buffer_size - 1);
- else if (((label >> 8) & 0xff) == 0xc0)
+ if (((label >> 8) & 0xff) == 0xc0)
strlcpy(buffer, "Syslinux", buffer_size - 1);
+ else if (((label >> 8) & 0xff) == 0xc9)
+ strlcpy(buffer, "Master Boot LoaDeR", buffer_size - 1);
else
strlcpy(buffer, "Unknown mbr", buffer_size - 1);
break;
+ case 0xfa33:
+ strlcpy(buffer, "MS-DOS 3.30 through Windows 95 (A)", buffer_size - 1);
+ break;
+ case 0xfab8:
+ strlcpy(buffer, "FreeDOS (eXtended FDisk)", buffer_size - 1);
+ break;
case 0xfaeb:
strlcpy(buffer, "Lilo", buffer_size - 1);
break;