mirror of
https://review.haiku-os.org/haiku
synced 2025-02-20 20:50:05 +01:00
* Drop gnu-efi Change-Id: Ib601fc8ced49b18281b6b98cf861a5aef1b9c065 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2026 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
77 lines
2.3 KiB
C
77 lines
2.3 KiB
C
// Copyright 2016 The Fuchsia Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#pragma once
|
|
|
|
#include <efi/types.h>
|
|
|
|
#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
|
|
{0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a}}
|
|
extern efi_guid GraphicsOutputProtocol;
|
|
|
|
typedef struct {
|
|
uint32_t RedMask;
|
|
uint32_t GreenMask;
|
|
uint32_t BlueMask;
|
|
uint32_t ReservedMask;
|
|
} efi_pixel_bitmask;
|
|
|
|
typedef enum {
|
|
PixelRedGreenBlueReserved8BitPerColor,
|
|
PixelBlueGreenRedReserved8BitPerColor,
|
|
PixelBitMask,
|
|
PixelBltOnly,
|
|
PixelFormatMax
|
|
} efi_graphics_pixel_format;
|
|
|
|
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 {
|
|
uint32_t MaxMode;
|
|
uint32_t Mode;
|
|
efi_graphics_output_mode_information* Info;
|
|
size_t SizeOfInfo;
|
|
efi_physical_addr FrameBufferBase;
|
|
size_t FrameBufferSize;
|
|
} efi_graphics_output_mode;
|
|
|
|
typedef struct {
|
|
uint8_t Blue;
|
|
uint8_t Green;
|
|
uint8_t Red;
|
|
uint8_t Reserved;
|
|
} efi_graphics_output_blt_pixel;
|
|
|
|
typedef enum {
|
|
EfiBltVideoFill,
|
|
EfiBltVideoToBltBuffer,
|
|
EfiBltBufferToVideo,
|
|
EfiBltVideoToVideo,
|
|
EfiGraphicsOutputBltOperationMax
|
|
} efi_graphics_output_blt_operation;
|
|
|
|
typedef struct efi_graphics_output_protocol {
|
|
efi_status (*QueryMode) (struct efi_graphics_output_protocol* self,
|
|
uint32_t mode_num, size_t* info_len,
|
|
efi_graphics_output_mode_information** info) EFIAPI;
|
|
|
|
efi_status (*SetMode) (struct efi_graphics_output_protocol* self,
|
|
uint32_t mode_num) EFIAPI;
|
|
|
|
efi_status (*Blt) (struct efi_graphics_output_protocol* self,
|
|
efi_graphics_output_blt_pixel* blt_buf,
|
|
efi_graphics_output_blt_operation blt_operation,
|
|
size_t src_x, size_t src_y, size_t dest_x, size_t dest_y,
|
|
size_t width, size_t height, size_t delta) EFIAPI;
|
|
|
|
efi_graphics_output_mode* Mode;
|
|
} efi_graphics_output_protocol;
|