Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:24:05

0001 /* $FreeBSD$ */
0002 /*++
0003 
0004 Copyright (c)  1999 - 2002 Intel Corporation. All rights reserved
0005 This software and associated documentation (if any) is furnished
0006 under a license and may only be used or copied in accordance
0007 with the terms of the license. Except as permitted by such
0008 license, no part of this software or documentation may be
0009 reproduced, stored in a retrieval system, or transmitted in any
0010 form or by any means without the express written consent of
0011 Intel Corporation.
0012 
0013 Module Name:
0014 
0015     efigop.h
0016 
0017 Abstract:
0018     Info about framebuffers
0019 
0020 
0021 
0022 
0023 Revision History
0024 
0025 --*/
0026 
0027 #ifndef _EFIGOP_H
0028 #define _EFIGOP_H
0029 
0030 #define EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID \
0031     { 0x9042a9de, 0x23dc, 0x4a38, {0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a} }
0032 
0033 INTERFACE_DECL(_EFI_GRAPHICS_OUTPUT);
0034 
0035 typedef struct {
0036     UINT32  RedMask;
0037     UINT32  GreenMask;
0038     UINT32  BlueMask;
0039     UINT32  ReservedMask;
0040 } EFI_PIXEL_BITMASK;
0041 
0042 typedef enum {
0043     PixelRedGreenBlueReserved8BitPerColor,
0044     PixelBlueGreenRedReserved8BitPerColor,
0045     PixelBitMask,
0046     PixelBltOnly,
0047     PixelFormatMax,
0048 } EFI_GRAPHICS_PIXEL_FORMAT;
0049 
0050 typedef struct {
0051     UINT32              Version;
0052     UINT32              HorizontalResolution;
0053     UINT32              VerticalResolution;
0054     EFI_GRAPHICS_PIXEL_FORMAT   PixelFormat;
0055     EFI_PIXEL_BITMASK       PixelInformation;
0056     UINT32              PixelsPerScanLine;
0057 } EFI_GRAPHICS_OUTPUT_MODE_INFORMATION;
0058 
0059 typedef struct {
0060     UINT32                  MaxMode;
0061     UINT32                  Mode;
0062     EFI_GRAPHICS_OUTPUT_MODE_INFORMATION    *Info;
0063     UINTN                   SizeOfInfo;
0064     EFI_PHYSICAL_ADDRESS            FrameBufferBase;
0065     UINTN                   FrameBufferSize;
0066 } EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE;
0067 
0068 typedef
0069 EFI_STATUS
0070 (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE) (
0071     IN  struct _EFI_GRAPHICS_OUTPUT     *This,
0072     IN  UINT32                  ModeNumber,
0073     OUT UINTN                   *SizeOfInfo,
0074     OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION    **Info
0075     );
0076 
0077 typedef
0078 EFI_STATUS
0079 (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE) (
0080     IN  struct _EFI_GRAPHICS_OUTPUT *This,
0081     IN  UINT32              ModeNumber
0082     );
0083 
0084 typedef struct {
0085     UINT8   Blue;
0086     UINT8   Green;
0087     UINT8   Red;
0088     UINT8   Reserved;
0089 } EFI_GRAPHICS_OUTPUT_BLT_PIXEL;
0090 
0091 typedef enum {
0092     EfiBltVideoFill,
0093     EfiBltVideoToBltBuffer,
0094     EfiBltBufferToVideo,
0095     EfiBltVideoToVideo,
0096     EfiGraphcisOutputBltOperationMax,
0097 } EFI_GRAPHICS_OUTPUT_BLT_OPERATION;
0098 
0099 typedef
0100 EFI_STATUS
0101 (EFIAPI *EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT) (
0102     IN struct _EFI_GRAPHICS_OUTPUT      *This,
0103     IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL    *BltBuffer,
0104     IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION    BltOperation,
0105     IN UINTN                    SourceX,
0106     IN UINTN                    SourceY,
0107     IN UINTN                    DestinationX,
0108     IN UINTN                    DestinationY,
0109     IN UINTN                    Width,
0110     IN UINTN                    Height,
0111     IN UINTN                    Delta
0112     );
0113 
0114 typedef struct _EFI_GRAPHICS_OUTPUT {
0115     EFI_GRAPHICS_OUTPUT_PROTOCOL_QUERY_MODE QueryMode;
0116     EFI_GRAPHICS_OUTPUT_PROTOCOL_SET_MODE   SetMode;
0117     EFI_GRAPHICS_OUTPUT_PROTOCOL_BLT    Blt;
0118     EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE   *Mode;
0119 } EFI_GRAPHICS_OUTPUT;
0120 
0121 #endif /* _EFIGOP_H */