/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 2005,2006,2007,2008,2009 Free Software Foundation, Inc.
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* GRUB is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GRUB. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef GRUB_VBE_MACHINE_HEADER
/* Default video mode to be used. */
/* VBE status codes. */
/* Bits from the GRUB_VBE "mode_attributes" field in the mode info struct. */
/* Values for the GRUB_VBE memory_model field in the mode info struct. */
/* Note:
Please refer to VESA BIOS Extension 3.0 Specification for more descriptive
meanings of following structures and how they should be used.
I have tried to maintain field name compatibility against specification
while following naming conventions used in GRUB. */
struct grub_vbe_info_block
{
} __attribute__ ((packed));
struct grub_vbe_mode_info_block
{
/* Mandatory information for all VBE revisions. */
/* Mandatory information for VBE 1.2 and above. */
/* Direct Color fields (required for direct/6 and YUV/7 memory models). */
/* Mandatory information for VBE 2.0 and above. */
/* Mandatory information for VBE 3.0 and above. */
/* Reserved field to make structure to be 256 bytes long, VESA BIOS
Extension 3.0 Specification says to reserve 189 bytes here but
that doesn't make structure to be 256 bytes. So additional one is
added here. */
} __attribute__ ((packed));
struct grub_vbe_crtc_info_block
{
} __attribute__ ((packed));
struct grub_vbe_palette_data
{
} __attribute__ ((packed));
struct grub_vbe_flat_panel_info
{
} __attribute__ ((packed));
/* Prototypes for helper functions. */
/* Call VESA BIOS 0x4f00 to get VBE Controller Information, return status. */
/* Call VESA BIOS 0x4f01 to get VBE Mode Information, return status. */
struct grub_vbe_mode_info_block *mode_info);
/* Call VESA BIOS 0x4f03 to return current VBE Mode, return status. */
/* Call VESA BIOS 0x4f05 to set memory window, return status. */
/* Call VESA BIOS 0x4f05 to return memory window, return status. */
/* Call VESA BIOS 0x4f06 to set scanline length (in bytes), return status. */
/* Call VESA BIOS 0x4f06 to return scanline length (in bytes), return status. */
/* Call VESA BIOS 0x4f07 to get display start, return status. */
grub_uint32_t *y);
#define grub_vbe_bios_get_dac_palette_width(width) grub_vbe_bios_getset_dac_palette_width(0, (width))
#define grub_vbe_bios_set_dac_palette_width(width) grub_vbe_bios_getset_dac_palette_width(1, (width))
struct grub_vbe_mode_info_block *mode_info);
struct grub_vbe_mode_info_block *mode_info);
#endif /* ! GRUB_VBE_MACHINE_HEADER */