199767f8919635c4928607450d9e0abb932109ceToomas Soome/* $FreeBSD$ */
199767f8919635c4928607450d9e0abb932109ceToomas Soome/*++
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeCopyright (c) 1999 - 2002 Intel Corporation. All rights reserved
199767f8919635c4928607450d9e0abb932109ceToomas SoomeThis software and associated documentation (if any) is furnished
199767f8919635c4928607450d9e0abb932109ceToomas Soomeunder a license and may only be used or copied in accordance
199767f8919635c4928607450d9e0abb932109ceToomas Soomewith the terms of the license. Except as permitted by such
199767f8919635c4928607450d9e0abb932109ceToomas Soomelicense, no part of this software or documentation may be
199767f8919635c4928607450d9e0abb932109ceToomas Soomereproduced, stored in a retrieval system, or transmitted in any
199767f8919635c4928607450d9e0abb932109ceToomas Soomeform or by any means without the express written consent of
199767f8919635c4928607450d9e0abb932109ceToomas SoomeIntel Corporation.
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeModule Name:
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome efigop.h
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeAbstract:
199767f8919635c4928607450d9e0abb932109ceToomas Soome Info about framebuffers
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeRevision History
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome--*/
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#ifndef _EFIGOP_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define _EFIGOP_H
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
199767f8919635c4928607450d9e0abb932109ceToomas Soome { 0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a} }
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas SoomeINTERFACE_DECL(_EFI_GRAPHICS_OUTPUT);
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 RedMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 GreenMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 BlueMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 ReservedMask;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_PIXEL_BITMASK;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soome PixelRedGreenBlueReserved8BitPerColor,
199767f8919635c4928607450d9e0abb932109ceToomas Soome PixelBlueGreenRedReserved8BitPerColor,
199767f8919635c4928607450d9e0abb932109ceToomas Soome PixelBitMask,
199767f8919635c4928607450d9e0abb932109ceToomas Soome PixelBltOnly,
199767f8919635c4928607450d9e0abb932109ceToomas Soome PixelFormatMax,
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_GRAPHICS_PIXEL_FORMAT;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Version;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 HorizontalResolution;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 VerticalResolution;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_GRAPHICS_PIXEL_FORMAT PixelFormat;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PIXEL_BITMASK PixelInformation;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 PixelsPerScanLine;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 MaxMode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT32 Mode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINTN SizeOfInfo;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_PHYSICAL_ADDRESS FrameBufferBase;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINTN FrameBufferSize;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_GRAPHICS_OUTPUT *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT32 ModeNumber,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT UINTN *SizeOfInfo,
199767f8919635c4928607450d9e0abb932109ceToomas Soome OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_GRAPHICS_OUTPUT *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINT32 ModeNumber
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct {
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Blue;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Green;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Red;
199767f8919635c4928607450d9e0abb932109ceToomas Soome UINT8 Reserved;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_GRAPHICS_OUTPUT_BLT_PIXEL;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef enum {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EfiBltVideoFill,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EfiBltVideoToBltBuffer,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EfiBltBufferToVideo,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EfiBltVideoToVideo,
199767f8919635c4928607450d9e0abb932109ceToomas Soome EfiGraphcisOutputBltOperationMax,
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_GRAPHICS_OUTPUT_BLT_OPERATION;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef
199767f8919635c4928607450d9e0abb932109ceToomas SoomeEFI_STATUS
199767f8919635c4928607450d9e0abb932109ceToomas Soome(EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT) (
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN struct _EFI_GRAPHICS_OUTPUT *This,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN SourceX,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN SourceY,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN DestinationX,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN DestinationY,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN Width,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN Height,
199767f8919635c4928607450d9e0abb932109ceToomas Soome IN UINTN Delta
199767f8919635c4928607450d9e0abb932109ceToomas Soome );
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soometypedef struct _EFI_GRAPHICS_OUTPUT {
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE SetMode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT Blt;
199767f8919635c4928607450d9e0abb932109ceToomas Soome EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE *Mode;
199767f8919635c4928607450d9e0abb932109ceToomas Soome} EFI_GRAPHICS_OUTPUT;
199767f8919635c4928607450d9e0abb932109ceToomas Soome
199767f8919635c4928607450d9e0abb932109ceToomas Soome#endif /* _EFIGOP_H */