17d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin/** @file 27d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 37d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin Copyright (c) 2011, ARM Ltd. All rights reserved.<BR> 47d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin This program and the accompanying materials 57d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin are licensed and made available under the terms and conditions of the BSD License 67d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin which accompanies this distribution. The full text of the license may be found at 77d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin http://opensource.org/licenses/bsd-license.php 87d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 97d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 107d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 117d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 127d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin**/ 137d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 147d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#ifndef __ARM_VE_GRAPHICS_DXE_H__ 157d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#define __ARM_VE_GRAPHICS_DXE_H__ 167d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 177d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 187d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#include <Base.h> 193723a71a33d88307d96bca4facdce7d0120d922foliviermartin 203723a71a33d88307d96bca4facdce7d0120d922foliviermartin#include <Library/DebugLib.h> 213723a71a33d88307d96bca4facdce7d0120d922foliviermartin#include <Library/LcdPlatformLib.h> 223723a71a33d88307d96bca4facdce7d0120d922foliviermartin#include <Library/PcdLib.h> 237d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#include <Library/UefiLib.h> 243723a71a33d88307d96bca4facdce7d0120d922foliviermartin 257d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#include <Protocol/DevicePath.h> 267d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 277d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 287d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin// 297d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin// Device structures 307d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin// 317d0f2f23d2e47341dc78096644ef57db0542b076oliviermartintypedef struct { 327d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin VENDOR_DEVICE_PATH Guid; 337d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_DEVICE_PATH_PROTOCOL End; 347d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin} LCD_GRAPHICS_DEVICE_PATH; 357d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 367d0f2f23d2e47341dc78096644ef57db0542b076oliviermartintypedef struct { 374d83284aeecb8c2e6e5fe16bfd2cc75346709625oliviermartin UINT32 Signature; 387d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_HANDLE Handle; 397d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_GRAPHICS_OUTPUT_MODE_INFORMATION ModeInfo; 407d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_GRAPHICS_OUTPUT_PROTOCOL_MODE Mode; 417d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_GRAPHICS_OUTPUT_PROTOCOL Gop; 427d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin LCD_GRAPHICS_DEVICE_PATH DevicePath; 437d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_EVENT ExitBootServicesEvent; 447d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin} LCD_INSTANCE; 457d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 467d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#define LCD_INSTANCE_SIGNATURE SIGNATURE_32('l', 'c', 'd', '0') 477d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 487d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#define LCD_INSTANCE_FROM_GOP_THIS(a) CR (a, LCD_INSTANCE, Gop, LCD_INSTANCE_SIGNATURE) 497d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 507d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin// 517d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin// Function Prototypes 527d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin// 537d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 547d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinVOID 557d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdGraphicsExitBootServicesEvent ( 567d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_EVENT Event, 577d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN VOID *Context 587d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 597d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 607d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 617d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFIAPI 627d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdGraphicsQueryMode ( 637d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This, 647d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINT32 ModeNumber, 657d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin OUT UINTN *SizeOfInfo, 667d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info 677d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 687d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 697d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 707d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFIAPI 717d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdGraphicsSetMode ( 727d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This, 737d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINT32 ModeNumber 747d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 757d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 767d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 777d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFIAPI 787d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdGraphicsBlt ( 797d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This, 807d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN OUT EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL 817d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation, 827d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN SourceX, 837d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN SourceY, 847d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN DestinationX, 857d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN DestinationY, 867d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN Width, 877d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN Height, 887d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINTN Delta OPTIONAL 897d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 907d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 917d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinUINTN 927d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinGetBytesPerPixel ( 937d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN LCD_BPP Bpp 947d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin ); 957d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 967d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 977d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFIAPI 987d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinGraphicsOutputDxeInitialize ( 997d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_HANDLE ImageHandle, 1007d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN EFI_SYSTEM_TABLE *SystemTable 1017d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 1027d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 1037d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 1047d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinInitializeDisplay ( 1057d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN LCD_INSTANCE* Instance 1067d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 1077d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 1087d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 1099dc94d9891ec4d6f946f85f25be4ccf551e2a7edArd BiesheuvelLcdIdentify ( 1107d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin VOID 1117d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 1127d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 1137d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 1147d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdInitialize ( 1157d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin EFI_PHYSICAL_ADDRESS VramBaseAddress 1167d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 1177d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 1187d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinEFI_STATUS 1197d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdSetMode ( 1207d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin IN UINT32 ModeNumber 1217d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 1227d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 1237d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinVOID 1247d0f2f23d2e47341dc78096644ef57db0542b076oliviermartinLcdShutdown ( 1257d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin VOID 1267d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin); 1277d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin 1287d0f2f23d2e47341dc78096644ef57db0542b076oliviermartin#endif /* __ARM_VE_GRAPHICS_DXE_H__ */ 129