From 4cd09c4b6aacc5c617a34c40e082b3f035f4af2e Mon Sep 17 00:00:00 2001 From: okuji Date: Sun, 30 Dec 2001 07:33:23 +0000 Subject: [PATCH] 2001-12-30 Yoshinori K. Okuji * stage2/bios.c (get_diskinfo): Clear out the structure DRP before calling get_diskinfo_int13_extensions, because the Ralf Brown's Interrupt List says that Dell machines using PhoenixBIOS 4.0 Release 6.0 fail, if DRP.FLAGS is not zero. Setting the entire structure to zero may be overkill, but it should be safe. * stage2/char_io.c [STAGE1_5] (grub_memset): Defined. --- ChangeLog | 10 ++++++++++ stage2/bios.c | 3 +++ stage2/char_io.c | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f2340820c..4c5d3a19c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2001-12-30 Yoshinori K. Okuji + + * stage2/bios.c (get_diskinfo): Clear out the structure DRP + before calling get_diskinfo_int13_extensions, because the Ralf + Brown's Interrupt List says that Dell machines using PhoenixBIOS + 4.0 Release 6.0 fail, if DRP.FLAGS is not zero. Setting the + entire structure to zero may be overkill, but it should be safe. + + * stage2/char_io.c [STAGE1_5] (grub_memset): Defined. + 2001-12-30 Yoshinori K. Okuji From John Goerzen : diff --git a/stage2/bios.c b/stage2/bios.c index 91db02f38..6e61b38d5 100644 --- a/stage2/bios.c +++ b/stage2/bios.c @@ -165,6 +165,9 @@ get_diskinfo (int drive, struct geometry *geometry) regardless of a size specified in a caller. */ unsigned char dummy[16]; } __attribute__ ((packed)) drp; + + /* It is safe to clear out DRP. */ + grub_memset (&drp, 0, sizeof (drp)); drp.size = sizeof (drp); err = get_diskinfo_int13_extensions (drive, &drp); diff --git a/stage2/char_io.c b/stage2/char_io.c index 79b86e7f2..eaebe6fdf 100644 --- a/stage2/char_io.c +++ b/stage2/char_io.c @@ -1450,7 +1450,6 @@ grub_memmove (void *to, const void *from, int len) return errnum ? NULL : to; } -#ifndef STAGE1_5 void * grub_memset (void *start, int c, int len) { @@ -1465,6 +1464,7 @@ grub_memset (void *start, int c, int len) return errnum ? NULL : start; } +#ifndef STAGE1_5 char * grub_strcpy (char *dest, const char *src) {