-/* probe.c -- BIOS probes */
-/*
-Copyright 1999-2006 John Coffman.
-All rights reserved.
-
-Licensed under the terms contained in the file 'COPYING' in the
-source directory.
-
-*/
+/* probe.c - BIOS probe utility
+ *
+ * Copyright 1999-2006 John Coffman
+ * Copyright 2009-2013 Joachim Wiedorn
+ * All rights reserved.
+ *
+ * Licensed under the terms contained in the file 'COPYING'
+ * in the source directory.
+ */
/*#define DEBUG_PROBE*/
#define BITMAP 0 /* change to 1 when do_bitmap is filled in */
{ "DOS12", PART_DOS12, HIDDEN_OFF },
{ "DOS16_small", PART_DOS16_SMALL, HIDDEN_OFF },
{ "DOS16_big", PART_DOS16_BIG, HIDDEN_OFF },
- { "NTFS or OS2_HPFS", PART_NTFS, HIDDEN_OFF }, /* same as HPFS; keep these two together */
+ { "NTFS", PART_NTFS, HIDDEN_OFF }, /* same as HPFS; keep these two together */
/* { "HPFS", PART_HPFS, HIDDEN_OFF }, */ /* same as NTFS */
{ "FAT32", PART_FAT32, HIDDEN_OFF },
{ "FAT32_lba", PART_FAT32_LBA, HIDDEN_OFF },
{ "FAT16_lba", PART_FAT16_LBA, HIDDEN_OFF },
- { "OS/2 BootMgr", PART_OS2_BOOTMGR, 0 },
+/* { "OS/2 BootMgr", PART_OS2_BOOTMGR, 0 }, */ /* obsolete system */
{ "DOS extended", PART_DOS_EXTD, 0 },
{ "WIN extended", PART_WIN_EXTD_LBA, 0 },
{ "Linux ext'd", PART_LINUX_EXTD, 0 },
eq = (void*)&buf.b[buf.s5.equipment];
v1 = (void*)&buf.b[buf.s5.video];
if (buf.s5.vid > 1) {
- v2 = (void*)v1 + sizeof(*v1);
- v25 = (void*)v2 + sizeof(*v2);
+ v2 = (void*)(v1 + 1);
+ v25 = (void*)(v2 + 1);
}
- if (buf.s5.vid > 2) v3 = (void*)v25 + sizeof(*v25);
+ if (buf.s5.vid > 2) v3 = (void*)(v25 + 1);
}
#if BETA_TEST
if (verbose>=5) printf("fetch: good return\n");
if (drive >= 0x80)
- hdp[drive-0x80 + 1] = (void*)hd + sizeof(hard_t); /* simplest increment, but may be wrong */
+ hdp[drive-0x80 + 1] = hd + 1; /* simplest increment, but may be wrong */
/* regs.eax = 0x1500; check drive type */
/* regs.edx = drive; */
#if 0
geom->pt = &pt_base[(drive&15)*4];
#else
- void *p = (void*)pt_base;
+ char *p = (char*)pt_base;
int i = buf.s5.version >= 4 ? 8 : 0;
p += (drive & 15) * (PART_TABLE_SIZE + i) + i;
fflush(stdout);
#endif
/* update the pointer to the next drive */
- hdp[drive-0x80 + 1] = (void*)dp + sizeof(edd_t);
+ hdp[drive-0x80 + 1] = (void*)(dp + 1);
/* regs.eax = 0x4800; */
/* regs.edx = drive; */