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