]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - UnixPkg/Include/Protocol/UnixUgaIo.h
Fix issue with fixing tabs.
[mirror_edk2.git] / UnixPkg / Include / Protocol / UnixUgaIo.h
... / ...
CommitLineData
1/*++
2
3Copyright (c) 2006, Tristan Gingold. All rights reserved.<BR>
4This program and the accompanying materials
5are licensed and made available under the terms and conditions of the
6BSD License which accompanies this distribution. The full text of the
7license may be found at http://opensource.org/licenses/bsd-license.php
8
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12Module Name:
13
14 UnixUgaIo.h
15
16Abstract:
17
18--*/
19
20#ifndef _UNIX_UGA_IO_H_
21#define _UNIX_UGA_IO_H_
22
23#include <Protocol/SimplePointer.h>
24#include <Protocol/SimpleTextIn.h>
25#include <Protocol/SimpleTextInEx.h>
26#include <Protocol/UgaDraw.h>
27
28#define EFI_UNIX_UGA_IO_PROTOCOL_GUID {0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } }
29
30typedef struct _EFI_UNIX_UGA_IO_PROTOCOL EFI_UNIX_UGA_IO_PROTOCOL;
31
32typedef
33EFI_STATUS
34(EFIAPI *UGAClose)(
35 EFI_UNIX_UGA_IO_PROTOCOL *Uga
36 );
37
38typedef
39EFI_STATUS
40(EFIAPI *UGASize)(
41 EFI_UNIX_UGA_IO_PROTOCOL *Uga,
42 UINT32 Width,
43 UINT32 Height
44 );
45
46typedef
47EFI_STATUS
48(EFIAPI *UGACheckKey)(
49 EFI_UNIX_UGA_IO_PROTOCOL *Uga
50 );
51
52typedef
53EFI_STATUS
54(EFIAPI *UGAGetKey)(
55 EFI_UNIX_UGA_IO_PROTOCOL *Uga,
56 EFI_KEY_DATA *key
57 );
58
59typedef
60EFI_STATUS
61(EFIAPI *UGAKeySetState) (
62 IN EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
63 IN EFI_KEY_TOGGLE_STATE *KeyToggleState
64 );
65
66
67typedef
68VOID
69(EFIAPI *UGA_REGISTER_KEY_NOTIFY_CALLBACK) (
70 IN VOID *Context,
71 IN EFI_KEY_DATA *KeyData
72 );
73
74typedef
75EFI_STATUS
76(EFIAPI *UGARegisterKeyNotify) (
77 IN EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
78 IN UGA_REGISTER_KEY_NOTIFY_CALLBACK CallBack,
79 IN VOID *Context
80 );
81
82
83typedef struct {
84 UINTN SourceX;
85 UINTN SourceY;
86 UINTN DestinationX;
87 UINTN DestinationY;
88 UINTN Width;
89 UINTN Height;
90 UINTN Delta;
91} UGA_BLT_ARGS;
92
93typedef
94EFI_STATUS
95(EFIAPI *UGABlt)(
96 IN EFI_UNIX_UGA_IO_PROTOCOL *Uga,
97 IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
98 IN EFI_UGA_BLT_OPERATION BltOperation,
99 IN UGA_BLT_ARGS *Args
100 );
101
102typedef
103BOOLEAN
104(EFIAPI *UGAIsKeyPressed) (
105 IN EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
106 IN EFI_KEY_DATA *KeyData
107 );
108
109typedef
110EFI_STATUS
111(EFIAPI *UGACheckPointer)(
112 EFI_UNIX_UGA_IO_PROTOCOL *Uga
113 );
114
115typedef
116EFI_STATUS
117(EFIAPI *UGAGetPointerState)(
118 EFI_UNIX_UGA_IO_PROTOCOL *Uga,
119 EFI_SIMPLE_POINTER_STATE *state
120 );
121
122struct _EFI_UNIX_UGA_IO_PROTOCOL {
123 VOID *Private;
124 UGAClose UgaClose;
125 UGASize UgaSize;
126 UGACheckKey UgaCheckKey;
127 UGAKeySetState UgaKeySetState;
128 UGAGetKey UgaGetKey;
129 UGARegisterKeyNotify UgaRegisterKeyNotify;
130 UGABlt UgaBlt;
131 UGAIsKeyPressed UgaIsKeyPressed;
132 UGACheckPointer UgaCheckPointer;
133 UGAGetPointerState UgaGetPointerState;
134};
135
136
137extern EFI_GUID gEfiUnixUgaIoProtocolGuid;
138
139#endif