1. Removed #ifdef EDK_RELEASE_VERSION from all c files for all modules
2. Removed #ifdef EFI_SPECIFICATION_VERSION from all c files for all modules 3. Added comments for file VariableWorker.c git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2495 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -1,30 +1,30 @@
|
||||
/**@file
|
||||
Console Splitter Driver. Any Handle that attatched
|
||||
Console Splitter Driver. Any Handle that attatched
|
||||
EFI_CONSOLE_IDENTIFIER_PROTOCOL can be bound by this driver.
|
||||
|
||||
So far it works like any other driver by opening a SimpleTextIn and/or
|
||||
SimpleTextOut protocol with EFI_OPEN_PROTOCOL_BY_DRIVER attributes. The big
|
||||
|
||||
So far it works like any other driver by opening a SimpleTextIn and/or
|
||||
SimpleTextOut protocol with EFI_OPEN_PROTOCOL_BY_DRIVER attributes. The big
|
||||
difference is this driver does not layer a protocol on the passed in
|
||||
handle, or construct a child handle like a standard device or bus driver.
|
||||
This driver produces three virtual handles as children, one for console input
|
||||
handle, or construct a child handle like a standard device or bus driver.
|
||||
This driver produces three virtual handles as children, one for console input
|
||||
splitter, one for console output splitter and one for error output splitter.
|
||||
EFI_CONSOLE_SPLIT_PROTOCOL will be attatched onto each virtual handle to
|
||||
EFI_CONSOLE_SPLIT_PROTOCOL will be attatched onto each virtual handle to
|
||||
identify the splitter type.
|
||||
|
||||
|
||||
Each virtual handle, that supports both the EFI_CONSOLE_SPLIT_PROTOCOL
|
||||
and Console I/O protocol, will be produced in the driver entry point.
|
||||
and Console I/O protocol, will be produced in the driver entry point.
|
||||
The virtual handle are added on driver entry and never removed.
|
||||
Such design ensures sytem function well during none console device situation.
|
||||
|
||||
Copyright (c) 2006 Intel Corporation. <BR>
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Copyright (c) 2006 - 2007 Intel Corporation. <BR>
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
**/
|
||||
|
||||
#include "ConSplitter.h"
|
||||
@@ -104,18 +104,6 @@ STATIC TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
|
||||
0,
|
||||
FALSE,
|
||||
},
|
||||
#if (EFI_SPECIFICATION_VERSION < 0x00020000)
|
||||
{
|
||||
ConSpliterUgaDrawGetMode,
|
||||
ConSpliterUgaDrawSetMode,
|
||||
ConSpliterUgaDrawBlt
|
||||
},
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
(EFI_UGA_PIXEL *) NULL,
|
||||
#else
|
||||
{
|
||||
ConSpliterGraphicsOutputQueryMode,
|
||||
ConSpliterGraphicsOutputSetMode,
|
||||
@@ -126,7 +114,6 @@ STATIC TEXT_OUT_SPLITTER_PRIVATE_DATA mConOut = {
|
||||
(TEXT_OUT_GOP_MODE *) NULL,
|
||||
0,
|
||||
TRUE,
|
||||
#endif
|
||||
{
|
||||
ConSpliterConsoleControlGetMode,
|
||||
ConSpliterConsoleControlSetMode,
|
||||
@@ -170,18 +157,6 @@ STATIC TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
|
||||
0,
|
||||
FALSE,
|
||||
},
|
||||
#if (EFI_SPECIFICATION_VERSION < 0x00020000)
|
||||
{
|
||||
ConSpliterUgaDrawGetMode,
|
||||
ConSpliterUgaDrawSetMode,
|
||||
ConSpliterUgaDrawBlt
|
||||
},
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
(EFI_UGA_PIXEL *) NULL,
|
||||
#else
|
||||
{
|
||||
ConSpliterGraphicsOutputQueryMode,
|
||||
ConSpliterGraphicsOutputSetMode,
|
||||
@@ -192,7 +167,6 @@ STATIC TEXT_OUT_SPLITTER_PRIVATE_DATA mStdErr = {
|
||||
(TEXT_OUT_GOP_MODE *) NULL,
|
||||
0,
|
||||
TRUE,
|
||||
#endif
|
||||
{
|
||||
ConSpliterConsoleControlGetMode,
|
||||
ConSpliterConsoleControlSetMode,
|
||||
@@ -259,12 +233,12 @@ ConSplitterDriverEntry (
|
||||
|
||||
Routine Description:
|
||||
Intialize a virtual console device to act as an agrigator of physical console
|
||||
devices.
|
||||
devices.
|
||||
|
||||
Arguments:
|
||||
ImageHandle - (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
|
||||
SystemTable - (Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
|
||||
Returns:
|
||||
Returns:
|
||||
EFI_SUCCESS
|
||||
|
||||
--*/
|
||||
@@ -318,23 +292,6 @@ Returns:
|
||||
//
|
||||
Status = ConSplitterTextOutConstructor (&mConOut);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
#if (EFI_SPECIFICATION_VERSION < 0x00020000)
|
||||
//
|
||||
// In EFI mode, UGA Draw protocol is installed
|
||||
//
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&mConOut.VirtualHandle,
|
||||
&gEfiSimpleTextOutProtocolGuid,
|
||||
&mConOut.TextOut,
|
||||
&gEfiUgaDrawProtocolGuid,
|
||||
&mConOut.UgaDraw,
|
||||
&gEfiConsoleControlProtocolGuid,
|
||||
&mConOut.ConsoleControl,
|
||||
&gEfiPrimaryConsoleOutDeviceGuid,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
#else
|
||||
//
|
||||
// In UEFI mode, Graphics Output Protocol is installed on virtual handle.
|
||||
//
|
||||
@@ -350,7 +307,6 @@ Returns:
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
#endif
|
||||
|
||||
if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
@@ -388,7 +344,7 @@ Arguments:
|
||||
|
||||
ConInPrivate - A pointer to the TEXT_IN_SPLITTER_PRIVATE_DATA structure.
|
||||
|
||||
Returns:
|
||||
Returns:
|
||||
EFI_OUT_OF_RESOURCES - Out of resources.
|
||||
|
||||
--*/
|
||||
@@ -485,12 +441,6 @@ ConSplitterTextOutConstructor (
|
||||
ConOutPrivate->TextOutQueryData[0].Rows = 25;
|
||||
DevNullTextOutSetMode (ConOutPrivate, 0);
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION < 0x00020000)
|
||||
//
|
||||
// Setup the DevNullUgaDraw to 800 x 600 x 32 bits per pixel
|
||||
//
|
||||
ConSpliterUgaDrawSetMode (&ConOutPrivate->UgaDraw, 800, 600, 32, 60);
|
||||
#else
|
||||
//
|
||||
// Setup resource for mode information in Graphics Output Protocol interface
|
||||
//
|
||||
@@ -526,7 +476,6 @@ ConSplitterTextOutConstructor (
|
||||
//
|
||||
ConOutPrivate->GraphicsOutput.Mode->Mode = 0xffff;
|
||||
ConOutPrivate->GraphicsOutput.SetMode (&ConOutPrivate->GraphicsOutput, 0);
|
||||
#endif
|
||||
|
||||
return Status;
|
||||
}
|
||||
@@ -732,7 +681,7 @@ ConSplitterStart (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
agrogated console device on first call Start for a SimpleTextIn handle.
|
||||
|
||||
Arguments:
|
||||
@@ -793,7 +742,7 @@ ConSplitterConInDriverBindingStart (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
agrogated console device on first call Start for a SimpleTextIn handle.
|
||||
|
||||
Arguments:
|
||||
@@ -840,7 +789,7 @@ ConSplitterSimplePointerDriverBindingStart (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
agrogated console device on first call Start for a SimpleTextIn handle.
|
||||
|
||||
Arguments:
|
||||
@@ -882,7 +831,7 @@ ConSplitterConOutDriverBindingStart (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
agrogated console device on first call Start for a SimpleTextIn handle.
|
||||
|
||||
Arguments:
|
||||
@@ -946,21 +895,6 @@ Returns:
|
||||
Status = ConSplitterTextOutAddDevice (&mConOut, TextOut, GraphicsOutput, UgaDraw);
|
||||
ConSplitterTextOutSetAttribute (&mConOut.TextOut, EFI_TEXT_ATTR (EFI_LIGHTGRAY, EFI_BLACK));
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION < 0x00020000)
|
||||
//
|
||||
// Match the UGA mode data of ConOut with the current mode
|
||||
//
|
||||
if (UgaDraw != NULL) {
|
||||
UgaDraw->GetMode (
|
||||
UgaDraw,
|
||||
&mConOut.UgaHorizontalResolution,
|
||||
&mConOut.UgaVerticalResolution,
|
||||
&mConOut.UgaColorDepth,
|
||||
&mConOut.UgaRefreshRate
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -974,7 +908,7 @@ ConSplitterStdErrDriverBindingStart (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
Start ConSplitter on ControllerHandle, and create the virtual
|
||||
agrogated console device on first call Start for a SimpleTextIn handle.
|
||||
|
||||
Arguments:
|
||||
@@ -1930,7 +1864,6 @@ Returns:
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
ConSplitterAddGraphicsOutputMode (
|
||||
@@ -2116,7 +2049,6 @@ Returns:
|
||||
|
||||
return Status;
|
||||
}
|
||||
#endif
|
||||
|
||||
EFI_STATUS
|
||||
ConSplitterTextOutAddDevice (
|
||||
@@ -2207,21 +2139,15 @@ Returns:
|
||||
MaxMode = Private->TextOutMode.MaxMode;
|
||||
ASSERT (MaxMode >= 1);
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
if ((GraphicsOutput != NULL) || (UgaDraw != NULL)) {
|
||||
ConSplitterAddGraphicsOutputMode (Private, GraphicsOutput, UgaDraw);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (Private->ConsoleOutputMode == EfiConsoleControlScreenGraphics && GraphicsOutput != NULL) {
|
||||
//
|
||||
// We just added a new UGA device in graphics mode
|
||||
//
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
DevNullGopSync (Private, GraphicsOutput, UgaDraw);
|
||||
#else
|
||||
DevNullUgaSync (Private, UgaDraw);
|
||||
#endif
|
||||
} else if ((CurrentMode >= 0) && ((GraphicsOutput != NULL) || (UgaDraw != NULL)) && (CurrentMode < Private->TextOutMode.MaxMode)) {
|
||||
//
|
||||
// The new console supports the same mode of the current console so sync up
|
||||
@@ -2351,7 +2277,7 @@ ConSplitterTextInReset (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The device was reset.
|
||||
EFI_DEVICE_ERROR - The device is not functioning properly and could
|
||||
EFI_DEVICE_ERROR - The device is not functioning properly and could
|
||||
not be reset.
|
||||
|
||||
--*/
|
||||
@@ -2390,7 +2316,7 @@ ConSplitterTextInPrivateReadKeyStroke (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
be used to test for existance of a keystroke via WaitForEvent () call.
|
||||
|
||||
Arguments:
|
||||
@@ -2400,7 +2326,7 @@ ConSplitterTextInPrivateReadKeyStroke (
|
||||
Returns:
|
||||
EFI_SUCCESS - The keystroke information was returned.
|
||||
EFI_NOT_READY - There was no keystroke data availiable.
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
hardware errors.
|
||||
|
||||
--*/
|
||||
@@ -2462,14 +2388,14 @@ ConSpliterConsoleControlLockStdInEvent (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
This timer event will fire when StdIn is locked. It will check the key
|
||||
This timer event will fire when StdIn is locked. It will check the key
|
||||
sequence on StdIn to see if it matches the password. Any error in the
|
||||
password will cause the check to reset. As long a mConIn.PasswordEnabled is
|
||||
TRUE the StdIn splitter will not report any input.
|
||||
|
||||
Arguments:
|
||||
(Standard EFI_EVENT_NOTIFY)
|
||||
|
||||
|
||||
Returns:
|
||||
None
|
||||
|
||||
@@ -2546,7 +2472,7 @@ ConSpliterConsoleControlLockStdIn (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
If Password is NULL unlock the password state variable and set the event
|
||||
If Password is NULL unlock the password state variable and set the event
|
||||
timer. If the Password is too big return an error. If the Password is valid
|
||||
Copy the Password and enable state variable and then arm the periodic timer
|
||||
|
||||
@@ -2589,7 +2515,7 @@ ConSplitterTextInReadKeyStroke (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
be used to test for existance of a keystroke via WaitForEvent () call.
|
||||
If the ConIn is password locked make it look like no keystroke is availible
|
||||
|
||||
@@ -2600,7 +2526,7 @@ ConSplitterTextInReadKeyStroke (
|
||||
Returns:
|
||||
EFI_SUCCESS - The keystroke information was returned.
|
||||
EFI_NOT_READY - There was no keystroke data availiable.
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
hardware errors.
|
||||
|
||||
--*/
|
||||
@@ -2632,7 +2558,7 @@ Routine Description:
|
||||
This event agregates all the events of the ConIn devices in the spliter.
|
||||
If the ConIn is password locked then return.
|
||||
If any events of physical ConIn devices are signaled, signal the ConIn
|
||||
spliter event. This will cause the calling code to call
|
||||
spliter event. This will cause the calling code to call
|
||||
ConSplitterTextInReadKeyStroke ().
|
||||
|
||||
Arguments:
|
||||
@@ -2692,7 +2618,7 @@ ConSplitterSimplePointerReset (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The device was reset.
|
||||
EFI_DEVICE_ERROR - The device is not functioning properly and could
|
||||
EFI_DEVICE_ERROR - The device is not functioning properly and could
|
||||
not be reset.
|
||||
|
||||
--*/
|
||||
@@ -2735,17 +2661,17 @@ ConSplitterSimplePointerPrivateGetState (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
be used to test for existance of a keystroke via WaitForEvent () call.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
State -
|
||||
State -
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The keystroke information was returned.
|
||||
EFI_NOT_READY - There was no keystroke data availiable.
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
hardware errors.
|
||||
|
||||
--*/
|
||||
@@ -2814,18 +2740,18 @@ ConSplitterSimplePointerGetState (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
Reads the next keystroke from the input device. The WaitForKey Event can
|
||||
be used to test for existance of a keystroke via WaitForEvent () call.
|
||||
If the ConIn is password locked make it look like no keystroke is availible
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
State -
|
||||
State -
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The keystroke information was returned.
|
||||
EFI_NOT_READY - There was no keystroke data availiable.
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
EFI_DEVICE_ERROR - The keydtroke information was not returned due to
|
||||
hardware errors.
|
||||
|
||||
--*/
|
||||
@@ -2857,7 +2783,7 @@ Routine Description:
|
||||
This event agregates all the events of the ConIn devices in the spliter.
|
||||
If the ConIn is password locked then return.
|
||||
If any events of physical ConIn devices are signaled, signal the ConIn
|
||||
spliter event. This will cause the calling code to call
|
||||
spliter event. This will cause the calling code to call
|
||||
ConSplitterTextInReadKeyStroke ().
|
||||
|
||||
Arguments:
|
||||
@@ -2913,7 +2839,7 @@ ConSplitterTextOutReset (
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
ExtendedVerification - Driver may perform more exhaustive verfication
|
||||
ExtendedVerification - Driver may perform more exhaustive verfication
|
||||
operation of the device during reset.
|
||||
|
||||
Returns:
|
||||
@@ -2971,17 +2897,17 @@ ConSplitterTextOutOutputString (
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
String - The NULL-terminated Unicode string to be displayed on the output
|
||||
device(s). All output devices must also support the Unicode
|
||||
device(s). All output devices must also support the Unicode
|
||||
drawing defined in this file.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The string was output to the device.
|
||||
EFI_DEVICE_ERROR - The device reported an error while attempting to output
|
||||
the text.
|
||||
EFI_UNSUPPORTED - The output device's mode is not currently in a
|
||||
EFI_UNSUPPORTED - The output device's mode is not currently in a
|
||||
defined text mode.
|
||||
EFI_WARN_UNKNOWN_GLYPH - This warning code indicates that some of the
|
||||
characters in the Unicode string could not be
|
||||
EFI_WARN_UNKNOWN_GLYPH - This warning code indicates that some of the
|
||||
characters in the Unicode string could not be
|
||||
rendered and were skipped.
|
||||
|
||||
--*/
|
||||
@@ -3048,7 +2974,7 @@ ConSplitterTextOutTestString (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Verifies that all characters in a Unicode string can be output to the
|
||||
Verifies that all characters in a Unicode string can be output to the
|
||||
target device.
|
||||
|
||||
Arguments:
|
||||
@@ -3058,8 +2984,8 @@ ConSplitterTextOutTestString (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The device(s) are capable of rendering the output string.
|
||||
EFI_UNSUPPORTED - Some of the characters in the Unicode string cannot be
|
||||
rendered by one or more of the output devices mapped
|
||||
EFI_UNSUPPORTED - Some of the characters in the Unicode string cannot be
|
||||
rendered by one or more of the output devices mapped
|
||||
by the EFI handle.
|
||||
|
||||
--*/
|
||||
@@ -3115,7 +3041,7 @@ ConSplitterTextOutQueryMode (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The requested mode information was returned.
|
||||
EFI_DEVICE_ERROR - The device had an error and could not
|
||||
EFI_DEVICE_ERROR - The device had an error and could not
|
||||
complete the request.
|
||||
EFI_UNSUPPORTED - The mode number was not valid.
|
||||
|
||||
@@ -3132,7 +3058,7 @@ ConSplitterTextOutQueryMode (
|
||||
if ( (ModeNumber > (UINTN)(((UINT32)-1)>>1)) ) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
if ((INT32) ModeNumber >= This->Mode->MaxMode) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
@@ -3165,7 +3091,7 @@ ConSplitterTextOutSetMode (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The requested text mode was set.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The mode number was not valid.
|
||||
|
||||
@@ -3251,7 +3177,7 @@ ConSplitterTextOutSetAttribute (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The attribute was set.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The attribute requested is not defined.
|
||||
|
||||
@@ -3269,7 +3195,7 @@ ConSplitterTextOutSetAttribute (
|
||||
//
|
||||
if ( (Attribute > (UINTN)(((UINT32)-1)>>1)) ) {
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// return the worst status met
|
||||
@@ -3300,7 +3226,7 @@ ConSplitterTextOutClearScreen (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Clears the output device(s) display to the currently selected background
|
||||
Clears the output device(s) display to the currently selected background
|
||||
color.
|
||||
|
||||
Arguments:
|
||||
@@ -3308,7 +3234,7 @@ ConSplitterTextOutClearScreen (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The operation completed successfully.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode.
|
||||
|
||||
@@ -3362,9 +3288,9 @@ ConSplitterTextOutSetCursorPosition (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The operation completed successfully.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode, or the
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode, or the
|
||||
cursor position is invalid for the current mode.
|
||||
|
||||
--*/
|
||||
@@ -3424,7 +3350,7 @@ ConSplitterTextOutEnableCursor (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The operation completed successfully.
|
||||
EFI_DEVICE_ERROR - The device had an error and could not complete the
|
||||
EFI_DEVICE_ERROR - The device had an error and could not complete the
|
||||
request, or the device does not support changing
|
||||
the cursor mode.
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode.
|
||||
|
@@ -1,16 +1,16 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
|
||||
ConSplitterGraphics.c
|
||||
|
||||
Abstract:
|
||||
@@ -96,7 +96,7 @@ ConSpliterConsoleControlSetMode (
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
Mode - Mode to set the
|
||||
Mode - Mode to set the
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Mode information returned.
|
||||
@@ -118,7 +118,7 @@ ConSpliterConsoleControlSetMode (
|
||||
|
||||
//
|
||||
// Judge current mode with wanted mode at first.
|
||||
//
|
||||
//
|
||||
if (Private->ConsoleOutputMode == Mode) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
@@ -147,11 +147,7 @@ ConSpliterConsoleControlSetMode (
|
||||
//
|
||||
if ((Mode == EfiConsoleControlScreenGraphics) &&((TextAndGop->GraphicsOutput != NULL) || (TextAndGop->UgaDraw != NULL))) {
|
||||
TextAndGop->TextOutEnabled = FALSE;
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
DevNullGopSync (Private, TextAndGop->GraphicsOutput, TextAndGop->UgaDraw);
|
||||
#else
|
||||
DevNullUgaSync (Private, TextAndGop->UgaDraw);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -162,7 +158,6 @@ ConSpliterConsoleControlSetMode (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConSpliterGraphicsOutputQueryMode (
|
||||
@@ -374,7 +369,7 @@ DevNullGraphicsOutputBlt (
|
||||
)
|
||||
{
|
||||
UINTN SrcY;
|
||||
BOOLEAN Forward;
|
||||
BOOLEAN Forward;
|
||||
UINTN Index;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltPtr;
|
||||
EFI_GRAPHICS_OUTPUT_BLT_PIXEL *ScreenPtr;
|
||||
@@ -658,396 +653,6 @@ DevNullGopSync (
|
||||
}
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConSpliterUgaDrawGetMode (
|
||||
IN EFI_UGA_DRAW_PROTOCOL *This,
|
||||
OUT UINT32 *HorizontalResolution,
|
||||
OUT UINT32 *VerticalResolution,
|
||||
OUT UINT32 *ColorDepth,
|
||||
OUT UINT32 *RefreshRate
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the current video mode information.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
HorizontalResolution - Current video horizontal resolution in pixels
|
||||
VerticalResolution - Current video vertical resolution in pixels
|
||||
ColorDepth - Current video color depth in bits per pixel
|
||||
RefreshRate - Current video refresh rate in Hz.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Mode information returned.
|
||||
EFI_NOT_STARTED - Video display is not initialized. Call SetMode ()
|
||||
EFI_INVALID_PARAMETER - One of the input args was NULL.
|
||||
|
||||
--*/
|
||||
{
|
||||
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
|
||||
|
||||
if (!(HorizontalResolution && VerticalResolution && RefreshRate && ColorDepth)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
//
|
||||
// retrieve private data
|
||||
//
|
||||
Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
|
||||
|
||||
*HorizontalResolution = Private->UgaHorizontalResolution;
|
||||
*VerticalResolution = Private->UgaVerticalResolution;
|
||||
*ColorDepth = Private->UgaColorDepth;
|
||||
*RefreshRate = Private->UgaRefreshRate;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConSpliterUgaDrawSetMode (
|
||||
IN EFI_UGA_DRAW_PROTOCOL *This,
|
||||
IN UINT32 HorizontalResolution,
|
||||
IN UINT32 VerticalResolution,
|
||||
IN UINT32 ColorDepth,
|
||||
IN UINT32 RefreshRate
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Return the current video mode information.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
HorizontalResolution - Current video horizontal resolution in pixels
|
||||
VerticalResolution - Current video vertical resolution in pixels
|
||||
ColorDepth - Current video color depth in bits per pixel
|
||||
RefreshRate - Current video refresh rate in Hz.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - Mode information returned.
|
||||
EFI_NOT_STARTED - Video display is not initialized. Call SetMode ()
|
||||
EFI_OUT_OF_RESOURCES - Out of resources.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
|
||||
UINTN Index;
|
||||
EFI_STATUS ReturnStatus;
|
||||
UINTN Size;
|
||||
|
||||
Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
|
||||
|
||||
//
|
||||
// UgaDevNullSetMode ()
|
||||
//
|
||||
ReturnStatus = EFI_SUCCESS;
|
||||
|
||||
//
|
||||
// Free the old version
|
||||
//
|
||||
FreePool (Private->UgaBlt);
|
||||
|
||||
//
|
||||
// Allocate the virtual Blt buffer
|
||||
//
|
||||
Size = HorizontalResolution * VerticalResolution * sizeof (EFI_UGA_PIXEL);
|
||||
Private->UgaBlt = AllocateZeroPool (Size);
|
||||
if (Private->UgaBlt == NULL) {
|
||||
return EFI_OUT_OF_RESOURCES;
|
||||
}
|
||||
|
||||
//
|
||||
// Update the Mode data
|
||||
//
|
||||
Private->UgaHorizontalResolution = HorizontalResolution;
|
||||
Private->UgaVerticalResolution = VerticalResolution;
|
||||
Private->UgaColorDepth = ColorDepth;
|
||||
Private->UgaRefreshRate = RefreshRate;
|
||||
|
||||
if (Private->ConsoleOutputMode != EfiConsoleControlScreenGraphics) {
|
||||
return ReturnStatus;
|
||||
}
|
||||
//
|
||||
// return the worst status met
|
||||
//
|
||||
for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {
|
||||
if (Private->TextOutList[Index].UgaDraw != NULL) {
|
||||
Status = Private->TextOutList[Index].UgaDraw->SetMode (
|
||||
Private->TextOutList[Index].UgaDraw,
|
||||
HorizontalResolution,
|
||||
VerticalResolution,
|
||||
ColorDepth,
|
||||
RefreshRate
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ReturnStatus = Status;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ReturnStatus;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
DevNullUgaBlt (
|
||||
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
|
||||
IN EFI_UGA_PIXEL *BltBuffer, OPTIONAL
|
||||
IN EFI_UGA_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
|
||||
)
|
||||
{
|
||||
UINTN SrcY;
|
||||
BOOLEAN Forward;
|
||||
UINTN Index;
|
||||
EFI_UGA_PIXEL *BltPtr;
|
||||
EFI_UGA_PIXEL *ScreenPtr;
|
||||
UINT32 HorizontalResolution;
|
||||
UINT32 VerticalResolution;
|
||||
|
||||
if ((BltOperation < 0) || (BltOperation >= EfiUgaBltMax)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (Width == 0 || Height == 0) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (Delta == 0) {
|
||||
Delta = Width * sizeof (EFI_UGA_PIXEL);
|
||||
}
|
||||
|
||||
HorizontalResolution = Private->UgaHorizontalResolution;
|
||||
VerticalResolution = Private->UgaVerticalResolution;
|
||||
|
||||
//
|
||||
// We need to fill the Virtual Screen buffer with the blt data.
|
||||
//
|
||||
if (BltOperation == EfiUgaVideoToBltBuffer) {
|
||||
//
|
||||
// Video to BltBuffer: Source is Video, destination is BltBuffer
|
||||
//
|
||||
if ((SourceY + Height) > VerticalResolution) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if ((SourceX + Width) > HorizontalResolution) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
BltPtr = (EFI_UGA_PIXEL *) ((UINT8 *) BltBuffer + DestinationY * Delta + DestinationX * sizeof (EFI_UGA_PIXEL));
|
||||
ScreenPtr = &Private->UgaBlt[SourceY * HorizontalResolution + SourceX];
|
||||
while (Height) {
|
||||
CopyMem (BltPtr, ScreenPtr, Width * sizeof (EFI_UGA_PIXEL));
|
||||
BltPtr = (EFI_UGA_PIXEL *) ((UINT8 *) BltPtr + Delta);
|
||||
ScreenPtr += HorizontalResolution;
|
||||
Height--;
|
||||
}
|
||||
} else {
|
||||
//
|
||||
// BltBuffer to Video: Source is BltBuffer, destination is Video
|
||||
//
|
||||
if (DestinationY + Height > VerticalResolution) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if (DestinationX + Width > HorizontalResolution) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
if ((BltOperation == EfiUgaVideoToVideo) && (DestinationY > SourceY)) {
|
||||
//
|
||||
// Copy backwards, only care the Video to Video Blt
|
||||
//
|
||||
ScreenPtr = &Private->UgaBlt[(DestinationY + Height - 1) * HorizontalResolution + DestinationX];
|
||||
SrcY = SourceY + Height - 1;
|
||||
Forward = FALSE;
|
||||
} else {
|
||||
//
|
||||
// Copy forwards, for other cases
|
||||
//
|
||||
ScreenPtr = &Private->UgaBlt[DestinationY * HorizontalResolution + DestinationX];
|
||||
SrcY = SourceY;
|
||||
Forward = TRUE;
|
||||
}
|
||||
|
||||
while (Height != 0) {
|
||||
if (BltOperation == EfiUgaVideoFill) {
|
||||
for (Index = 0; Index < Width; Index++) {
|
||||
ScreenPtr[Index] = *BltBuffer;
|
||||
}
|
||||
} else {
|
||||
if (BltOperation == EfiUgaBltBufferToVideo) {
|
||||
BltPtr = (EFI_UGA_PIXEL *) ((UINT8 *) BltBuffer + SrcY * Delta + SourceX * sizeof (EFI_UGA_PIXEL));
|
||||
} else {
|
||||
BltPtr = &Private->UgaBlt[SrcY * HorizontalResolution + SourceX];
|
||||
}
|
||||
|
||||
CopyMem (ScreenPtr, BltPtr, Width * sizeof (EFI_UGA_PIXEL));
|
||||
}
|
||||
|
||||
if (Forward) {
|
||||
ScreenPtr += HorizontalResolution;
|
||||
SrcY ++;
|
||||
} else {
|
||||
ScreenPtr -= HorizontalResolution;
|
||||
SrcY --;
|
||||
}
|
||||
Height--;
|
||||
}
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ConSpliterUgaDrawBlt (
|
||||
IN EFI_UGA_DRAW_PROTOCOL *This,
|
||||
IN EFI_UGA_PIXEL *BltBuffer, OPTIONAL
|
||||
IN EFI_UGA_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
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
The following table defines actions for BltOperations:
|
||||
EfiUgaVideoFill - Write data from the BltBuffer pixel (SourceX, SourceY)
|
||||
directly to every pixel of the video display rectangle
|
||||
(DestinationX, DestinationY)
|
||||
(DestinationX + Width, DestinationY + Height).
|
||||
Only one pixel will be used from the BltBuffer. Delta is NOT used.
|
||||
EfiUgaVideoToBltBuffer - Read data from the video display rectangle
|
||||
(SourceX, SourceY) (SourceX + Width, SourceY + Height) and place it in
|
||||
the BltBuffer rectangle (DestinationX, DestinationY )
|
||||
(DestinationX + Width, DestinationY + Height). If DestinationX or
|
||||
DestinationY is not zero then Delta must be set to the length in bytes
|
||||
of a row in the BltBuffer.
|
||||
EfiUgaBltBufferToVideo - Write data from the BltBuffer rectangle
|
||||
(SourceX, SourceY) (SourceX + Width, SourceY + Height) directly to the
|
||||
video display rectangle (DestinationX, DestinationY)
|
||||
(DestinationX + Width, DestinationY + Height). If SourceX or SourceY is
|
||||
not zero then Delta must be set to the length in bytes of a row in the
|
||||
BltBuffer.
|
||||
EfiUgaVideoToVideo - Copy from the video display rectangle
|
||||
(SourceX, SourceY) (SourceX + Width, SourceY + Height) .
|
||||
to the video display rectangle (DestinationX, DestinationY)
|
||||
(DestinationX + Width, DestinationY + Height).
|
||||
The BltBuffer and Delta are not used in this mode.
|
||||
|
||||
Arguments:
|
||||
This - Protocol instance pointer.
|
||||
BltBuffer - Buffer containing data to blit into video buffer. This
|
||||
buffer has a size of Width*Height*sizeof(EFI_UGA_PIXEL)
|
||||
BltOperation - Operation to perform on BlitBuffer and video memory
|
||||
SourceX - X coordinate of source for the BltBuffer.
|
||||
SourceY - Y coordinate of source for the BltBuffer.
|
||||
DestinationX - X coordinate of destination for the BltBuffer.
|
||||
DestinationY - Y coordinate of destination for the BltBuffer.
|
||||
Width - Width of rectangle in BltBuffer in pixels.
|
||||
Height - Hight of rectangle in BltBuffer in pixels.
|
||||
Delta -
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The Blt operation completed.
|
||||
EFI_INVALID_PARAMETER - BltOperation is not valid.
|
||||
EFI_DEVICE_ERROR - A hardware error occured writting to the video
|
||||
buffer.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
TEXT_OUT_SPLITTER_PRIVATE_DATA *Private;
|
||||
UINTN Index;
|
||||
EFI_STATUS ReturnStatus;
|
||||
|
||||
Private = UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS (This);
|
||||
|
||||
//
|
||||
// Sync up DevNull UGA device
|
||||
//
|
||||
ReturnStatus = DevNullUgaBlt (
|
||||
Private,
|
||||
BltBuffer,
|
||||
BltOperation,
|
||||
SourceX,
|
||||
SourceY,
|
||||
DestinationX,
|
||||
DestinationY,
|
||||
Width,
|
||||
Height,
|
||||
Delta
|
||||
);
|
||||
if (Private->ConsoleOutputMode != EfiConsoleControlScreenGraphics) {
|
||||
return ReturnStatus;
|
||||
}
|
||||
//
|
||||
// return the worst status met
|
||||
//
|
||||
for (Index = 0; Index < Private->CurrentNumberOfConsoles; Index++) {
|
||||
if (Private->TextOutList[Index].UgaDraw != NULL) {
|
||||
Status = Private->TextOutList[Index].UgaDraw->Blt (
|
||||
Private->TextOutList[Index].UgaDraw,
|
||||
BltBuffer,
|
||||
BltOperation,
|
||||
SourceX,
|
||||
SourceY,
|
||||
DestinationX,
|
||||
DestinationY,
|
||||
Width,
|
||||
Height,
|
||||
Delta
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
ReturnStatus = Status;
|
||||
} else if (BltOperation == EfiUgaVideoToBltBuffer) {
|
||||
//
|
||||
// Only need to read the data into buffer one time
|
||||
//
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ReturnStatus;
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
DevNullUgaSync (
|
||||
IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,
|
||||
IN EFI_UGA_DRAW_PROTOCOL *UgaDraw
|
||||
)
|
||||
{
|
||||
return UgaDraw->Blt (
|
||||
UgaDraw,
|
||||
Private->UgaBlt,
|
||||
EfiUgaBltBufferToVideo,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
Private->UgaHorizontalResolution,
|
||||
Private->UgaVerticalResolution,
|
||||
Private->UgaHorizontalResolution * sizeof (EFI_UGA_PIXEL)
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
EFI_STATUS
|
||||
DevNullTextOutOutputString (
|
||||
@@ -1063,17 +668,17 @@ DevNullTextOutOutputString (
|
||||
Private - Pointer to the console output splitter's private data. It
|
||||
indicates the calling context.
|
||||
WString - The NULL-terminated Unicode string to be displayed on the output
|
||||
device(s). All output devices must also support the Unicode
|
||||
device(s). All output devices must also support the Unicode
|
||||
drawing defined in this file.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The string was output to the device.
|
||||
EFI_DEVICE_ERROR - The device reported an error while attempting to
|
||||
EFI_DEVICE_ERROR - The device reported an error while attempting to
|
||||
output the text.
|
||||
EFI_UNSUPPORTED - The output device's mode is not currently in a
|
||||
EFI_UNSUPPORTED - The output device's mode is not currently in a
|
||||
defined text mode.
|
||||
EFI_WARN_UNKNOWN_GLYPH - This warning code indicates that some of the
|
||||
characters in the Unicode string could not be
|
||||
EFI_WARN_UNKNOWN_GLYPH - This warning code indicates that some of the
|
||||
characters in the Unicode string could not be
|
||||
rendered and were skipped.
|
||||
|
||||
--*/
|
||||
@@ -1285,7 +890,7 @@ DevNullTextOutSetMode (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The requested text mode was set.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The mode number was not valid.
|
||||
EFI_OUT_OF_RESOURCES - Out of resources.
|
||||
@@ -1314,7 +919,7 @@ DevNullTextOutSetMode (
|
||||
Private->TextOutMode.Mode = (INT32) ModeNumber;
|
||||
Private->DevNullColumns = Column;
|
||||
Private->DevNullRows = Row;
|
||||
|
||||
|
||||
if (Private->DevNullScreen != NULL) {
|
||||
FreePool (Private->DevNullScreen);
|
||||
}
|
||||
@@ -1348,7 +953,7 @@ DevNullTextOutClearScreen (
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Clears the output device(s) display to the currently selected background
|
||||
Clears the output device(s) display to the currently selected background
|
||||
color.
|
||||
|
||||
Arguments:
|
||||
@@ -1356,7 +961,7 @@ DevNullTextOutClearScreen (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The operation completed successfully.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode.
|
||||
|
||||
@@ -1412,9 +1017,9 @@ DevNullTextOutSetCursorPosition (
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The operation completed successfully.
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
EFI_DEVICE_ERROR - The device had an error and
|
||||
could not complete the request.
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode, or the
|
||||
EFI_UNSUPPORTED - The output device is not in a valid text mode, or the
|
||||
cursor position is invalid for the current mode.
|
||||
|
||||
--*/
|
||||
@@ -1437,22 +1042,22 @@ DevNullTextOutEnableCursor (
|
||||
)
|
||||
/*++
|
||||
Routine Description:
|
||||
|
||||
|
||||
Implements SIMPLE_TEXT_OUTPUT.EnableCursor().
|
||||
In this driver, the cursor cannot be hidden.
|
||||
|
||||
In this driver, the cursor cannot be hidden.
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
Private - Indicates the calling context.
|
||||
|
||||
Visible - If TRUE, the cursor is set to be visible, If FALSE, the cursor
|
||||
is set to be invisible.
|
||||
|
||||
Visible - If TRUE, the cursor is set to be visible, If FALSE, the cursor
|
||||
is set to be invisible.
|
||||
|
||||
Returns:
|
||||
|
||||
|
||||
EFI_SUCCESS - The request is valid.
|
||||
|
||||
|
||||
|
||||
|
||||
--*/
|
||||
{
|
||||
Private->TextOutMode.CursorVisible = Visible;
|
||||
@@ -1467,15 +1072,15 @@ DevNullSyncGopStdOut (
|
||||
/*++
|
||||
Routine Description:
|
||||
Take the DevNull TextOut device and update the Simple Text Out on every
|
||||
UGA device.
|
||||
|
||||
UGA device.
|
||||
|
||||
Arguments:
|
||||
Private - Indicates the calling context.
|
||||
|
||||
Returns:
|
||||
EFI_SUCCESS - The request is valid.
|
||||
other - Return status of TextOut->OutputString ()
|
||||
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
@@ -27,7 +27,7 @@ Revision History
|
||||
ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;
|
||||
|
||||
//
|
||||
// This is a temperary function which will be removed
|
||||
// This is a temperary function which will be removed
|
||||
// when EfiAcquireLock in UefiLib can handle the
|
||||
// the call in UEFI Runtimer driver in RT phase.
|
||||
//
|
||||
@@ -43,7 +43,7 @@ AcquireLockOnlyAtBootTime (
|
||||
}
|
||||
|
||||
//
|
||||
// This is a temperary function which will be removed
|
||||
// This is a temperary function which will be removed
|
||||
// when EfiAcquireLock in UefiLib can handle the
|
||||
// the call in UEFI Runtimer driver in RT phase.
|
||||
//
|
||||
@@ -426,7 +426,7 @@ Returns:
|
||||
Done:
|
||||
ReleaseLockOnlyAtBootTime (&Global->VariableServicesLock);
|
||||
return Status;
|
||||
|
||||
|
||||
}
|
||||
|
||||
EFI_STATUS
|
||||
@@ -485,8 +485,8 @@ Returns:
|
||||
goto Done;
|
||||
} else if (!EFI_ERROR (Status) && Variable.Volatile && EfiAtRuntime()) {
|
||||
//
|
||||
// If EfiAtRuntime and the variable is Volatile and Runtime Access,
|
||||
// the volatile is ReadOnly, and SetVariable should be aborted and
|
||||
// If EfiAtRuntime and the variable is Volatile and Runtime Access,
|
||||
// the volatile is ReadOnly, and SetVariable should be aborted and
|
||||
// return EFI_WRITE_PROTECTED.
|
||||
//
|
||||
Status = EFI_WRITE_PROTECTED;
|
||||
@@ -622,7 +622,6 @@ Done:
|
||||
return Status;
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QueryVariableInfo (
|
||||
@@ -693,7 +692,7 @@ Returns:
|
||||
}
|
||||
|
||||
AcquireLockOnlyAtBootTime(&Global->VariableServicesLock);
|
||||
|
||||
|
||||
if((Attributes & EFI_VARIABLE_NON_VOLATILE) == 0) {
|
||||
//
|
||||
// Query is Volatile related.
|
||||
@@ -747,7 +746,6 @@ Returns:
|
||||
ReleaseLockOnlyAtBootTime (&Global->VariableServicesLock);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
@@ -827,7 +825,7 @@ Returns:
|
||||
}
|
||||
|
||||
EfiInitializeLock(&mVariableModuleGlobal->VariableGlobal[Physical].VariableServicesLock, EFI_TPL_NOTIFY);
|
||||
|
||||
|
||||
//
|
||||
// Intialize volatile variable store
|
||||
//
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -114,7 +114,6 @@ Returns:
|
||||
);
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RuntimeServiceQueryVariableInfo (
|
||||
@@ -142,7 +141,6 @@ Returns:
|
||||
mVariableModuleGlobal->FvbInstance
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
VOID
|
||||
EFIAPI
|
||||
@@ -196,9 +194,7 @@ Returns:
|
||||
SystemTable->RuntimeServices->GetVariable = RuntimeServiceGetVariable;
|
||||
SystemTable->RuntimeServices->GetNextVariableName = RuntimeServiceGetNextVariableName;
|
||||
SystemTable->RuntimeServices->SetVariable = RuntimeServiceSetVariable;
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
SystemTable->RuntimeServices->QueryVariableInfo = RuntimeServiceQueryVariableInfo;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Now install the Variable Runtime Architectural Protocol on a new handle
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -89,7 +89,6 @@ Returns:
|
||||
);
|
||||
return ReturnVal;
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
case EsalQueryVariableInfo:
|
||||
ReturnVal.Status = QueryVariableInfo (
|
||||
(UINT32) Arg2,
|
||||
@@ -100,7 +99,6 @@ Returns:
|
||||
Global->FvbInstance
|
||||
);
|
||||
return ReturnVal;
|
||||
#endif
|
||||
|
||||
default:
|
||||
ReturnVal.Status = EFI_SAL_INVALID_ARGUMENT;
|
||||
@@ -173,10 +171,8 @@ Returns:
|
||||
EsalGetNextVariableName,
|
||||
EsalVariableCommonEntry,
|
||||
EsalSetVariable,
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EsalVariableCommonEntry,
|
||||
EsalQueryVariableInfo,
|
||||
#endif
|
||||
NULL
|
||||
);
|
||||
|
||||
|
@@ -1,18 +1,18 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
Variable.h
|
||||
|
||||
|
||||
Abstract:
|
||||
|
||||
--*/
|
||||
@@ -26,7 +26,7 @@ Abstract:
|
||||
|
||||
//
|
||||
// BugBug: We need relcate the head file.
|
||||
//
|
||||
//
|
||||
#include <Common/Variable.h>
|
||||
|
||||
#if defined (MDE_CPU_IPF)
|
||||
@@ -143,7 +143,6 @@ SetVariable (
|
||||
)
|
||||
;
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QueryVariableInfo (
|
||||
@@ -155,6 +154,5 @@ QueryVariableInfo (
|
||||
IN UINT32 Instance
|
||||
)
|
||||
;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -22,24 +22,24 @@ Abstract:
|
||||
THIS IS VERY DANGEROUS CODE BE VERY CAREFUL IF YOU CHANGE IT
|
||||
|
||||
The transition for calling EFI Runtime functions in physical mode to calling
|
||||
them in virtual mode is very very complex. Every pointer in needs to be
|
||||
them in virtual mode is very very complex. Every pointer in needs to be
|
||||
converted from physical mode to virtual mode. Be very careful walking linked
|
||||
lists! Then to make it really hard the code it's self needs be relocated into
|
||||
the new virtual address space.
|
||||
|
||||
So here is the concept. The code in this module will never ever be called in
|
||||
virtual mode. This is the code that collects the information needed to convert
|
||||
to virtual mode (DXE core registers runtime stuff with this code). Since this
|
||||
to virtual mode (DXE core registers runtime stuff with this code). Since this
|
||||
code is used to fixup all runtime images, it CAN NOT fix it's self up. So some
|
||||
code has to stay behind and that is us.
|
||||
|
||||
Also you need to be careful about when you allocate memory, as once we are in
|
||||
runtime (including our EVT_SIGNAL_EXIT_BOOT_SERVICES event) you can no longer
|
||||
Also you need to be careful about when you allocate memory, as once we are in
|
||||
runtime (including our EVT_SIGNAL_EXIT_BOOT_SERVICES event) you can no longer
|
||||
allocate memory.
|
||||
|
||||
Any runtime driver that gets loaded before us will not be callable in virtual
|
||||
mode. This is due to the fact that the DXE core can not register the info
|
||||
needed with us. This is good, since it keeps the code in this file from
|
||||
Any runtime driver that gets loaded before us will not be callable in virtual
|
||||
mode. This is due to the fact that the DXE core can not register the info
|
||||
needed with us. This is good, since it keeps the code in this file from
|
||||
getting registered.
|
||||
|
||||
|
||||
@@ -79,8 +79,8 @@ EFI_RUNTIME_ARCH_PROTOCOL mRuntime = {
|
||||
// prevent people from having pointer math bugs in their code.
|
||||
// now you have to use *DescriptorSize to make things work.
|
||||
//
|
||||
sizeof (EFI_MEMORY_DESCRIPTOR) + sizeof (UINT64) - (sizeof (EFI_MEMORY_DESCRIPTOR) % sizeof (UINT64)),
|
||||
EFI_MEMORY_DESCRIPTOR_VERSION,
|
||||
sizeof (EFI_MEMORY_DESCRIPTOR) + sizeof (UINT64) - (sizeof (EFI_MEMORY_DESCRIPTOR) % sizeof (UINT64)),
|
||||
EFI_MEMORY_DESCRIPTOR_VERSION,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
@@ -136,7 +136,7 @@ Routine Description:
|
||||
Determines the new virtual address that is to be used on subsequent memory accesses.
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
DebugDisposition - Supplies type information for the pointer being converted.
|
||||
ConvertAddress - A pointer to a pointer that is to be fixed to be the value needed
|
||||
for the new virtual address mappings being applied.
|
||||
@@ -234,11 +234,11 @@ RuntimeDriverConvertInternalPointer (
|
||||
|
||||
Routine Description:
|
||||
|
||||
Determines the new virtual address that is to be used on subsequent memory accesses
|
||||
Determines the new virtual address that is to be used on subsequent memory accesses
|
||||
for internal pointers.
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
ConvertAddress - A pointer to a pointer that is to be fixed to be the value needed
|
||||
for the new virtual address mappings being applied.
|
||||
|
||||
@@ -269,7 +269,7 @@ Routine Description:
|
||||
Changes the runtime addressing mode of EFI firmware from physical to virtual.
|
||||
|
||||
Arguments:
|
||||
|
||||
|
||||
MemoryMapSize - The size in bytes of VirtualMap.
|
||||
DescriptorSize - The size in bytes of an entry in the VirtualMap.
|
||||
DescriptorVersion - The version of the structure entries in VirtualMap.
|
||||
@@ -287,7 +287,7 @@ Returns:
|
||||
EFI_NOT_FOUND - A virtual address was supplied for an address that is not found
|
||||
in the memory map.
|
||||
|
||||
--*/
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_RUNTIME_EVENT_ENTRY *RuntimeEvent;
|
||||
@@ -298,9 +298,7 @@ Returns:
|
||||
EFI_DRIVER_OS_HANDOFF_HEADER *DriverOsHandoffHeader;
|
||||
EFI_DRIVER_OS_HANDOFF *DriverOsHandoff;
|
||||
EFI_PHYSICAL_ADDRESS VirtImageBase;
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_CAPSULE_TABLE *CapsuleTable;
|
||||
#endif
|
||||
EFI_CAPSULE_TABLE *CapsuleTable;
|
||||
|
||||
//
|
||||
// Can only switch to virtual addresses once the memory map is locked down,
|
||||
@@ -372,7 +370,7 @@ Returns:
|
||||
(UINTN) RuntimeImage->ImageSize,
|
||||
RuntimeImage->RelocationData
|
||||
);
|
||||
|
||||
|
||||
InvalidateInstructionCacheRange (RuntimeImage->ImageBase, (UINTN)RuntimeImage->ImageSize);
|
||||
}
|
||||
}
|
||||
@@ -386,18 +384,13 @@ Returns:
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->GetWakeupTime);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->SetWakeupTime);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->ResetSystem);
|
||||
#if (EFI_SPECIFICATION_VERSION < 0x00020000)
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->ReportStatusCode);
|
||||
#endif
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->GetNextHighMonotonicCount);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->GetVariable);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->SetVariable);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->GetNextVariableName);
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->QueryVariableInfo);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->UpdateCapsule);
|
||||
RuntimeDriverConvertInternalPointer ((VOID **) &gRT->QueryCapsuleCapabilities);
|
||||
#endif
|
||||
RuntimeDriverCalculateEfiHdrCrc (&gRT->Hdr);
|
||||
|
||||
//
|
||||
@@ -421,15 +414,13 @@ Returns:
|
||||
RuntimeDriverConvertPointer (EFI_OPTIONAL_POINTER, (VOID **) &(gST->ConfigurationTable[Index].VendorTable));
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
if (CompareGuid (&gEfiCapsuleGuid, &(gST->ConfigurationTable[Index].VendorGuid))) {
|
||||
CapsuleTable = gST->ConfigurationTable[Index].VendorTable;
|
||||
for (Index1 = 0; Index1 < CapsuleTable->CapsuleArrayNumber; Index1++) {
|
||||
RuntimeDriverConvertPointer (EFI_OPTIONAL_POINTER, (VOID **) &CapsuleTable->CapsulePtr[Index1]);
|
||||
}
|
||||
}
|
||||
RuntimeDriverConvertPointer (EFI_OPTIONAL_POINTER, (VOID **) &(gST->ConfigurationTable[Index].VendorTable));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
//
|
||||
// Convert the runtime fields of the EFI System Table and recompute the CRC-32
|
||||
@@ -512,6 +503,6 @@ Returns:
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -25,12 +25,10 @@ Revision History
|
||||
#include "Ui.h"
|
||||
#include "Colors.h"
|
||||
|
||||
#ifndef EFI_MAX
|
||||
#define EFI_MAX(_a, _b) ((_a) > (_b) ? (_a) : (_b))
|
||||
#endif
|
||||
|
||||
EFI_STATUS
|
||||
ReadString (
|
||||
ReadString(
|
||||
IN UI_MENU_OPTION *MenuOption,
|
||||
OUT CHAR16 *StringPtr
|
||||
)
|
||||
@@ -619,7 +617,7 @@ GetNumericInput (
|
||||
|
||||
Routine Description:
|
||||
|
||||
This routine reads a numeric value from the user input.
|
||||
This routine reads a numeric value from the user input.
|
||||
|
||||
Arguments:
|
||||
|
||||
@@ -630,14 +628,14 @@ Arguments:
|
||||
ManualInput - If the input is manual or not.
|
||||
|
||||
Tag - Pointer to all the attributes and values associated with a tag.
|
||||
|
||||
|
||||
Value - Pointer to the numeric value that is going to be read.
|
||||
|
||||
Returns:
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - If numerical input is read successfully
|
||||
EFI_DEVICE_ERROR - If operation fails
|
||||
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_INPUT_KEY Key;
|
||||
@@ -735,9 +733,9 @@ TheKey2:
|
||||
Tag->Value = (UINT16) Number;
|
||||
*Value = (UINT16) Number;
|
||||
UnicodeValueToString (
|
||||
FormattedNumber,
|
||||
FALSE,
|
||||
(UINTN) Number,
|
||||
FormattedNumber,
|
||||
FALSE,
|
||||
(UINTN) Number,
|
||||
(sizeof (FormattedNumber) / sizeof (FormattedNumber[0]))
|
||||
);
|
||||
Number = (UINT16) GetStringWidth (FormattedNumber);
|
||||
@@ -1471,7 +1469,7 @@ TheKey:
|
||||
} else {
|
||||
if (Key.ScanCode == SCAN_UP) {
|
||||
TempIndex = Index - 1;
|
||||
|
||||
|
||||
//
|
||||
// Keep going until meets meaningful tag.
|
||||
//
|
||||
|
@@ -1,27 +1,29 @@
|
||||
/*++
|
||||
/** @file
|
||||
Variable worker functions.
|
||||
|
||||
Copyright (c) 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
Copyright (c) 2006, Intel Corporation<BR>
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
VariableWorker.c
|
||||
|
||||
Abstract:
|
||||
|
||||
Framework PEIM to provide the Variable functionality
|
||||
|
||||
--*/
|
||||
**/
|
||||
|
||||
#include <Variable.h>
|
||||
|
||||
|
||||
/**
|
||||
Get one variable by the index count.
|
||||
|
||||
@param IndexTable The pointer to variable index table.
|
||||
@param Count The index count of variable in index table.
|
||||
|
||||
@return The pointer to variable header indexed by count.
|
||||
|
||||
**/
|
||||
VARIABLE_HEADER *
|
||||
GetVariableByIndex (
|
||||
IN VARIABLE_INDEX_TABLE *IndexTable,
|
||||
@@ -31,6 +33,17 @@ GetVariableByIndex (
|
||||
return (VARIABLE_HEADER *) (UINTN) ((((UINT32)IndexTable->Index[Count]) << 2) + ((UINT32)(UINTN)IndexTable->StartPtr & 0xFFFC0000) );
|
||||
}
|
||||
|
||||
/**
|
||||
Record Variable in VariableIndex HOB.
|
||||
|
||||
Record Variable in VariableIndex HOB and update the length of variable index table.
|
||||
|
||||
@param IndexTable The pointer to variable index table.
|
||||
@param Variable The pointer to the variable that will be recorded.
|
||||
|
||||
@retval VOID
|
||||
|
||||
**/
|
||||
VOID
|
||||
VariableIndexTableUpdate (
|
||||
IN OUT VARIABLE_INDEX_TABLE *IndexTable,
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006, Intel Corporation
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
@@ -150,12 +150,32 @@ Returns:
|
||||
--*/
|
||||
;
|
||||
|
||||
/**
|
||||
Get one variable by the index count.
|
||||
|
||||
@param IndexTable The pointer to variable index table.
|
||||
@param Count The index count of variable in index table.
|
||||
|
||||
@return The pointer to variable header indexed by count.
|
||||
|
||||
**/
|
||||
VARIABLE_HEADER *
|
||||
GetVariableByIndex (
|
||||
IN VARIABLE_INDEX_TABLE *IndexTable,
|
||||
IN UINT32 Count
|
||||
);
|
||||
|
||||
/**
|
||||
Record Variable in VariableIndex HOB.
|
||||
|
||||
Record Variable in VariableIndex HOB and update the length of variable index table.
|
||||
|
||||
@param IndexTable The pointer to variable index table.
|
||||
@param Variable The pointer to the variable that will be recorded.
|
||||
|
||||
@retval VOID
|
||||
|
||||
**/
|
||||
VOID
|
||||
VariableIndexTableUpdate (
|
||||
IN OUT VARIABLE_INDEX_TABLE *IndexTable,
|
||||
|
@@ -21,7 +21,15 @@ Abstract:
|
||||
|
||||
#include <Variable.h>
|
||||
|
||||
/**
|
||||
Get one variable by the index count.
|
||||
|
||||
@param IndexTable The pointer to variable index table.
|
||||
@param Count The index count of variable in index table.
|
||||
|
||||
@return The pointer to variable header indexed by count.
|
||||
|
||||
**/
|
||||
VARIABLE_HEADER *
|
||||
GetVariableByIndex (
|
||||
IN VARIABLE_INDEX_TABLE *IndexTable,
|
||||
@@ -31,6 +39,17 @@ GetVariableByIndex (
|
||||
return (VARIABLE_HEADER *) (UINTN) (IndexTable->Index[Count] + ((UINTN) IndexTable->StartPtr & 0xFFFF0000));
|
||||
}
|
||||
|
||||
/**
|
||||
Record Variable in VariableIndex HOB.
|
||||
|
||||
Record Variable in VariableIndex HOB and update the length of variable index table.
|
||||
|
||||
@param IndexTable The pointer to variable index table.
|
||||
@param Variable The pointer to the variable that will be recorded.
|
||||
|
||||
@retval VOID
|
||||
|
||||
**/
|
||||
VOID
|
||||
VariableIndexTableUpdate (
|
||||
IN OUT VARIABLE_INDEX_TABLE *IndexTable,
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -114,7 +114,6 @@ Returns:
|
||||
);
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
RuntimeServiceQueryVariableInfo (
|
||||
@@ -142,7 +141,6 @@ Returns:
|
||||
mVariableModuleGlobal->FvbInstance
|
||||
);
|
||||
}
|
||||
#endif
|
||||
|
||||
VOID
|
||||
EFIAPI
|
||||
@@ -196,9 +194,7 @@ Returns:
|
||||
SystemTable->RuntimeServices->GetVariable = RuntimeServiceGetVariable;
|
||||
SystemTable->RuntimeServices->GetNextVariableName = RuntimeServiceGetNextVariableName;
|
||||
SystemTable->RuntimeServices->SetVariable = RuntimeServiceSetVariable;
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
SystemTable->RuntimeServices->QueryVariableInfo = RuntimeServiceQueryVariableInfo;
|
||||
#endif
|
||||
|
||||
//
|
||||
// Now install the Variable Runtime Architectural Protocol on a new handle
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -89,7 +89,6 @@ Returns:
|
||||
);
|
||||
return ReturnVal;
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
case EsalQueryVariableInfo:
|
||||
ReturnVal.Status = QueryVariableInfo (
|
||||
(UINT32) Arg2,
|
||||
@@ -100,7 +99,6 @@ Returns:
|
||||
Global->FvbInstance
|
||||
);
|
||||
return ReturnVal;
|
||||
#endif
|
||||
|
||||
default:
|
||||
ReturnVal.Status = EFI_SAL_INVALID_ARGUMENT;
|
||||
@@ -173,10 +171,8 @@ Returns:
|
||||
EsalGetNextVariableName,
|
||||
EsalVariableCommonEntry,
|
||||
EsalSetVariable,
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EsalVariableCommonEntry,
|
||||
EsalQueryVariableInfo,
|
||||
#endif
|
||||
NULL
|
||||
);
|
||||
|
||||
|
@@ -1,13 +1,13 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
@@ -28,7 +28,7 @@ Revision History
|
||||
ESAL_VARIABLE_GLOBAL *mVariableModuleGlobal;
|
||||
|
||||
//
|
||||
// This is a temperary function which will be removed
|
||||
// This is a temperary function which will be removed
|
||||
// when EfiAcquireLock in UefiLib can handle the
|
||||
// the call in UEFI Runtimer driver in RT phase.
|
||||
//
|
||||
@@ -44,7 +44,7 @@ AcquireLockOnlyAtBootTime (
|
||||
}
|
||||
|
||||
//
|
||||
// This is a temperary function which will be removed
|
||||
// This is a temperary function which will be removed
|
||||
// when EfiAcquireLock in UefiLib can handle the
|
||||
// the call in UEFI Runtimer driver in RT phase.
|
||||
//
|
||||
@@ -260,7 +260,7 @@ Returns:
|
||||
|
||||
EfiRaw Variable store status is raw
|
||||
EfiValid Variable store status is valid
|
||||
EfiInvalid Variable store status is invalid
|
||||
EfiInvalid Variable store status is invalid
|
||||
|
||||
--*/
|
||||
{
|
||||
@@ -833,8 +833,8 @@ Returns:
|
||||
goto Done;
|
||||
} else if (!EFI_ERROR (Status) && Variable.Volatile && EfiAtRuntime()) {
|
||||
//
|
||||
// If EfiAtRuntime and the variable is Volatile and Runtime Access,
|
||||
// the volatile is ReadOnly, and SetVariable should be aborted and
|
||||
// If EfiAtRuntime and the variable is Volatile and Runtime Access,
|
||||
// the volatile is ReadOnly, and SetVariable should be aborted and
|
||||
// return EFI_WRITE_PROTECTED.
|
||||
//
|
||||
Status = EFI_WRITE_PROTECTED;
|
||||
@@ -848,11 +848,11 @@ Returns:
|
||||
goto Done;
|
||||
} else if (Attributes == EFI_VARIABLE_NON_VOLATILE) {
|
||||
//
|
||||
// Make sure not only EFI_VARIABLE_NON_VOLATILE is set
|
||||
// Make sure not only EFI_VARIABLE_NON_VOLATILE is set
|
||||
//
|
||||
Status = EFI_INVALID_PARAMETER;
|
||||
goto Done;
|
||||
} else if ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) ==
|
||||
} else if ((Attributes & (EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS)) ==
|
||||
EFI_VARIABLE_RUNTIME_ACCESS) {
|
||||
//
|
||||
// Make sure if runtime bit is set, boot service bit is set also
|
||||
@@ -998,7 +998,7 @@ Returns:
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
|
||||
Reclaimed = TRUE;
|
||||
}
|
||||
//
|
||||
@@ -1084,7 +1084,7 @@ Returns:
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
|
||||
Reclaimed = TRUE;
|
||||
}
|
||||
|
||||
@@ -1134,7 +1134,6 @@ Done:
|
||||
return Status;
|
||||
}
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QueryVariableInfo (
|
||||
@@ -1153,11 +1152,11 @@ Routine Description:
|
||||
|
||||
Arguments:
|
||||
|
||||
Attributes Attributes bitmask to specify the type of variables
|
||||
Attributes Attributes bitmask to specify the type of variables
|
||||
on which to return information.
|
||||
MaximumVariableStorageSize Pointer to the maximum size of the storage space available
|
||||
for the EFI variables associated with the attributes specified.
|
||||
RemainingVariableStorageSize Pointer to the remaining size of the storage space available
|
||||
RemainingVariableStorageSize Pointer to the remaining size of the storage space available
|
||||
for the EFI variables associated with the attributes specified.
|
||||
MaximumVariableSize Pointer to the maximum size of the individual EFI variables
|
||||
associated with the attributes specified.
|
||||
@@ -1200,12 +1199,12 @@ Returns:
|
||||
}
|
||||
|
||||
AcquireLockOnlyAtBootTime(&Global->VariableServicesLock);
|
||||
|
||||
|
||||
if((Attributes & EFI_VARIABLE_NON_VOLATILE) == 0) {
|
||||
//
|
||||
// Query is Volatile related.
|
||||
//
|
||||
VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) Global->VolatileVariableBase);
|
||||
VariableStoreHeader = (VARIABLE_STORE_HEADER *) ((UINTN) Global->VolatileVariableBase);
|
||||
} else {
|
||||
//
|
||||
// Query is Non-Volatile related.
|
||||
@@ -1214,7 +1213,7 @@ Returns:
|
||||
}
|
||||
|
||||
//
|
||||
// Now let's fill *MaximumVariableStorageSize *RemainingVariableStorageSize
|
||||
// Now let's fill *MaximumVariableStorageSize *RemainingVariableStorageSize
|
||||
// with the storage size (excluding the storage header size).
|
||||
//
|
||||
*MaximumVariableStorageSize = VariableStoreHeader->Size - sizeof (VARIABLE_STORE_HEADER);
|
||||
@@ -1239,15 +1238,15 @@ Returns:
|
||||
|
||||
if (EfiAtRuntime ()) {
|
||||
//
|
||||
// we don't take the state of the variables in mind
|
||||
// we don't take the state of the variables in mind
|
||||
// when calculating RemainingVariableStorageSize,
|
||||
// since the space occupied by variables not marked with
|
||||
// since the space occupied by variables not marked with
|
||||
// VAR_ADDED is not allowed to be reclaimed in Runtime.
|
||||
//
|
||||
*RemainingVariableStorageSize -= VariableSize;
|
||||
} else {
|
||||
//
|
||||
// Only care about Variables with State VAR_ADDED,because
|
||||
// Only care about Variables with State VAR_ADDED,because
|
||||
// the space not marked as VAR_ADDED is reclaimable now.
|
||||
//
|
||||
if (Variable->State == VAR_ADDED) {
|
||||
@@ -1264,7 +1263,6 @@ Returns:
|
||||
ReleaseLockOnlyAtBootTime (&Global->VariableServicesLock);
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
#endif
|
||||
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
@@ -1283,9 +1281,9 @@ Arguments:
|
||||
SystemTable - A pointer to the EFI System Table.
|
||||
|
||||
Returns:
|
||||
|
||||
|
||||
Status code.
|
||||
|
||||
|
||||
EFI_NOT_FOUND - Variable store area not found.
|
||||
EFI_UNSUPPORTED - Currently only one non-volatile variable store is supported.
|
||||
EFI_SUCCESS - Variable services successfully initialized.
|
||||
@@ -1321,7 +1319,7 @@ Returns:
|
||||
}
|
||||
|
||||
EfiInitializeLock(&mVariableModuleGlobal->VariableGlobal[Physical].VariableServicesLock, EFI_TPL_NOTIFY);
|
||||
|
||||
|
||||
//
|
||||
// Allocate memory for volatile variable store
|
||||
//
|
||||
|
@@ -1,18 +1,18 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
Copyright (c) 2006 - 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
Variable.h
|
||||
|
||||
|
||||
Abstract:
|
||||
|
||||
--*/
|
||||
@@ -26,7 +26,7 @@ Abstract:
|
||||
|
||||
//
|
||||
// BugBug: We need relcate the head file.
|
||||
//
|
||||
//
|
||||
#include <Common/Variable.h>
|
||||
|
||||
#if defined (MDE_CPU_IPF)
|
||||
@@ -144,7 +144,6 @@ SetVariable (
|
||||
)
|
||||
;
|
||||
|
||||
#if (EFI_SPECIFICATION_VERSION >= 0x00020000)
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
QueryVariableInfo (
|
||||
@@ -156,6 +155,5 @@ QueryVariableInfo (
|
||||
IN UINT32 Instance
|
||||
)
|
||||
;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user