mirror of https://github.com/acidanthera/audk.git
Add some function/header comments.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5039 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
fb0b259e4e
commit
a73d0c743b
|
@ -384,6 +384,20 @@ IsValidEfiCntlChar (
|
|||
IN CHAR16 c
|
||||
);
|
||||
|
||||
/**
|
||||
Test to see if this driver supports ControllerHandle. Any ControllerHandle
|
||||
than contains a VgaMiniPort and PciIo protocol can be supported.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param ControllerHandle Handle of device to test
|
||||
@param RemainingDevicePath Optional parameter use to pick a specific child
|
||||
device to start.
|
||||
|
||||
@retval EFI_SUCCESS This driver supports this device
|
||||
@retval EFI_ALREADY_STARTED This driver is already running on this device
|
||||
@retval other This driver does not support this device
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassDriverBindingSupported (
|
||||
|
@ -391,24 +405,6 @@ VgaClassDriverBindingSupported (
|
|||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Supported.
|
||||
|
||||
Arguments:
|
||||
|
||||
(Standard DriverBinding Protocol Supported() function)
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_STATUS
|
||||
|
||||
--*/
|
||||
// GC_TODO: This - add argument and description to function comment
|
||||
// GC_TODO: Controller - add argument and description to function comment
|
||||
// GC_TODO: RemainingDevicePath - add argument and description to function comment
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_VGA_MINI_PORT_PROTOCOL *VgaMiniPort;
|
||||
|
@ -445,6 +441,21 @@ VgaClassDriverBindingSupported (
|
|||
return Status;
|
||||
}
|
||||
|
||||
/**
|
||||
Start this driver on ControllerHandle by opening a PciIo and VgaMiniPort
|
||||
protocol, creating VGA_CLASS_DEV device and install gEfiSimpleTextOutProtocolGuid
|
||||
finnally.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param ControllerHandle Handle of device to bind driver to
|
||||
@param RemainingDevicePath Optional parameter use to pick a specific child
|
||||
device to start.
|
||||
|
||||
@retval EFI_SUCCESS This driver is added to ControllerHandle
|
||||
@retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle
|
||||
@retval other This driver does not support this device
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassDriverBindingStart (
|
||||
|
@ -452,26 +463,6 @@ VgaClassDriverBindingStart (
|
|||
IN EFI_HANDLE Controller,
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Layers the Simple Text Output Protocol on top of the
|
||||
VGA Mini Port Protocol
|
||||
|
||||
Arguments:
|
||||
|
||||
(Standard DriverBinding Protocol Start() function)
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_STATUS
|
||||
|
||||
--*/
|
||||
// GC_TODO: This - add argument and description to function comment
|
||||
// GC_TODO: Controller - add argument and description to function comment
|
||||
// GC_TODO: RemainingDevicePath - add argument and description to function comment
|
||||
// GC_TODO: EFI_OUT_OF_RESOURCES - add return value to function comment
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_VGA_MINI_PORT_PROTOCOL *VgaMiniPort;
|
||||
|
@ -609,6 +600,20 @@ ErrorExit:
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
Stop this driver on ControllerHandle. Support stoping any child handles
|
||||
created by this driver.
|
||||
|
||||
@param This Protocol instance pointer.
|
||||
@param ControllerHandle Handle of device to stop driver on
|
||||
@param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of
|
||||
children is zero stop the entire bus driver.
|
||||
@param ChildHandleBuffer List of Child Handles to Stop.
|
||||
|
||||
@retval EFI_SUCCESS This driver is removed ControllerHandle
|
||||
@retval other This driver was not removed from this device
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassDriverBindingStop (
|
||||
|
@ -617,26 +622,6 @@ VgaClassDriverBindingStop (
|
|||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Stop.
|
||||
|
||||
Arguments:
|
||||
|
||||
(Standard DriverBinding Protocol Stop() function)
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_STATUS
|
||||
|
||||
--*/
|
||||
// GC_TODO: This - add argument and description to function comment
|
||||
// GC_TODO: Controller - add argument and description to function comment
|
||||
// GC_TODO: NumberOfChildren - add argument and description to function comment
|
||||
// GC_TODO: ChildHandleBuffer - add argument and description to function comment
|
||||
// GC_TODO: EFI_SUCCESS - add return value to function comment
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOut;
|
||||
|
@ -694,31 +679,19 @@ VgaClassDriverBindingStop (
|
|||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
//
|
||||
// Simple Text Output Protocol Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Reset VgaClass device and clear output.
|
||||
|
||||
@param This Pointer to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.
|
||||
@param ExtendedVerification Whether need additional judgement
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassReset (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
ExtendedVerification - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
GC_TODO: add return values
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VGA_CLASS_DEV *VgaClassPrivate;
|
||||
|
@ -741,28 +714,18 @@ Returns:
|
|||
return This->ClearScreen (This);
|
||||
}
|
||||
|
||||
/**
|
||||
Output a string to VgaClass device.
|
||||
|
||||
@param This Pointer to EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL.
|
||||
@param WString wide chars.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassOutputString (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
WString - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VGA_CLASS_DEV *VgaClassDev;
|
||||
|
@ -878,29 +841,20 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Detects if a Unicode char is for Box Drawing text graphics.
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
@param WString Unicode chars
|
||||
|
||||
@return if a Unicode char is for Box Drawing text graphics.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassTestString (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN CHAR16 *WString
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
WString - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_UNSUPPORTED - GC_TODO: Add description for return value
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
while (*WString != 0x0000) {
|
||||
if (!(IsValidAscii (*WString) || IsValidEfiCntlChar (*WString) || LibIsValidTextGraphics (*WString, NULL, NULL))) {
|
||||
|
@ -913,26 +867,19 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Clear Screen via VgaClass device
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
|
||||
@retval EFI_SUCESS Success to clear screen
|
||||
@retval Others Wrong displaying mode.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassClearScreen (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VGA_CLASS_DEV *VgaClassDev;
|
||||
|
@ -968,29 +915,21 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Set displaying mode's attribute
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
@param Attribute Mode's attribute
|
||||
|
||||
@param EFI_SUCCESS Success to set attribute
|
||||
@param EFI_UNSUPPORTED Wrong mode's attribute wanted to be set
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassSetAttribute (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN Attribute
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
Attribute - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
EFI_UNSUPPORTED - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
if (Attribute <= EFI_MAX_ATTRIBUTE) {
|
||||
This->Mode->Attribute = (INT32) Attribute;
|
||||
|
@ -1000,6 +939,16 @@ Returns:
|
|||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Set cursor position.
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
@param Column Column of new cursor position.
|
||||
@param Row Row of new cursor position.
|
||||
|
||||
@retval EFI_SUCCESS Sucess to set cursor's position.
|
||||
@retval Others Wrong current displaying mode.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassSetCursorPosition (
|
||||
|
@ -1007,24 +956,6 @@ VgaClassSetCursorPosition (
|
|||
IN UINTN Column,
|
||||
IN UINTN Row
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
Column - GC_TODO: add argument description
|
||||
Row - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_UNSUPPORTED - GC_TODO: Add description for return value
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VGA_CLASS_DEV *VgaClassDev;
|
||||
|
@ -1055,28 +986,20 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Enable cursor to display or not.
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
@param Visible Display cursor or not.
|
||||
|
||||
@retval EFI_SUCESS Success to display the cursor or not.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassEnableCursor (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN BOOLEAN Visible
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
Visible - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
VGA_CLASS_DEV *VgaClassDev;
|
||||
|
||||
|
@ -1101,6 +1024,20 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Query colum and row according displaying mode number
|
||||
The mode:
|
||||
0: 80 * 25
|
||||
1: 80 * 50
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
@param ModeNumber Mode number
|
||||
@param Columns return the columen in current mode number
|
||||
@param Rows return the row in current mode number.
|
||||
|
||||
@return EFI_SUCCESS Sucess to get columns and rows according to mode number
|
||||
@return EFI_UNSUPPORTED Unsupported mode number
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassQueryMode (
|
||||
|
@ -1109,26 +1046,6 @@ VgaClassQueryMode (
|
|||
OUT UINTN *Columns,
|
||||
OUT UINTN *Rows
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
ModeNumber - GC_TODO: add argument description
|
||||
Columns - GC_TODO: add argument description
|
||||
Rows - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_UNSUPPORTED - GC_TODO: Add description for return value
|
||||
EFI_UNSUPPORTED - GC_TODO: Add description for return value
|
||||
EFI_SUCCESS - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
if ((INT32) ModeNumber >= This->Mode->MaxMode) {
|
||||
*Columns = 0;
|
||||
|
@ -1156,28 +1073,21 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Set displaying mode number
|
||||
|
||||
@param This Pointer of EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
|
||||
@param ModeNumber mode number
|
||||
|
||||
@retval EFI_UNSUPPORTED Unsupported mode number in parameter
|
||||
@retval EFI_SUCCESS Success to set the mode number.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
VgaClassSetMode (
|
||||
IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,
|
||||
IN UINTN ModeNumber
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
This - GC_TODO: add argument description
|
||||
ModeNumber - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_UNSUPPORTED - GC_TODO: Add description for return value
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VGA_CLASS_DEV *VgaClassDev;
|
||||
|
@ -1196,9 +1106,16 @@ Returns:
|
|||
|
||||
return Status;
|
||||
}
|
||||
//
|
||||
// Private Worker Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Set logic cursor's position to VgaClass device
|
||||
|
||||
@param VgaClassDev device instance object
|
||||
@param Column cursor logic position.
|
||||
@param Row cursor logic position.
|
||||
@param MaxColumn max logic column
|
||||
|
||||
**/
|
||||
STATIC
|
||||
VOID
|
||||
SetVideoCursorPosition (
|
||||
|
@ -1207,24 +1124,6 @@ SetVideoCursorPosition (
|
|||
IN UINTN Row,
|
||||
IN UINTN MaxColumn
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
VgaClassDev - GC_TODO: add argument description
|
||||
Column - GC_TODO: add argument description
|
||||
Row - GC_TODO: add argument description
|
||||
MaxColumn - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
GC_TODO: add return values
|
||||
|
||||
--*/
|
||||
{
|
||||
Column = Column & 0xff;
|
||||
Row = Row & 0xff;
|
||||
|
@ -1241,6 +1140,13 @@ Returns:
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
Program CRTC register via PCI IO.
|
||||
|
||||
@param VgaClassDev device instance object
|
||||
@param Address address
|
||||
@param Data data
|
||||
**/
|
||||
STATIC
|
||||
VOID
|
||||
WriteCrtc (
|
||||
|
@ -1248,23 +1154,6 @@ WriteCrtc (
|
|||
IN UINT16 Address,
|
||||
IN UINT8 Data
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
VgaClassDev - GC_TODO: add argument description
|
||||
Address - GC_TODO: add argument description
|
||||
Data - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
GC_TODO: add return values
|
||||
|
||||
--*/
|
||||
{
|
||||
VgaClassDev->PciIo->Io.Write (
|
||||
VgaClassDev->PciIo,
|
||||
|
@ -1285,6 +1174,16 @@ Returns:
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
Detects if a Unicode char is for Box Drawing text graphics.
|
||||
|
||||
@param Grphic Unicode char to test.
|
||||
@param PcAnsi Optional pointer to return PCANSI equivalent of Graphic.
|
||||
@param Asci Optional pointer to return Ascii equivalent of Graphic.
|
||||
|
||||
@return TRUE if Gpaphic is a supported Unicode Box Drawing character.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
BOOLEAN
|
||||
LibIsValidTextGraphics (
|
||||
|
@ -1292,26 +1191,6 @@ LibIsValidTextGraphics (
|
|||
OUT CHAR8 *PcAnsi, OPTIONAL
|
||||
OUT CHAR8 *Ascii OPTIONAL
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Detects if a Unicode char is for Box Drawing text graphics.
|
||||
|
||||
Arguments:
|
||||
|
||||
Grphic - Unicode char to test.
|
||||
|
||||
PcAnsi - Optional pointer to return PCANSI equivalent of Graphic.
|
||||
|
||||
Asci - Optional pointer to return Ascii equivalent of Graphic.
|
||||
|
||||
Returns:
|
||||
|
||||
TRUE if Gpaphic is a supported Unicode Box Drawing character.
|
||||
|
||||
--*/
|
||||
// GC_TODO: Graphic - add argument and description to function comment
|
||||
{
|
||||
UNICODE_TO_CHAR *Table;
|
||||
|
||||
|
@ -1340,26 +1219,17 @@ Returns:
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
Judge whether is an ASCII char.
|
||||
|
||||
@param Ascii character
|
||||
@return whether is an ASCII char.
|
||||
**/
|
||||
STATIC
|
||||
BOOLEAN
|
||||
IsValidAscii (
|
||||
IN CHAR16 Ascii
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
Ascii - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
GC_TODO: add return values
|
||||
|
||||
--*/
|
||||
{
|
||||
if ((Ascii >= 0x20) && (Ascii <= 0x7f)) {
|
||||
return TRUE;
|
||||
|
@ -1368,26 +1238,17 @@ Returns:
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
/**
|
||||
Judge whether is diplaying control character.
|
||||
|
||||
@param c character
|
||||
@return whether is diplaying control character.
|
||||
**/
|
||||
STATIC
|
||||
BOOLEAN
|
||||
IsValidEfiCntlChar (
|
||||
IN CHAR16 c
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
GC_TODO: Add function description
|
||||
|
||||
Arguments:
|
||||
|
||||
c - GC_TODO: add argument description
|
||||
|
||||
Returns:
|
||||
|
||||
GC_TODO: add return values
|
||||
|
||||
--*/
|
||||
{
|
||||
if (c == CHAR_NULL || c == CHAR_BACKSPACE || c == CHAR_LINEFEED || c == CHAR_CARRIAGE_RETURN) {
|
||||
return TRUE;
|
||||
|
@ -1395,3 +1256,4 @@ Returns:
|
|||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,21 @@ GetNextDataRecord (
|
|||
IN OUT UINT64 *PtrCurrentMTC
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
Log data record into the data logging hub
|
||||
|
||||
@param This - Protocol instance structure
|
||||
@param DataRecordGuid - GUID that defines record contents
|
||||
@param ProducerName - GUID that defines the name of the producer of the data
|
||||
@param DataRecordClass - Class that defines generic record type
|
||||
@param RawData - Data Log record as defined by DataRecordGuid
|
||||
@param RawDataSize - Size of Data Log data in bytes
|
||||
|
||||
@retval EFI_SUCCESS - If data was logged
|
||||
@retval EFI_OUT_OF_RESOURCES - If data was not logged due to lack of system
|
||||
resources.
|
||||
**/
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -55,33 +70,6 @@ DataHubLogData (
|
|||
IN VOID *RawData,
|
||||
IN UINT32 RawDataSize
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Log data record into the data logging hub
|
||||
|
||||
Arguments:
|
||||
|
||||
This - Protocol instance structure
|
||||
|
||||
DataRecordGuid - GUID that defines record contents
|
||||
|
||||
ProducerName - GUID that defines the name of the producer of the data
|
||||
|
||||
DataRecordClass - Class that defines generic record type
|
||||
|
||||
RawData - Data Log record as defined by DataRecordGuid
|
||||
|
||||
RawDataSize - Size of Data Log data in bytes
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - If data was logged
|
||||
|
||||
EFI_OUT_OF_RESOURCES - If data was not logged due to lack of system
|
||||
resources.
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
DATA_HUB_INSTANCE *Private;
|
||||
|
@ -176,6 +164,35 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Get a previously logged data record and the MonotonicCount for the next
|
||||
availible Record. This allows all records or all records later
|
||||
than a give MonotonicCount to be returned. If an optional FilterDriverEvent
|
||||
is passed in with a MonotonicCout of zero return the first record
|
||||
not yet read by the filter driver. If FilterDriverEvent is NULL and
|
||||
MonotonicCount is zero return the first data record.
|
||||
|
||||
@param This The EFI_DATA_HUB_PROTOCOL instance.
|
||||
@param MonotonicCount Specifies the Record to return. On input, zero means
|
||||
return the first record. On output, contains the next
|
||||
record to availible. Zero indicates no more records.
|
||||
@param FilterDriverEvent If FilterDriverEvent is not passed in a MonotonicCount
|
||||
of zero, it means to return the first data record.
|
||||
If FilterDriverEvent is passed in, then a MonotonicCount
|
||||
of zero means to return the first data not yet read by
|
||||
FilterDriverEvent.
|
||||
@param Record Returns a dynamically allocated memory buffer with a data
|
||||
record that matches MonotonicCount.
|
||||
|
||||
@retval EFI_SUCCESS - Data was returned in Record.
|
||||
@retval EFI_INVALID_PARAMETER - FilterDriverEvent was passed in but does not exist.
|
||||
@retval EFI_NOT_FOUND - MonotonicCount does not match any data record in the
|
||||
system. If a MonotonicCount of zero was passed in, then
|
||||
no data records exist in the system.
|
||||
@retval EFI_OUT_OF_RESOURCES - Record was not returned due to lack of system resources.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -185,41 +202,6 @@ DataHubGetNextRecord (
|
|||
IN EFI_EVENT *FilterDriverEvent, OPTIONAL
|
||||
OUT EFI_DATA_RECORD_HEADER **Record
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Get a previously logged data record and the MonotonicCount for the next
|
||||
availible Record. This allows all records or all records later
|
||||
than a give MonotonicCount to be returned. If an optional FilterDriverEvent
|
||||
is passed in with a MonotonicCout of zero return the first record
|
||||
not yet read by the filter driver. If FilterDriverEvent is NULL and
|
||||
MonotonicCount is zero return the first data record.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The EFI_DATA_HUB_PROTOCOL instance.
|
||||
MonotonicCount - Specifies the Record to return. On input, zero means
|
||||
return the first record. On output, contains the next
|
||||
record to availible. Zero indicates no more records.
|
||||
FilterDriverEvent - If FilterDriverEvent is not passed in a MonotonicCount
|
||||
of zero, it means to return the first data record.
|
||||
If FilterDriverEvent is passed in, then a MonotonicCount
|
||||
of zero means to return the first data not yet read by
|
||||
FilterDriverEvent.
|
||||
Record - Returns a dynamically allocated memory buffer with a data
|
||||
record that matches MonotonicCount.
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Data was returned in Record.
|
||||
EFI_INVALID_PARAMETER - FilterDriverEvent was passed in but does not exist.
|
||||
EFI_NOT_FOUND - MonotonicCount does not match any data record in the
|
||||
system. If a MonotonicCount of zero was passed in, then
|
||||
no data records exist in the system.
|
||||
EFI_OUT_OF_RESOURCES - Record was not returned due to lack of system resources.
|
||||
|
||||
--*/
|
||||
{
|
||||
DATA_HUB_INSTANCE *Private;
|
||||
DATA_HUB_FILTER_DRIVER *FilterDriver;
|
||||
|
@ -303,6 +285,35 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
This function registers the data hub filter driver that is represented
|
||||
by FilterEvent. Only one instance of each FilterEvent can be registered.
|
||||
After the FilterEvent is registered, it will be signaled so it can sync
|
||||
with data records that have been recorded prior to the FilterEvent being
|
||||
registered.
|
||||
|
||||
@param This - The EFI_DATA_HUB_PROTOCOL instance.
|
||||
@param FilterEvent - The EFI_EVENT to signal whenever data that matches
|
||||
FilterClass is logged in the system.
|
||||
@param FilterTpl - The maximum EFI_TPL at which FilterEvent can be
|
||||
signaled. It is strongly recommended that you use the
|
||||
lowest EFI_TPL possible.
|
||||
@param FilterClass - FilterEvent will be signaled whenever a bit in
|
||||
EFI_DATA_RECORD_HEADER.DataRecordClass is also set in
|
||||
FilterClass. If FilterClass is zero, no class-based
|
||||
filtering will be performed.
|
||||
@param FilterDataRecordGuid - FilterEvent will be signaled whenever FilterDataRecordGuid
|
||||
matches EFI_DATA_RECORD_HEADER.DataRecordGuid. If
|
||||
FilterDataRecordGuid is NULL, then no GUID-based filtering
|
||||
will be performed.
|
||||
|
||||
@retval EFI_SUCCESS - The filter driver event was registered.
|
||||
@retval EFI_ALREADY_STARTED - FilterEvent was previously registered and cannot be
|
||||
registered again.
|
||||
@retval EFI_OUT_OF_RESOURCES - The filter driver event was not registered due to lack of
|
||||
system resources.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -313,41 +324,7 @@ DataHubRegisterFilterDriver (
|
|||
IN UINT64 FilterClass,
|
||||
IN EFI_GUID * FilterDataRecordGuid OPTIONAL
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
This function registers the data hub filter driver that is represented
|
||||
by FilterEvent. Only one instance of each FilterEvent can be registered.
|
||||
After the FilterEvent is registered, it will be signaled so it can sync
|
||||
with data records that have been recorded prior to the FilterEvent being
|
||||
registered.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - The EFI_DATA_HUB_PROTOCOL instance.
|
||||
FilterEvent - The EFI_EVENT to signal whenever data that matches
|
||||
FilterClass is logged in the system.
|
||||
FilterTpl - The maximum EFI_TPL at which FilterEvent can be
|
||||
signaled. It is strongly recommended that you use the
|
||||
lowest EFI_TPL possible.
|
||||
FilterClass - FilterEvent will be signaled whenever a bit in
|
||||
EFI_DATA_RECORD_HEADER.DataRecordClass is also set in
|
||||
FilterClass. If FilterClass is zero, no class-based
|
||||
filtering will be performed.
|
||||
FilterDataRecordGuid - FilterEvent will be signaled whenever FilterDataRecordGuid
|
||||
matches EFI_DATA_RECORD_HEADER.DataRecordGuid. If
|
||||
FilterDataRecordGuid is NULL, then no GUID-based filtering
|
||||
will be performed.
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - The filter driver event was registered.
|
||||
EFI_ALREADY_STARTED - FilterEvent was previously registered and cannot be
|
||||
registered again.
|
||||
EFI_OUT_OF_RESOURCES - The filter driver event was not registered due to lack of
|
||||
system resources.
|
||||
|
||||
--*/
|
||||
{
|
||||
DATA_HUB_INSTANCE *Private;
|
||||
DATA_HUB_FILTER_DRIVER *FilterDriver;
|
||||
|
@ -402,6 +379,20 @@ Returns:
|
|||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
Remove a Filter Driver, so it no longer gets called when data
|
||||
information is logged.
|
||||
|
||||
@param This - Protocol instance structure
|
||||
|
||||
@param FilterEvent - Event that represents a filter driver that is to be
|
||||
Unregistered.
|
||||
|
||||
@retval EFI_SUCCESS - If FilterEvent was unregistered
|
||||
|
||||
@retval EFI_NOT_FOUND - If FilterEvent does not exist
|
||||
|
||||
**/
|
||||
STATIC
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
|
@ -409,27 +400,6 @@ DataHubUnregisterFilterDriver (
|
|||
IN EFI_DATA_HUB_PROTOCOL *This,
|
||||
IN EFI_EVENT FilterEvent
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Remove a Filter Driver, so it no longer gets called when data
|
||||
information is logged.
|
||||
|
||||
Arguments:
|
||||
|
||||
This - Protocol instance structure
|
||||
|
||||
FilterEvent - Event that represents a filter driver that is to be
|
||||
Unregistered.
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - If FilterEvent was unregistered
|
||||
|
||||
EFI_NOT_FOUND - If FilterEvent does not exist
|
||||
|
||||
--*/
|
||||
{
|
||||
DATA_HUB_INSTANCE *Private;
|
||||
DATA_HUB_FILTER_DRIVER *FilterDriver;
|
||||
|
@ -455,36 +425,29 @@ Returns:
|
|||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
//
|
||||
// STATIC Worker fucntions follow
|
||||
//
|
||||
|
||||
/**
|
||||
Search the Head list for a EFI_DATA_HUB_FILTER_DRIVER member that
|
||||
represents Event and return it.
|
||||
|
||||
@param Head - Head of dual linked list of EFI_DATA_HUB_FILTER_DRIVER
|
||||
structures.
|
||||
|
||||
@param Event - Event to be search for in the Head list.
|
||||
|
||||
@retval EFI_DATA_HUB_FILTER_DRIVER - Returned if Event stored in the
|
||||
Head doubly linked list.
|
||||
|
||||
@retval NULL - If Event is not in the list
|
||||
|
||||
**/
|
||||
STATIC
|
||||
DATA_HUB_FILTER_DRIVER *
|
||||
FindFilterDriverByEvent (
|
||||
IN LIST_ENTRY *Head,
|
||||
IN EFI_EVENT Event
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Search the Head list for a EFI_DATA_HUB_FILTER_DRIVER member that
|
||||
represents Event and return it.
|
||||
|
||||
Arguments:
|
||||
|
||||
Head - Head of dual linked list of EFI_DATA_HUB_FILTER_DRIVER
|
||||
structures.
|
||||
|
||||
Event - Event to be search for in the Head list.
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_DATA_HUB_FILTER_DRIVER - Returned if Event stored in the
|
||||
Head doubly linked list.
|
||||
|
||||
NULL - If Event is not in the list
|
||||
|
||||
--*/
|
||||
{
|
||||
DATA_HUB_FILTER_DRIVER *FilterEntry;
|
||||
LIST_ENTRY *Link;
|
||||
|
@ -499,6 +462,23 @@ Returns:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
Search the Head doubly linked list for the passed in MTC. Return the
|
||||
matching element in Head and the MTC on the next entry.
|
||||
|
||||
@param Head - Head of Data Log linked list.
|
||||
|
||||
@param ClassFilter - Only match the MTC if it is in the same Class as the
|
||||
ClassFilter.
|
||||
|
||||
@param PtrCurrentMTC - On IN contians MTC to search for. On OUT contians next
|
||||
MTC in the data log list or zero if at end of the list.
|
||||
|
||||
@retval EFI_DATA_LOG_ENTRY - Return pointer to data log data from Head list.
|
||||
|
||||
@retval NULL - If no data record exists.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
EFI_DATA_RECORD_HEADER *
|
||||
GetNextDataRecord (
|
||||
|
@ -506,29 +486,7 @@ GetNextDataRecord (
|
|||
IN UINT64 ClassFilter,
|
||||
IN OUT UINT64 *PtrCurrentMTC
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Search the Head doubly linked list for the passed in MTC. Return the
|
||||
matching element in Head and the MTC on the next entry.
|
||||
|
||||
Arguments:
|
||||
|
||||
Head - Head of Data Log linked list.
|
||||
|
||||
ClassFilter - Only match the MTC if it is in the same Class as the
|
||||
ClassFilter.
|
||||
|
||||
PtrCurrentMTC - On IN contians MTC to search for. On OUT contians next
|
||||
MTC in the data log list or zero if at end of the list.
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_DATA_LOG_ENTRY - Return pointer to data log data from Head list.
|
||||
|
||||
NULL - If no data record exists.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_DATA_ENTRY *LogEntry;
|
||||
LIST_ENTRY *Link;
|
||||
|
@ -588,27 +546,25 @@ Returns:
|
|||
//
|
||||
DATA_HUB_INSTANCE mPrivateData;
|
||||
|
||||
/**
|
||||
|
||||
Install Driver to produce Data Hub protocol.
|
||||
|
||||
@param ImageHandle Module's image handle
|
||||
@param SystemTable Pointer of EFI_SYSTEM_TABLE
|
||||
|
||||
|
||||
@retval EFI_SUCCESS - Logging Hub protocol installed
|
||||
|
||||
@retval Other - No protocol installed, unload driver.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
DataHubInstall (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Install Driver to produce Data Hub protocol.
|
||||
|
||||
Arguments:
|
||||
(Standard EFI Image entry - EFI_IMAGE_ENTRY_POINT)
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - Logging Hub protocol installed
|
||||
|
||||
Other - No protocol installed, unload driver.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINT32 HighMontonicCount;
|
||||
|
@ -652,3 +608,4 @@ Returns:
|
|||
);
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,13 @@ EFI_DATA_HUB_PROTOCOL *mDataHub = NULL;
|
|||
|
||||
EFI_EVENT mDataHubStdErrEvent;
|
||||
|
||||
/**
|
||||
Event handler registered with the Data Hub to parse EFI_DEBUG_CODE. This
|
||||
handler reads the Data Hub and sends any DEBUG info to StdErr.
|
||||
|
||||
@param Event - The event that occured, not used
|
||||
@param Context - DataHub Protocol Pointer
|
||||
**/
|
||||
STATIC
|
||||
VOID
|
||||
EFIAPI
|
||||
|
@ -38,20 +45,6 @@ DataHubStdErrEventHandler (
|
|||
IN EFI_EVENT Event,
|
||||
IN VOID *Context
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
Event handler registered with the Data Hub to parse EFI_DEBUG_CODE. This
|
||||
handler reads the Data Hub and sends any DEBUG info to StdErr.
|
||||
|
||||
Arguments:
|
||||
Event - The event that occured, not used
|
||||
Context - DataHub Protocol Pointer
|
||||
|
||||
Returns:
|
||||
None.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_DATA_HUB_PROTOCOL *DataHub;
|
||||
|
@ -103,31 +96,23 @@ Returns:
|
|||
} while ((Mtc != 0) && !EFI_ERROR (Status));
|
||||
}
|
||||
|
||||
/**
|
||||
Register an event handler with the Data Hub to parse EFI_DEBUG_CODE. This
|
||||
handler reads the Data Hub and sends any DEBUG info to StdErr.
|
||||
|
||||
@param ImageHandle - Image handle of this driver.
|
||||
@param SystemTable - Pointer to EFI system table.
|
||||
|
||||
@retval EFI_SUCCESS - The event handler was registered.
|
||||
@retval EFI_OUT_OF_RESOURCES - The event hadler was not registered due to lack of
|
||||
system resources.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
DataHubStdErrInitialize (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
/*++
|
||||
|
||||
Routine Description:
|
||||
|
||||
Register an event handler with the Data Hub to parse EFI_DEBUG_CODE. This
|
||||
handler reads the Data Hub and sends any DEBUG info to StdErr.
|
||||
|
||||
Arguments:
|
||||
|
||||
ImageHandle - Image handle of this driver.
|
||||
SystemTable - Pointer to EFI system table.
|
||||
|
||||
Returns:
|
||||
|
||||
EFI_SUCCESS - The event handler was registered.
|
||||
EFI_OUT_OF_RESOURCES - The event hadler was not registered due to lack of
|
||||
system resources.
|
||||
|
||||
--*/
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINT64 DataClass;
|
||||
|
@ -166,3 +151,4 @@ Returns:
|
|||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue