EmuFileSystem.h 3.6 KB

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