]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UnixPkg/Include/Protocol/UnixUgaIo.h
Adding Simple Pointer, GOP, SimpleTextInEx, and Networking protocols to the emulator...
[mirror_edk2.git] / UnixPkg / Include / Protocol / UnixUgaIo.h
index 3b32795219e553c4d87c6a144ba7cf114c87cc66..5200e4c4e081b8449046c9e1c3ce85e0c124a58a 100644 (file)
@@ -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;
 };