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