2008-08-31 Colin D Bennett <colin@gibibit.com>
* commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and total video memory in 'vbeinfo' output; show color format details for each video mode.
This commit is contained in:
parent
7c5d8d950c
commit
c08a6c1877
2 changed files with 36 additions and 7 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2008-08-31 Colin D Bennett <colin@gibibit.com>
|
||||||
|
|
||||||
|
* commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
|
||||||
|
total video memory in 'vbeinfo' output; show color format details for
|
||||||
|
each video mode.
|
||||||
|
|
||||||
2008-08-30 Pavel Roskin <proski@gnu.org>
|
2008-08-30 Pavel Roskin <proski@gnu.org>
|
||||||
|
|
||||||
* util/genmoddep.c: Remove for real this time.
|
* util/genmoddep.c: Remove for real this time.
|
||||||
|
|
|
@ -48,12 +48,18 @@ grub_cmd_vbeinfo (struct grub_arg_list *state __attribute__ ((unused)),
|
||||||
grub_err_t err;
|
grub_err_t err;
|
||||||
char *modevar;
|
char *modevar;
|
||||||
|
|
||||||
grub_printf ("List of compatible video modes:\n");
|
|
||||||
|
|
||||||
err = grub_vbe_probe (&controller_info);
|
err = grub_vbe_probe (&controller_info);
|
||||||
if (err != GRUB_ERR_NONE)
|
if (err != GRUB_ERR_NONE)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
grub_printf ("VBE info: version: %d.%d OEM software rev: %d.%d\n",
|
||||||
|
controller_info.version >> 8,
|
||||||
|
controller_info.version & 0xFF,
|
||||||
|
controller_info.oem_software_rev >> 8,
|
||||||
|
controller_info.oem_software_rev & 0xFF);
|
||||||
|
grub_printf (" total memory: %d KiB\n",
|
||||||
|
(controller_info.total_memory << 16) / 1024);
|
||||||
|
|
||||||
/* Because the information on video modes is stored in a temporary place,
|
/* Because the information on video modes is stored in a temporary place,
|
||||||
it is better to copy it to somewhere safe. */
|
it is better to copy it to somewhere safe. */
|
||||||
p = video_mode_list = real2pm (controller_info.video_mode_ptr);
|
p = video_mode_list = real2pm (controller_info.video_mode_ptr);
|
||||||
|
@ -67,6 +73,10 @@ grub_cmd_vbeinfo (struct grub_arg_list *state __attribute__ ((unused)),
|
||||||
|
|
||||||
grub_memcpy (saved_video_mode_list, video_mode_list, video_mode_list_size);
|
grub_memcpy (saved_video_mode_list, video_mode_list, video_mode_list_size);
|
||||||
|
|
||||||
|
grub_printf ("List of compatible video modes:\n");
|
||||||
|
grub_printf ("Legend: P=Packed pixel, D=Direct color, "
|
||||||
|
"mask/pos=R/G/B/reserved\n");
|
||||||
|
|
||||||
/* Walk through all video modes listed. */
|
/* Walk through all video modes listed. */
|
||||||
for (p = saved_video_mode_list; *p != 0xFFFF; p++)
|
for (p = saved_video_mode_list; *p != 0xFFFF; p++)
|
||||||
{
|
{
|
||||||
|
@ -103,10 +113,10 @@ grub_cmd_vbeinfo (struct grub_arg_list *state __attribute__ ((unused)),
|
||||||
switch (mode_info_tmp.memory_model)
|
switch (mode_info_tmp.memory_model)
|
||||||
{
|
{
|
||||||
case 0x04:
|
case 0x04:
|
||||||
memory_model = "Packed Pixel";
|
memory_model = "Packed";
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
memory_model = "Direct Color";
|
memory_model = "Direct";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@ -116,12 +126,25 @@ grub_cmd_vbeinfo (struct grub_arg_list *state __attribute__ ((unused)),
|
||||||
if (! memory_model)
|
if (! memory_model)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
grub_printf ("0x%03x: %d x %d x %d bpp (%s)\n",
|
grub_printf ("0x%03x: %4d x %4d x %2d %s",
|
||||||
mode,
|
mode,
|
||||||
mode_info_tmp.x_resolution,
|
mode_info_tmp.x_resolution,
|
||||||
mode_info_tmp.y_resolution,
|
mode_info_tmp.y_resolution,
|
||||||
mode_info_tmp.bits_per_pixel,
|
mode_info_tmp.bits_per_pixel,
|
||||||
memory_model);
|
memory_model);
|
||||||
|
|
||||||
|
/* Show mask and position details for direct color modes. */
|
||||||
|
if (mode_info_tmp.memory_model == 0x06)
|
||||||
|
grub_printf (", mask: %d/%d/%d/%d pos: %d/%d/%d/%d",
|
||||||
|
mode_info_tmp.red_mask_size,
|
||||||
|
mode_info_tmp.green_mask_size,
|
||||||
|
mode_info_tmp.blue_mask_size,
|
||||||
|
mode_info_tmp.rsvd_mask_size,
|
||||||
|
mode_info_tmp.red_field_position,
|
||||||
|
mode_info_tmp.green_field_position,
|
||||||
|
mode_info_tmp.blue_field_position,
|
||||||
|
mode_info_tmp.rsvd_field_position);
|
||||||
|
grub_printf ("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
grub_free (saved_video_mode_list);
|
grub_free (saved_video_mode_list);
|
||||||
|
|
Loading…
Reference in a new issue