949f388f |
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 | This program and the accompanying materials are licensed and made available under |
13 | the terms and conditions of the BSD License that accompanies this distribution. |
14 | The full text of the license may be found at |
15 | http://opensource.org/licenses/bsd-license.php. |
16 | |
17 | THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, |
18 | WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. |
19 | |
20 | **/ |
21 | |
22 | #ifndef _EMU_UGA_IO_H_ |
23 | #define _EMU_UGA_IO_H_ |
24 | |
25 | #include <Protocol/SimplePointer.h> |
26 | #include <Protocol/SimpleTextIn.h> |
27 | #include <Protocol/SimpleTextInEx.h> |
28 | #include <Protocol/UgaDraw.h> |
29 | |
30 | #define EMU_GRAPHICS_WINDOW_PROTOCOL_GUID \ |
31 | { 0x30FD316A, 0x6728, 0x2E41, { 0xA6, 0x90, 0x0D, 0x13, 0x33, 0xD8, 0xCA, 0xC1 } } |
32 | |
33 | typedef struct _EMU_GRAPHICS_WINDOW_PROTOCOL EMU_GRAPHICS_WINDOW_PROTOCOL; |
34 | |
35 | typedef |
36 | EFI_STATUS |
37 | (EFIAPI *EMU_GRAPHICS_WINDOWS_CLOSE)( |
38 | EMU_GRAPHICS_WINDOW_PROTOCOL *Uga |
39 | ); |
40 | |
41 | typedef |
42 | EFI_STATUS |
43 | (EFIAPI *EMU_GRAPHICS_WINDOWS_SIZE)( |
44 | EMU_GRAPHICS_WINDOW_PROTOCOL *Uga, |
45 | UINT32 Width, |
46 | UINT32 Height |
47 | ); |
48 | |
49 | typedef |
50 | EFI_STATUS |
51 | (EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_KEY)( |
52 | EMU_GRAPHICS_WINDOW_PROTOCOL *Uga |
53 | ); |
54 | |
55 | typedef |
56 | EFI_STATUS |
57 | (EFIAPI *EMU_GRAPHICS_WINDOWS_GET_KEY)( |
58 | EMU_GRAPHICS_WINDOW_PROTOCOL *Uga, |
59 | EFI_KEY_DATA *key |
60 | ); |
61 | |
62 | typedef |
63 | EFI_STATUS |
64 | (EFIAPI *EMU_GRAPHICS_WINDOWS_KEY_SET_STATE) ( |
65 | IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows, |
66 | IN EFI_KEY_TOGGLE_STATE *KeyToggleState |
67 | ); |
68 | |
69 | |
70 | typedef |
71 | VOID |
72 | (EFIAPI *EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK) ( |
73 | IN VOID *Context, |
74 | IN EFI_KEY_DATA *KeyData |
75 | ); |
76 | |
77 | typedef |
78 | EFI_STATUS |
79 | (EFIAPI *EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY) ( |
80 | IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows, |
81 | IN EMU_GRAPHICS_WINDOW_REGISTER_KEY_NOTIFY_CALLBACK CallBack, |
82 | IN VOID *Context |
83 | ); |
84 | |
85 | |
86 | typedef struct { |
87 | UINTN SourceX; |
88 | UINTN SourceY; |
89 | UINTN DestinationX; |
90 | UINTN DestinationY; |
91 | UINTN Width; |
92 | UINTN Height; |
93 | UINTN Delta; |
94 | } EMU_GRAPHICS_WINDOWS__BLT_ARGS; |
95 | |
96 | typedef |
97 | EFI_STATUS |
98 | (EFIAPI *EMU_GRAPHICS_WINDOWS_BLT)( |
99 | IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows, |
100 | IN EFI_UGA_PIXEL *BltBuffer OPTIONAL, |
101 | IN EFI_UGA_BLT_OPERATION BltOperation, |
102 | IN EMU_GRAPHICS_WINDOWS__BLT_ARGS *Args |
103 | ); |
104 | |
105 | typedef |
106 | BOOLEAN |
107 | (EFIAPI *EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED) ( |
108 | IN EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows, |
109 | IN EFI_KEY_DATA *KeyData |
110 | ); |
111 | |
112 | typedef |
113 | EFI_STATUS |
114 | (EFIAPI *EMU_GRAPHICS_WINDOWS_CHECK_POINTER)( |
115 | EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows |
116 | ); |
117 | |
118 | typedef |
119 | EFI_STATUS |
120 | (EFIAPI *EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE)( |
121 | EMU_GRAPHICS_WINDOW_PROTOCOL *GraphicsWindows, |
122 | EFI_SIMPLE_POINTER_STATE *state |
123 | ); |
124 | |
125 | struct _EMU_GRAPHICS_WINDOW_PROTOCOL { |
126 | EMU_GRAPHICS_WINDOWS_SIZE Size; |
127 | EMU_GRAPHICS_WINDOWS_CHECK_KEY CheckKey; |
128 | EMU_GRAPHICS_WINDOWS_KEY_SET_STATE KeySetState; |
129 | EMU_GRAPHICS_WINDOWS_GET_KEY GetKey; |
130 | EMU_GRAPHICS_WINDOWS_REGISTER_KEY_NOTIFY RegisterKeyNotify; |
131 | EMU_GRAPHICS_WINDOWS_BLT Blt; |
132 | EMU_GRAPHICS_WINDOWS_IS_KEY_PRESSED IsKeyPressed; |
133 | EMU_GRAPHICS_WINDOWS_CHECK_POINTER CheckPointer; |
134 | EMU_GRAPHICS_WINDOWS_GET_POINTER_STATE GetPointerState; |
135 | }; |
136 | |
137 | |
138 | extern EFI_GUID gEmuGraphicsWindowProtocolGuid; |
139 | |
140 | #endif |