]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* loader/i386/multiboot_mbi2.c (retrieve_video_parameters): Fix compilation on corebo...
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 30 Mar 2010 09:18:29 +0000 (11:18 +0200)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Tue, 30 Mar 2010 09:18:29 +0000 (11:18 +0200)
ChangeLog
loader/i386/multiboot_mbi2.c

index aba023c7bf39ddc141e64c6900fb2e61de4d1b57..5367493a29d27430f7a77d3b399ae78abfe48e94 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-03-30  Vladimir Serbinenko  <phcoder@gmail.com>
+
+       * loader/i386/multiboot_mbi2.c (retrieve_video_parameters): Fix
+       compilation on coreboot and qemu
+
 2010-03-28  Vladimir Serbinenko  <phcoder@gmail.com>
 
        * include/multiboot2.h: Resync with spec.
index 436cd0901e3c67d0f97e6a746686043011104417..1910d656ed4c2a19e59040056fe753db6e76470d 100644 (file)
 
 #if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU)
 #include <grub/i386/pc/vbe.h>
-#define DEFAULT_VIDEO_MODE "text"
 #define HAS_VGA_TEXT 1
-#define HAS_VBE 1
 #else
-#define DEFAULT_VIDEO_MODE "auto"
 #define HAS_VGA_TEXT 0
-#define HAS_VBE 0
 #endif
 
 struct module
@@ -343,14 +339,20 @@ retrieve_video_parameters (grub_uint8_t **ptrorig)
   if (driv_id == GRUB_VIDEO_DRIVER_NONE)
     {
       struct grub_vbe_mode_info_block vbe_mode_info;
-      grub_vbe_status_t status;
       grub_uint32_t vbe_mode;
-      void *scratch = (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR;
 
-      status = grub_vbe_bios_get_mode (scratch);
-      vbe_mode = *(grub_uint32_t *) scratch;
-      if (status != GRUB_VBE_STATUS_OK)
-       return GRUB_ERR_NONE;
+#if defined (GRUB_MACHINE_PCBIOS)
+      {
+       grub_vbe_status_t status;
+       void *scratch = (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR;
+       status = grub_vbe_bios_get_mode (scratch);
+       vbe_mode = *(grub_uint32_t *) scratch;
+       if (status != GRUB_VBE_STATUS_OK)
+         return GRUB_ERR_NONE;
+      }
+#else
+      vbe_mode = 3;
+#endif
 
       /* get_mode_info isn't available for mode 3.  */
       if (vbe_mode == 3)
@@ -361,14 +363,18 @@ retrieve_video_parameters (grub_uint8_t **ptrorig)
          vbe_mode_info.x_resolution = 80;
          vbe_mode_info.y_resolution = 25;
        }
+#if defined (GRUB_MACHINE_PCBIOS)
       else
        {
+         grub_vbe_status_t status;
+         void *scratch = (void *) GRUB_MEMORY_MACHINE_SCRATCH_ADDR;
          status = grub_vbe_bios_get_mode_info (vbe_mode, scratch);
          if (status != GRUB_VBE_STATUS_OK)
            return GRUB_ERR_NONE;
          grub_memcpy (&vbe_mode_info, scratch,
                       sizeof (struct grub_vbe_mode_info_block));
        }
+#endif
 
       if (vbe_mode_info.memory_model == GRUB_VBE_MEMORY_MODEL_TEXT)
        {