]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Console/ConSplitter/Dxe/ConSplitter.h
Merge GOP related code from r8->r9.
[mirror_edk2.git] / EdkModulePkg / Universal / Console / ConSplitter / Dxe / ConSplitter.h
index fc68f049a023fa64852e067422f60d1a89275ce0..30980225e57dec2b372680b02e583e1b1a15ac41 100644 (file)
@@ -84,33 +84,48 @@ typedef struct {
 #define TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE  EFI_SIGNATURE_32 ('T', 'o', 'S', 'p')\r
 \r
 typedef struct {\r
+  EFI_GRAPHICS_OUTPUT_PROTOCOL  *GraphicsOutput;\r
   EFI_UGA_DRAW_PROTOCOL         *UgaDraw;\r
   EFI_SIMPLE_TEXT_OUT_PROTOCOL  *TextOut;\r
   BOOLEAN                       TextOutEnabled;\r
-} TEXT_OUT_AND_UGA_DATA;\r
+} TEXT_OUT_AND_GOP_DATA;\r
+\r
+typedef struct {\r
+  UINT32                     HorizontalResolution;\r
+  UINT32                     VerticalResolution;\r
+} TEXT_OUT_GOP_MODE;\r
 \r
 typedef struct {\r
   UINT64                          Signature;\r
   EFI_HANDLE                      VirtualHandle;\r
   EFI_SIMPLE_TEXT_OUT_PROTOCOL    TextOut;\r
   EFI_SIMPLE_TEXT_OUTPUT_MODE     TextOutMode;\r
+\r
+#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
   EFI_UGA_DRAW_PROTOCOL           UgaDraw;\r
   UINT32                          UgaHorizontalResolution;\r
   UINT32                          UgaVerticalResolution;\r
   UINT32                          UgaColorDepth;\r
   UINT32                          UgaRefreshRate;\r
   EFI_UGA_PIXEL                   *UgaBlt;\r
+#else\r
+  EFI_GRAPHICS_OUTPUT_PROTOCOL    GraphicsOutput;\r
+  EFI_GRAPHICS_OUTPUT_BLT_PIXEL   *GraphicsOutputBlt;\r
+  TEXT_OUT_GOP_MODE               *GraphicsOutputModeBuffer;\r
+  UINTN                           CurrentNumberOfGraphicsOutput;\r
+  BOOLEAN                         HardwareNeedsStarting;\r
+#endif\r
 \r
   EFI_CONSOLE_CONTROL_PROTOCOL    ConsoleControl;\r
 \r
   UINTN                           CurrentNumberOfConsoles;\r
-  TEXT_OUT_AND_UGA_DATA           *TextOutList;\r
+  TEXT_OUT_AND_GOP_DATA           *TextOutList;\r
   UINTN                           TextOutListCount;\r
   TEXT_OUT_SPLITTER_QUERY_DATA    *TextOutQueryData;\r
   UINTN                           TextOutQueryDataCount;\r
   INT32                           *TextOutModeMap;\r
 \r
-  EFI_CONSOLE_CONTROL_SCREEN_MODE UgaMode;\r
+  EFI_CONSOLE_CONTROL_SCREEN_MODE ConsoleOutputMode;\r
 \r
   UINTN                           DevNullColumns;\r
   UINTN                           DevNullRows;\r
@@ -126,6 +141,13 @@ typedef struct {
       TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
       )\r
 \r
+#define GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
+  CR (a, \\r
+      TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
+      GraphicsOutput, \\r
+      TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
+      )\r
+\r
 #define UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
   CR (a, \\r
       TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
@@ -151,14 +173,14 @@ ConSplitterDriverEntry (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 ConSplitterTextInConstructor (\r
   TEXT_IN_SPLITTER_PRIVATE_DATA       *Private\r
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 ConSplitterTextOutConstructor (\r
   TEXT_OUT_SPLITTER_PRIVATE_DATA      *Private\r
@@ -168,7 +190,7 @@ ConSplitterTextOutConstructor (
 //\r
 // Driver Binding Functions\r
 //\r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInDriverBindingSupported (\r
@@ -178,7 +200,7 @@ ConSplitterConInDriverBindingSupported (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerDriverBindingSupported (\r
@@ -188,7 +210,7 @@ ConSplitterSimplePointerDriverBindingSupported (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutDriverBindingSupported (\r
@@ -198,7 +220,7 @@ ConSplitterConOutDriverBindingSupported (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrDriverBindingSupported (\r
@@ -208,7 +230,7 @@ ConSplitterStdErrDriverBindingSupported (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInDriverBindingStart (\r
@@ -218,7 +240,7 @@ ConSplitterConInDriverBindingStart (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerDriverBindingStart (\r
@@ -228,7 +250,7 @@ ConSplitterSimplePointerDriverBindingStart (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutDriverBindingStart (\r
@@ -238,7 +260,7 @@ ConSplitterConOutDriverBindingStart (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrDriverBindingStart (\r
@@ -248,7 +270,7 @@ ConSplitterStdErrDriverBindingStart (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInDriverBindingStop (\r
@@ -259,7 +281,7 @@ ConSplitterConInDriverBindingStop (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerDriverBindingStop (\r
@@ -270,7 +292,7 @@ ConSplitterSimplePointerDriverBindingStop (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutDriverBindingStop (\r
@@ -281,7 +303,7 @@ ConSplitterConOutDriverBindingStop (
   )\r
 ;\r
 \r
-\r
+STATIC\r
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrDriverBindingStop (\r
@@ -333,6 +355,7 @@ EFI_STATUS
 ConSplitterTextOutAddDevice (\r
   IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
   IN  EFI_SIMPLE_TEXT_OUT_PROTOCOL    *TextOut,\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL    *GraphicsOutput,\r
   IN  EFI_UGA_DRAW_PROTOCOL           *UgaDraw\r
   )\r
 ;\r
@@ -521,7 +544,7 @@ EFIAPI
 ConSpliterConsoleControlGetMode (\r
   IN  EFI_CONSOLE_CONTROL_PROTOCOL    *This,\r
   OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,\r
-  OUT BOOLEAN                         *UgaExists,\r
+  OUT BOOLEAN                         *GopExists,\r
   OUT BOOLEAN                         *StdInLocked\r
   )\r
 ;\r
@@ -534,6 +557,49 @@ ConSpliterConsoleControlSetMode (
   )\r
 ;\r
 \r
+EFI_STATUS\r
+EFIAPI\r
+ConSpliterGraphicsOutputQueryMode (\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL                 *This,\r
+  IN  UINT32                                   ModeNumber,\r
+  OUT UINTN                                       *SizeOfInfo,\r
+  OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION     **Info\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSpliterGraphicsOutputSetMode (\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL * This,\r
+  IN  UINT32                       ModeNumber\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+ConSpliterGraphicsOutputBlt (\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL                  *This,\r
+  IN  EFI_GRAPHICS_OUTPUT_BLT_PIXEL                 *BltBuffer, OPTIONAL\r
+  IN  EFI_GRAPHICS_OUTPUT_BLT_OPERATION             BltOperation,\r
+  IN  UINTN                                         SourceX,\r
+  IN  UINTN                                         SourceY,\r
+  IN  UINTN                                         DestinationX,\r
+  IN  UINTN                                         DestinationY,\r
+  IN  UINTN                                         Width,\r
+  IN  UINTN                                         Height,\r
+  IN  UINTN                                         Delta         OPTIONAL\r
+  )\r
+;\r
+\r
+EFI_STATUS\r
+DevNullGopSync (\r
+  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL    *GraphicsOutput,\r
+  IN  EFI_UGA_DRAW_PROTOCOL           *UgaDraw\r
+  )\r
+;\r
+\r
+#if (EFI_SPECIFICATION < 0x00020000)\r
 EFI_STATUS\r
 EFIAPI\r
 ConSpliterUgaDrawGetMode (\r
@@ -578,6 +644,7 @@ DevNullUgaSync (
   IN  EFI_UGA_DRAW_PROTOCOL           *UgaDraw\r
   )\r
 ;\r
+#endif\r
 \r
 EFI_STATUS\r
 DevNullTextOutOutputString (\r
@@ -615,7 +682,7 @@ DevNullTextOutEnableCursor (
 ;\r
 \r
 EFI_STATUS\r
-DevNullSyncUgaStdOut (\r
+DevNullSyncGopStdOut (\r
   IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private\r
   )\r
 ;\r