Merge GOP related code from r8->r9.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2085 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
wuyizhong
2006-12-12 07:09:03 +00:00
parent d02920ead2
commit 406adcd15c
19 changed files with 1719 additions and 477 deletions

View File

@@ -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
)
;
@@ -534,6 +557,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 (
@@ -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
)
;