mirror of https://github.com/acidanthera/audk.git
Added some functions header.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5409 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
288a3c98c7
commit
9359e53fcb
|
@ -1,7 +1,8 @@
|
||||||
/** @file
|
/** @file
|
||||||
Console Platfrom DXE Driver, install Console protocols.
|
Console Platfrom DXE Driver, install Console Device Guids and update Console
|
||||||
|
Environment Variables.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation. <BR>
|
Copyright (c) 2006 - 2008, Intel Corporation. <BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -80,6 +81,18 @@ InitializeConPlatform(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if EFI Text In Protocol could be supported on the ControllerHandle.
|
||||||
|
|
||||||
|
@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 other This driver does not support this device
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextInDriverBindingSupported (
|
ConPlatformTextInDriverBindingSupported (
|
||||||
|
@ -87,19 +100,6 @@ ConPlatformTextInDriverBindingSupported (
|
||||||
IN EFI_HANDLE ControllerHandle,
|
IN EFI_HANDLE ControllerHandle,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Supported
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Supported() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return ConPlatformDriverBindingSupported (
|
return ConPlatformDriverBindingSupported (
|
||||||
This,
|
This,
|
||||||
|
@ -109,6 +109,19 @@ Returns:
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if EFI Text Out Protocol could be supported on the ControllerHandle.
|
||||||
|
|
||||||
|
@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 other This driver does not support this device
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextOutDriverBindingSupported (
|
ConPlatformTextOutDriverBindingSupported (
|
||||||
|
@ -116,19 +129,6 @@ ConPlatformTextOutDriverBindingSupported (
|
||||||
IN EFI_HANDLE ControllerHandle,
|
IN EFI_HANDLE ControllerHandle,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Supported
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Supported() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
return ConPlatformDriverBindingSupported (
|
return ConPlatformDriverBindingSupported (
|
||||||
This,
|
This,
|
||||||
|
@ -138,6 +138,20 @@ Returns:
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if specific Protocol could be supported on the ControllerHandle.
|
||||||
|
|
||||||
|
@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.
|
||||||
|
@param ProtocolGuid The specfic protocol.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver supports this device
|
||||||
|
@retval other This driver does not support this device
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ConPlatformDriverBindingSupported (
|
ConPlatformDriverBindingSupported (
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
@ -145,19 +159,6 @@ ConPlatformDriverBindingSupported (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath,
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath,
|
||||||
IN EFI_GUID *ProtocolGuid
|
IN EFI_GUID *ProtocolGuid
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Supported
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Supported() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
VOID *Interface;
|
VOID *Interface;
|
||||||
|
@ -178,7 +179,7 @@ Returns:
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
// Test to see if this device supports the Simple Text Output Protocol
|
// Test to see if this device supports the specific Protocol
|
||||||
//
|
//
|
||||||
Status = gBS->OpenProtocol (
|
Status = gBS->OpenProtocol (
|
||||||
ControllerHandle,
|
ControllerHandle,
|
||||||
|
@ -202,6 +203,23 @@ Returns:
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Start this driver on ControllerHandle by opening Simple Text In protocol,
|
||||||
|
reading Device Path, and installing Console Devcice In GUID on ControllerHandle.
|
||||||
|
|
||||||
|
If this devcie is not one hot-plug devce, append its device path into the
|
||||||
|
console environment variables ConInDev.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextInDriverBindingStart (
|
ConPlatformTextInDriverBindingStart (
|
||||||
|
@ -209,18 +227,6 @@ ConPlatformTextInDriverBindingStart (
|
||||||
IN EFI_HANDLE ControllerHandle,
|
IN EFI_HANDLE ControllerHandle,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Start() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
|
@ -307,6 +313,24 @@ Returns:
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Start this driver on ControllerHandle by opening Simple Text Out protocol,
|
||||||
|
reading Device Path, and installing Console Devcice Out GUID, Standard Error
|
||||||
|
Device GUID on ControllerHandle.
|
||||||
|
|
||||||
|
If this devcie is not one hot-plug devce, append its device path into the
|
||||||
|
console environment variables ConOutDev, StdErrDev.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextOutDriverBindingStart (
|
ConPlatformTextOutDriverBindingStart (
|
||||||
|
@ -314,18 +338,6 @@ ConPlatformTextOutDriverBindingStart (
|
||||||
IN EFI_HANDLE ControllerHandle,
|
IN EFI_HANDLE ControllerHandle,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Start() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
|
@ -444,6 +456,20 @@ Returns:
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle by removing Console Devcice In GUID
|
||||||
|
and closing the Simple Text In protocol on ControllerHandle.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextInDriverBindingStop (
|
ConPlatformTextInDriverBindingStop (
|
||||||
|
@ -452,18 +478,6 @@ ConPlatformTextInDriverBindingStop (
|
||||||
IN UINTN NumberOfChildren,
|
IN UINTN NumberOfChildren,
|
||||||
IN EFI_HANDLE *ChildHandleBuffer
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Stop() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
|
@ -517,6 +531,21 @@ Returns:
|
||||||
return EFI_SUCCESS;
|
return EFI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle by removing Console Devcice Out GUID
|
||||||
|
and closing the Simple Text Out protocol on ControllerHandle.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextOutDriverBindingStop (
|
ConPlatformTextOutDriverBindingStop (
|
||||||
|
@ -525,18 +554,6 @@ ConPlatformTextOutDriverBindingStop (
|
||||||
IN UINTN NumberOfChildren,
|
IN UINTN NumberOfChildren,
|
||||||
IN EFI_HANDLE *ChildHandleBuffer
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
(Standard DriverBinding Protocol Stop() function)
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
|
@ -602,6 +619,16 @@ Returns:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Unstall the specific protocol.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Handle Handle of device to unstall protocol on.
|
||||||
|
@param ProtocolGuid The specific protocol need to be uninstalled.
|
||||||
|
|
||||||
|
@return None.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
ConPlatformUnInstallProtocol (
|
ConPlatformUnInstallProtocol (
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
@ -632,26 +659,22 @@ ConPlatformUnInstallProtocol (
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Read the EFI variable (Name) and return a dynamically allocated
|
||||||
|
buffer, and the size of the buffer. On failure return NULL.
|
||||||
|
|
||||||
|
|
||||||
|
@param Name String part of EFI variable name
|
||||||
|
|
||||||
|
@return Dynamically allocated memory that contains a copy of the EFI variable.
|
||||||
|
Caller is repsoncible freeing the buffer.
|
||||||
|
NULL - Variable was not read
|
||||||
|
|
||||||
|
**/
|
||||||
VOID *
|
VOID *
|
||||||
ConPlatformGetVariable (
|
ConPlatformGetVariable (
|
||||||
IN CHAR16 *Name
|
IN CHAR16 *Name
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Read the EFI variable (Name) and return a dynamically allocated
|
|
||||||
buffer, and the size of the buffer. On failure return NULL.
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
Name - String part of EFI variable name
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
Dynamically allocated memory that contains a copy of the EFI variable.
|
|
||||||
Caller is repsoncible freeing the buffer.
|
|
||||||
|
|
||||||
NULL - Variable was not read
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
VOID *Buffer;
|
VOID *Buffer;
|
||||||
|
@ -698,38 +721,31 @@ Returns:
|
||||||
return Buffer;
|
return Buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
EFI_STATUS
|
/**
|
||||||
ConPlatformMatchDevicePaths (
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL * Multi,
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL * Single,
|
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL **NewDevicePath OPTIONAL,
|
|
||||||
IN BOOLEAN Delete
|
|
||||||
)
|
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
Function compares a device path data structure to that of all the nodes of a
|
Function compares a device path data structure to that of all the nodes of a
|
||||||
second device path instance.
|
second device path instance.
|
||||||
|
|
||||||
Arguments:
|
|
||||||
Multi - A pointer to a multi-instance device path data structure.
|
|
||||||
|
|
||||||
Single - A pointer to a single-instance device path data structure.
|
@param Multi A pointer to a multi-instance device path data structure.
|
||||||
|
@param Single A pointer to a single-instance device path data structure.
|
||||||
|
@param NewDevicePath If Delete is TRUE, this parameter must not be null, and it
|
||||||
|
points to the remaining device path data structure.
|
||||||
|
(remaining device path = Multi - Single.)
|
||||||
|
@param Delete If TRUE, means removing Single from Multi.
|
||||||
|
If FALSE, the routine just check whether Single matches
|
||||||
|
with any instance in Multi.
|
||||||
|
|
||||||
NewDevicePath - If Delete is TRUE, this parameter must not be null, and it
|
@return The function returns EFI_SUCCESS if the Single is contained within Multi.
|
||||||
points to the remaining device path data structure.
|
Otherwise, EFI_NOT_FOUND is returned.
|
||||||
(remaining device path = Multi - Single.)
|
|
||||||
|
|
||||||
Delete - If TRUE, means removing Single from Multi.
|
**/
|
||||||
If FALSE, the routine just check whether Single matches
|
EFI_STATUS
|
||||||
with any instance in Multi.
|
ConPlatformMatchDevicePaths (
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL *Multi,
|
||||||
Returns:
|
IN EFI_DEVICE_PATH_PROTOCOL *Single,
|
||||||
|
IN EFI_DEVICE_PATH_PROTOCOL **NewDevicePath OPTIONAL,
|
||||||
The function returns EFI_SUCCESS if the Single is contained within Multi.
|
IN BOOLEAN Delete
|
||||||
Otherwise, EFI_NOT_FOUND is returned.
|
)
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *TempDevicePath;
|
||||||
|
@ -739,7 +755,7 @@ Returns:
|
||||||
//
|
//
|
||||||
// The passed in DevicePath should not be NULL
|
// The passed in DevicePath should not be NULL
|
||||||
//
|
//
|
||||||
if ((!Multi) || (!Single)) {
|
if ((Multi == NULL) || (Single == NULL)) {
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
|
@ -753,7 +769,7 @@ Returns:
|
||||||
//
|
//
|
||||||
// search for the match of 'Single' in 'Multi'
|
// search for the match of 'Single' in 'Multi'
|
||||||
//
|
//
|
||||||
while (DevicePathInst) {
|
while (DevicePathInst != NULL) {
|
||||||
if (CompareMem (Single, DevicePathInst, Size) == 0) {
|
if (CompareMem (Single, DevicePathInst, Size) == 0) {
|
||||||
if (!Delete) {
|
if (!Delete) {
|
||||||
FreePool (DevicePathInst);
|
FreePool (DevicePathInst);
|
||||||
|
@ -780,24 +796,25 @@ Returns:
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Update console devicein console environment variables.
|
||||||
|
|
||||||
|
@param VariableName Console environment variables, ConOutDev, ConInDev
|
||||||
|
StdErrDev, ConIn or ConOut.
|
||||||
|
@param DevicePath Console devcie's device path.
|
||||||
|
@param Operation Variable operations, such as APPEND or DELETE.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Variable operates successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES If variable cannot be appended.
|
||||||
|
@retval other Variable updating failed.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ConPlatformUpdateDeviceVariable (
|
ConPlatformUpdateDeviceVariable (
|
||||||
IN CHAR16 *VariableName,
|
IN CHAR16 *VariableName,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
|
||||||
IN CONPLATFORM_VAR_OPERATION Operation
|
IN CONPLATFORM_VAR_OPERATION Operation
|
||||||
)
|
)
|
||||||
/*++
|
|
||||||
|
|
||||||
Routine Description:
|
|
||||||
|
|
||||||
|
|
||||||
Arguments:
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
|
|
||||||
None
|
|
||||||
|
|
||||||
--*/
|
|
||||||
{
|
{
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
EFI_DEVICE_PATH_PROTOCOL *VariableDevicePath;
|
EFI_DEVICE_PATH_PROTOCOL *VariableDevicePath;
|
||||||
|
@ -881,6 +898,16 @@ Returns:
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Check if the device is one hot-plug supported.
|
||||||
|
|
||||||
|
@param DriverBindingHandle Protocol instance pointer.
|
||||||
|
@param ControllerHandle Handle of device to check.
|
||||||
|
|
||||||
|
@retval TRUE The devcie is a hot-plug device
|
||||||
|
@retval FALSE The devcie is not a hot-plug device.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
IsHotPlugDevice (
|
IsHotPlugDevice (
|
||||||
EFI_HANDLE DriverBindingHandle,
|
EFI_HANDLE DriverBindingHandle,
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
Header file for Console Platfrom DXE Driver.
|
Header file for Console Platfrom DXE Driver.
|
||||||
|
|
||||||
Copyright (c) 2006 - 2007, Intel Corporation. <BR>
|
Copyright (c) 2006 - 2008, Intel Corporation. <BR>
|
||||||
All rights reserved. This program and the accompanying materials
|
All rights reserved. This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
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
|
which accompanies this distribution. The full text of the license may be found at
|
||||||
|
@ -12,8 +12,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
#ifndef CON_MANAGE_H_
|
#ifndef _CON_MANAGE_H_
|
||||||
#define CON_MANAGE_H_
|
#define _CON_MANAGE_H_
|
||||||
|
|
||||||
#include <Uefi.h>
|
#include <Uefi.h>
|
||||||
#include <Protocol/SimpleTextOut.h>
|
#include <Protocol/SimpleTextOut.h>
|
||||||
|
@ -51,6 +51,19 @@ typedef enum {
|
||||||
DELETE
|
DELETE
|
||||||
} CONPLATFORM_VAR_OPERATION;
|
} CONPLATFORM_VAR_OPERATION;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if specific Protocol could be supported on the ControllerHandle.
|
||||||
|
|
||||||
|
@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.
|
||||||
|
@param ProtocolGuid The specfic protocol.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS This driver supports this device
|
||||||
|
@retval other This driver does not support this device
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ConPlatformDriverBindingSupported (
|
ConPlatformDriverBindingSupported (
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
@ -59,6 +72,18 @@ ConPlatformDriverBindingSupported (
|
||||||
IN EFI_GUID *ProtocolGuid
|
IN EFI_GUID *ProtocolGuid
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if EFI Text In Protocol could be supported on the ControllerHandle.
|
||||||
|
|
||||||
|
@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 other This driver does not support this device
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextInDriverBindingSupported (
|
ConPlatformTextInDriverBindingSupported (
|
||||||
|
@ -67,6 +92,18 @@ ConPlatformTextInDriverBindingSupported (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Test to see if EFI Text Out Protocol could be supported on the ControllerHandle.
|
||||||
|
|
||||||
|
@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 other This driver does not support this device
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextOutDriverBindingSupported (
|
ConPlatformTextOutDriverBindingSupported (
|
||||||
|
@ -75,6 +112,23 @@ ConPlatformTextOutDriverBindingSupported (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Start this driver on ControllerHandle by opening Simple Text In protocol,
|
||||||
|
reading Device Path, and installing Console Devcice In GUID on ControllerHandle.
|
||||||
|
|
||||||
|
If this devcie is not one hot-plug devce, append its device path into the
|
||||||
|
console environment variables ConInDev.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextInDriverBindingStart (
|
ConPlatformTextInDriverBindingStart (
|
||||||
|
@ -83,6 +137,24 @@ ConPlatformTextInDriverBindingStart (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Start this driver on ControllerHandle by opening Simple Text Out protocol,
|
||||||
|
reading Device Path, and installing Console Devcice Out GUID, Standard Error
|
||||||
|
Device GUID on ControllerHandle.
|
||||||
|
|
||||||
|
If this devcie is not one hot-plug devce, append its device path into the
|
||||||
|
console environment variables ConOutDev, StdErrDev.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextOutDriverBindingStart (
|
ConPlatformTextOutDriverBindingStart (
|
||||||
|
@ -91,6 +163,20 @@ ConPlatformTextOutDriverBindingStart (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle by removing Console Devcice In GUID
|
||||||
|
and closing the Simple Text In protocol on ControllerHandle.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextInDriverBindingStop (
|
ConPlatformTextInDriverBindingStop (
|
||||||
|
@ -100,6 +186,20 @@ ConPlatformTextInDriverBindingStop (
|
||||||
IN EFI_HANDLE *ChildHandleBuffer
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Stop this driver on ControllerHandle by removing Console Devcice Out GUID
|
||||||
|
and closing the Simple Text Out protocol on ControllerHandle.
|
||||||
|
|
||||||
|
@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
|
EFI_STATUS
|
||||||
EFIAPI
|
EFIAPI
|
||||||
ConPlatformTextOutDriverBindingStop (
|
ConPlatformTextOutDriverBindingStop (
|
||||||
|
@ -109,6 +209,16 @@ ConPlatformTextOutDriverBindingStop (
|
||||||
IN EFI_HANDLE *ChildHandleBuffer
|
IN EFI_HANDLE *ChildHandleBuffer
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Unstall the specific protocol.
|
||||||
|
|
||||||
|
@param This Protocol instance pointer.
|
||||||
|
@param Handle Handle of device to unstall protocol on.
|
||||||
|
@param ProtocolGuid The specific protocol need to be uninstalled.
|
||||||
|
|
||||||
|
@return None.
|
||||||
|
|
||||||
|
**/
|
||||||
VOID
|
VOID
|
||||||
ConPlatformUnInstallProtocol (
|
ConPlatformUnInstallProtocol (
|
||||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||||
|
@ -116,19 +226,62 @@ ConPlatformUnInstallProtocol (
|
||||||
IN EFI_GUID *ProtocolGuid
|
IN EFI_GUID *ProtocolGuid
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Read the EFI variable (Name) and return a dynamically allocated
|
||||||
|
buffer, and the size of the buffer. On failure return NULL.
|
||||||
|
|
||||||
|
|
||||||
|
@param Name String part of EFI variable name
|
||||||
|
|
||||||
|
@return Dynamically allocated memory that contains a copy of the EFI variable.
|
||||||
|
Caller is repsoncible freeing the buffer.
|
||||||
|
NULL - Variable was not read
|
||||||
|
|
||||||
|
**/
|
||||||
VOID *
|
VOID *
|
||||||
ConPlatformGetVariable (
|
ConPlatformGetVariable (
|
||||||
IN CHAR16 *Name
|
IN CHAR16 *Name
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Function compares a device path data structure to that of all the nodes of a
|
||||||
|
second device path instance.
|
||||||
|
|
||||||
|
|
||||||
|
@param Multi A pointer to a multi-instance device path data structure.
|
||||||
|
@param Single A pointer to a single-instance device path data structure.
|
||||||
|
@param NewDevicePath If Delete is TRUE, this parameter must not be null, and it
|
||||||
|
points to the remaining device path data structure.
|
||||||
|
(remaining device path = Multi - Single.)
|
||||||
|
@param Delete If TRUE, means removing Single from Multi.
|
||||||
|
If FALSE, the routine just check whether Single matches
|
||||||
|
with any instance in Multi.
|
||||||
|
|
||||||
|
@return The function returns EFI_SUCCESS if the Single is contained within Multi.
|
||||||
|
Otherwise, EFI_NOT_FOUND is returned.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ConPlatformMatchDevicePaths (
|
ConPlatformMatchDevicePaths (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL * Multi,
|
IN EFI_DEVICE_PATH_PROTOCOL *Multi,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL * Single,
|
IN EFI_DEVICE_PATH_PROTOCOL *Single,
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL **NewDevicePath OPTIONAL,
|
IN EFI_DEVICE_PATH_PROTOCOL **NewDevicePath OPTIONAL,
|
||||||
IN BOOLEAN Delete
|
IN BOOLEAN Delete
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Update console devicein console environment variables.
|
||||||
|
|
||||||
|
@param VariableName Console environment variables, ConOutDev, ConInDev
|
||||||
|
StdErrDev, ConIn or ConOut.
|
||||||
|
@param DevicePath Console devcie's device path.
|
||||||
|
@param Operation Variable operations, such as APPEND or DELETE.
|
||||||
|
|
||||||
|
@retval EFI_SUCCESS Variable operates successfully.
|
||||||
|
@retval EFI_OUT_OF_RESOURCES If variable cannot be appended.
|
||||||
|
@retval other Variable updating failed.
|
||||||
|
|
||||||
|
**/
|
||||||
EFI_STATUS
|
EFI_STATUS
|
||||||
ConPlatformUpdateDeviceVariable (
|
ConPlatformUpdateDeviceVariable (
|
||||||
IN CHAR16 *VariableName,
|
IN CHAR16 *VariableName,
|
||||||
|
@ -136,6 +289,16 @@ ConPlatformUpdateDeviceVariable (
|
||||||
IN CONPLATFORM_VAR_OPERATION Operation
|
IN CONPLATFORM_VAR_OPERATION Operation
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
Check if the device is one hot-plug supported.
|
||||||
|
|
||||||
|
@param DriverBindingHandle Protocol instance pointer.
|
||||||
|
@param ControllerHandle Handle of device to check.
|
||||||
|
|
||||||
|
@retval TRUE The devcie is a hot-plug device
|
||||||
|
@retval FALSE The devcie is not a hot-plug device.
|
||||||
|
|
||||||
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
IsHotPlugDevice (
|
IsHotPlugDevice (
|
||||||
EFI_HANDLE DriverBindingHandle,
|
EFI_HANDLE DriverBindingHandle,
|
||||||
|
|
Loading…
Reference in New Issue