1 /* uga_draw.h - definitions of the uga draw protocol */
3 * GRUB -- GRand Unified Bootloader
4 * Copyright (C) 2008 Free Software Foundation, Inc.
6 * GRUB is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * GRUB is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
20 /* The console control protocol is not a part of the EFI spec,
21 but defined in Intel's Sample Implementation. */
23 #ifndef GRUB_EFI_UGA_DRAW_HEADER
24 #define GRUB_EFI_UGA_DRAW_HEADER 1
26 #define GRUB_EFI_UGA_DRAW_GUID \
27 { 0x982c298b, 0xf4fa, 0x41cb, { 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 }}
29 enum grub_efi_uga_blt_operation
31 GRUB_EFI_UGA_VIDEO_FILL
,
32 GRUB_EFI_UGA_VIDEO_TO_BLT
,
33 GRUB_EFI_UGA_BLT_TO_VIDEO
,
34 GRUB_EFI_UGA_VIDEO_TO_VIDEO
,
38 struct grub_efi_uga_pixel
43 grub_uint8_t Reserved
;
46 struct grub_efi_uga_draw_protocol
49 (*get_mode
) (struct grub_efi_uga_draw_protocol
*this,
51 grub_uint32_t
*height
,
53 grub_uint32_t
*refresh_rate
);
56 (*set_mode
) (struct grub_efi_uga_draw_protocol
*this,
60 grub_uint32_t refresh_rate
);
63 (*blt
) (struct grub_efi_uga_draw_protocol
*this,
64 struct grub_efi_uga_pixel
*blt_buffer
,
65 enum grub_efi_uga_blt_operation blt_operation
,
66 grub_efi_uintn_t src_x
,
67 grub_efi_uintn_t src_y
,
68 grub_efi_uintn_t dest_x
,
69 grub_efi_uintn_t dest_y
,
70 grub_efi_uintn_t width
,
71 grub_efi_uintn_t height
,
72 grub_efi_uintn_t delta
);
74 typedef struct grub_efi_uga_draw_protocol grub_efi_uga_draw_protocol_t
;
76 #endif /* ! GRUB_EFI_UGA_DRAW_HEADER */