summaryrefslogtreecommitdiff
path: root/UnixPkg/Include/Protocol/UnixUgaIo.h
diff options
context:
space:
mode:
Diffstat (limited to 'UnixPkg/Include/Protocol/UnixUgaIo.h')
-rw-r--r--UnixPkg/Include/Protocol/UnixUgaIo.h65
1 files changed, 59 insertions, 6 deletions
diff --git a/UnixPkg/Include/Protocol/UnixUgaIo.h b/UnixPkg/Include/Protocol/UnixUgaIo.h
index 3b32795219..5200e4c4e0 100644
--- a/UnixPkg/Include/Protocol/UnixUgaIo.h
+++ b/UnixPkg/Include/Protocol/UnixUgaIo.h
@@ -20,19 +20,24 @@ Abstract:
#ifndef _UNIX_UGA_IO_H_
#define _UNIX_UGA_IO_H_
+#include <Protocol/SimplePointer.h>
+#include <Protocol/SimpleTextIn.h>
+#include <Protocol/SimpleTextInEx.h>
+#include <Protocol/UgaDraw.h>
+
#define EFI_UNIX_UGA_IO_PROTOCOL_GUID {0xf2e5e2c6, 0x8985, 0x11db, {0xa1, 0x91, 0x00, 0x40, 0xd0, 0x2b, 0x18, 0x35 } }
typedef struct _EFI_UNIX_UGA_IO_PROTOCOL EFI_UNIX_UGA_IO_PROTOCOL;
typedef
EFI_STATUS
-(*UGAClose)(
+(EFIAPI *UGAClose)(
EFI_UNIX_UGA_IO_PROTOCOL *Uga
);
typedef
EFI_STATUS
-(*UGASize)(
+(EFIAPI *UGASize)(
EFI_UNIX_UGA_IO_PROTOCOL *Uga,
UINT32 Width,
UINT32 Height
@@ -40,15 +45,38 @@ EFI_STATUS
typedef
EFI_STATUS
-(*UGACheckKey)(
+(EFIAPI *UGACheckKey)(
EFI_UNIX_UGA_IO_PROTOCOL *Uga
);
typedef
EFI_STATUS
-(*UGAGetKey)(
+(EFIAPI *UGAGetKey)(
EFI_UNIX_UGA_IO_PROTOCOL *Uga,
- EFI_INPUT_KEY *key
+ EFI_KEY_DATA *key
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *UGAKeySetState) (
+ IN EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ IN EFI_KEY_TOGGLE_STATE *KeyToggleState
+ );
+
+
+typedef
+VOID
+(EFIAPI *UGA_REGISTER_KEY_NOTIFY_CALLBACK) (
+ IN VOID *Context,
+ IN EFI_KEY_DATA *KeyData
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *UGARegisterKeyNotify) (
+ IN EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ IN UGA_REGISTER_KEY_NOTIFY_CALLBACK CallBack,
+ IN VOID *Context
);
@@ -64,20 +92,45 @@ typedef struct {
typedef
EFI_STATUS
-(*UGABlt)(
+(EFIAPI *UGABlt)(
IN EFI_UNIX_UGA_IO_PROTOCOL *Uga,
IN EFI_UGA_PIXEL *BltBuffer OPTIONAL,
IN EFI_UGA_BLT_OPERATION BltOperation,
IN UGA_BLT_ARGS *Args
);
+typedef
+BOOLEAN
+(EFIAPI *UGAIsKeyPressed) (
+ IN EFI_UNIX_UGA_IO_PROTOCOL *UgaIo,
+ IN EFI_KEY_DATA *KeyData
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *UGACheckPointer)(
+ EFI_UNIX_UGA_IO_PROTOCOL *Uga
+ );
+
+typedef
+EFI_STATUS
+(EFIAPI *UGAGetPointerState)(
+ EFI_UNIX_UGA_IO_PROTOCOL *Uga,
+ EFI_SIMPLE_POINTER_STATE *state
+ );
+
struct _EFI_UNIX_UGA_IO_PROTOCOL {
VOID *Private;
UGAClose UgaClose;
UGASize UgaSize;
UGACheckKey UgaCheckKey;
+ UGAKeySetState UgaKeySetState;
UGAGetKey UgaGetKey;
+ UGARegisterKeyNotify UgaRegisterKeyNotify;
UGABlt UgaBlt;
+ UGAIsKeyPressed UgaIsKeyPressed;
+ UGACheckPointer UgaCheckPointer;
+ UGAGetPointerState UgaGetPointerState;
};