summaryrefslogtreecommitdiffstats
path: root/src/boot/efi/proto/graphics-output.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/efi/proto/graphics-output.h')
-rw-r--r--src/boot/efi/proto/graphics-output.h78
1 files changed, 78 insertions, 0 deletions
diff --git a/src/boot/efi/proto/graphics-output.h b/src/boot/efi/proto/graphics-output.h
new file mode 100644
index 0000000..f49e580
--- /dev/null
+++ b/src/boot/efi/proto/graphics-output.h
@@ -0,0 +1,78 @@
+/* SPDX-License-Identifier: LGPL-2.1-or-later */
+#pragma once
+
+#include "efi.h"
+
+#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
+ GUID_DEF(0x9042a9de, 0x23dc, 0x4a38, 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a)
+
+typedef enum {
+ PixelRedGreenBlueReserved8BitPerColor,
+ PixelBlueGreenRedReserved8BitPerColor,
+ PixelBitMask,
+ PixelBltOnly,
+ PixelFormatMax,
+} EFI_GRAPHICS_PIXEL_FORMAT;
+
+typedef enum {
+ EfiBltVideoFill,
+ EfiBltVideoToBltBuffer,
+ EfiBltBufferToVideo,
+ EfiBltVideoToVideo,
+ EfiGraphicsOutputBltOperationMax,
+} EFI_GRAPHICS_OUTPUT_BLT_OPERATION;
+
+typedef struct {
+ uint32_t RedMask;
+ uint32_t GreenMask;
+ uint32_t BlueMask;
+ uint32_t ReservedMask;
+} EFI_PIXEL_BITMASK;
+
+typedef struct {
+ uint8_t Blue;
+ uint8_t Green;
+ uint8_t Red;
+ uint8_t Reserved;
+} EFI_GRAPHICS_OUTPUT_BLT_PIXEL;
+
+typedef struct {
+ uint32_t Version;
+ uint32_t HorizontalResolution;
+ uint32_t VerticalResolution;
+ EFI_GRAPHICS_PIXEL_FORMAT PixelFormat;
+ EFI_PIXEL_BITMASK PixelInformation;
+ uint32_t PixelsPerScanLine;
+} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;
+
+typedef struct EFI_GRAPHICS_OUTPUT_PROTOCOL EFI_GRAPHICS_OUTPUT_PROTOCOL;
+struct EFI_GRAPHICS_OUTPUT_PROTOCOL {
+ EFI_STATUS (EFIAPI *QueryMode)(
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ uint32_t ModeNumber,
+ size_t *SizeOfInfo,
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info);
+ EFI_STATUS(EFIAPI *SetMode)(
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ uint32_t ModeNumber);
+ EFI_STATUS (EFIAPI *Blt)(
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *This,
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
+ EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
+ size_t SourceX,
+ size_t SourceY,
+ size_t DestinationX,
+ size_t DestinationY,
+ size_t Width,
+ size_t Height,
+ size_t Delta);
+
+ struct {
+ uint32_t MaxMode;
+ uint32_t Mode;
+ EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
+ size_t SizeOfInfo;
+ EFI_PHYSICAL_ADDRESS FrameBufferBase;
+ size_t FrameBufferSize;
+ } *Mode;
+};