]> git.proxmox.com Git - mirror_edk2.git/blame - EmulatorPkg/Include/Protocol/EmuGraphicsWindow.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / EmulatorPkg / Include / Protocol / EmuGraphicsWindow.h
CommitLineData
79e4f2a5
RN
1/*++ @file\r
2\r
3Copyright (c) 2006, Tristan Gingold. All rights reserved.<BR>\r
4Portitions copyright (c) 2010 - 2011, Apple Inc. All rights reserved.\r
e3ba31da 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
79e4f2a5
RN
6\r
7**/\r
8\r
9#ifndef _EMU_UGA_IO_H_\r
10#define _EMU_UGA_IO_H_\r
11\r
12#include <Protocol/SimplePointer.h>\r
13#include <Protocol/SimpleTextIn.h>\r
14#include <Protocol/SimpleTextInEx.h>\r
15#include <Protocol/UgaDraw.h>\r
16\r
17#define EMU_GRAPHICS_WINDOW_PROTOCOL_GUID \\r
18 { 0x30FD316A, 0x6728, 0x2E41, { 0xA6, 0x90, 0x0D, 0x13, 0x33, 0xD8, 0xCA, 0xC1 } }\r
19\r
20typedef struct _EMU_GRAPHICS_WINDOW_PROTOCOL EMU_GRAPHICS_WINDOW_PROTOCOL;\r
21\r
22typedef\r
23EFI_STATUS\r
24(EFIAPI *EMU_GRAPHICS_WINDOWS_CLOSE)(\r
25 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga\r
26 );\r
27\r
28typedef\r
29EFI_STATUS\r
30(EFIAPI *EMU_GRAPHICS_WINDOWS_SIZE)(\r
31 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga,\r
32 UINT32 Width,\r
33 UINT32 Height\r
34 );\r
35\r
36typedef\r
37EFI_STATUS\r
38(EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_KEY)(\r
39 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga\r
40 );\r
41\r
42typedef\r
43EFI_STATUS\r
44(EFIAPI *EMU_GRAPHICS_WINDOWS_GET_KEY)(\r
45 EMU_GRAPHICS_WINDOW_PROTOCOL *Uga,\r
46 EFI_KEY_DATA *key\r
47 );\r
48\r
49typedef\r
50EFI_STATUS\r
a550d468 51(EFIAPI *EMU_GRAPHICS_WINDOWS_KEY_SET_STATE)(\r
79e4f2a5
RN
52 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,\r
53 IN EFI_KEY_TOGGLE_STATE *KeyToggleState\r
54 );\r
55\r
79e4f2a5
RN
56typedef\r
57VOID\r
a550d468 58(EFIAPI *EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK)(\r
79e4f2a5
RN
59 IN VOID *Context,\r
60 IN EFI_KEY_DATA *KeyData\r
61 );\r
62\r
63typedef\r
64EFI_STATUS\r
a550d468 65(EFIAPI *EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY)(\r
79e4f2a5
RN
66 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,\r
67 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK MakeCallBack,\r
68 IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK BreakCallBack,\r
69 IN VOID *Context\r
70 );\r
71\r
79e4f2a5 72typedef struct {\r
a550d468
MK
73 UINTN SourceX;\r
74 UINTN SourceY;\r
75 UINTN DestinationX;\r
76 UINTN DestinationY;\r
77 UINTN Width;\r
78 UINTN Height;\r
79 UINTN Delta;\r
79e4f2a5
RN
80} EMU_GRAPHICS_WINDOWS__BLT_ARGS;\r
81\r
82typedef\r
83EFI_STATUS\r
84(EFIAPI *EMU_GRAPHICS_WINDOWS_BLT)(\r
85 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,\r
86 IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,\r
87 IN EFI_UGA_BLT_OPERATION BltOperation,\r
88 IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args\r
89 );\r
90\r
91typedef\r
92BOOLEAN\r
a550d468 93(EFIAPI *EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED)(\r
79e4f2a5
RN
94 IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,\r
95 IN EFI_KEY_DATA *KeyData\r
96 );\r
97\r
98typedef\r
99EFI_STATUS\r
100(EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_POINTER)(\r
101 EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows\r
102 );\r
103\r
104typedef\r
105EFI_STATUS\r
106(EFIAPI *EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE)(\r
107 EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows,\r
108 EFI_SIMPLE_POINTER_STATE *state\r
109 );\r
110\r
111struct _EMU_GRAPHICS_WINDOW_PROTOCOL {\r
a550d468
MK
112 EMU_GRAPHICS_WINDOWS_SIZE Size;\r
113 EMU_GRAPHICS_WINDOWS_CHECK_KEY CheckKey;\r
114 EMU_GRAPHICS_WINDOWS_KEY_SET_STATE KeySetState;\r
115 EMU_GRAPHICS_WINDOWS_GET_KEY GetKey;\r
116 EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY RegisterKeyNotify;\r
117 EMU_GRAPHICS_WINDOWS_BLT Blt;\r
118 EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED IsKeyPressed;\r
119 EMU_GRAPHICS_WINDOWS_CHECK_POINTER CheckPointer;\r
120 EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE GetPointerState;\r
79e4f2a5
RN
121};\r
122\r
a550d468 123extern EFI_GUID gEmuGraphicsWindowProtocolGuid;\r
79e4f2a5
RN
124\r
125#endif\r