TianoCore EDK2 master
Loading...
Searching...
No Matches
ConPlatform.h File Reference

Go to the source code of this file.

Enumerations

enum  CONPLATFORM_VAR_OPERATION { Check , Append , Delete }
 

Functions

EFI_STATUS ConPlatformDriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_GUID *ProtocolGuid)
 
EFI_STATUS EFIAPI ConPlatformTextInDriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
 
EFI_STATUS EFIAPI ConPlatformTextOutDriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL)
 
EFI_STATUS EFIAPI ConPlatformTextInDriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
 
EFI_STATUS EFIAPI ConPlatformTextOutDriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
 
EFI_STATUS EFIAPI ConPlatformTextInDriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
 
EFI_STATUS EFIAPI ConPlatformTextOutDriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
 
VOID ConPlatformUnInstallProtocol (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Handle, IN EFI_GUID *ProtocolGuid)
 
VOID * ConPlatformGetVariable (IN CHAR16 *Name)
 
EFI_STATUS ConPlatformMatchDevicePaths (IN EFI_DEVICE_PATH_PROTOCOL *Multi, IN EFI_DEVICE_PATH_PROTOCOL *Single, OUT EFI_DEVICE_PATH_PROTOCOL **NewDevicePath OPTIONAL, IN BOOLEAN Delete)
 
EFI_STATUS ConPlatformUpdateDeviceVariable (IN CHAR16 *VariableName, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CONPLATFORM_VAR_OPERATION Operation)
 
EFI_STATUS EFIAPI ConPlatformComponentNameGetDriverName (IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)
 
EFI_STATUS EFIAPI ConPlatformComponentNameGetControllerName (IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
 
BOOLEAN ConPlatformUpdateGopCandidate (IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
 

Variables

EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding
 
EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponentName
 
EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2
 
EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding
 

Detailed Description

Header file for Console Platfrom DXE Driver.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file ConPlatform.h.

Enumeration Type Documentation

◆ CONPLATFORM_VAR_OPERATION

enum CONPLATFORM_VAR_OPERATION

Definition at line 46 of file ConPlatform.h.

Function Documentation

◆ ConPlatformComponentNameGetControllerName()

EFI_STATUS EFIAPI ConPlatformComponentNameGetControllerName ( IN EFI_COMPONENT_NAME_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_HANDLE ChildHandle  OPTIONAL,
IN CHAR8 *  Language,
OUT CHAR16 **  ControllerName 
)

Retrieves a Unicode string that is the user readable name of the controller that is being managed by a driver.

This function retrieves the user readable name of the controller specified by ControllerHandle and ChildHandle in the form of a Unicode string. If the driver specified by This has a user readable name in the language specified by Language, then a pointer to the controller name is returned in ControllerName, and EFI_SUCCESS is returned. If the driver specified by This is not currently managing the controller specified by ControllerHandle and ChildHandle, then EFI_UNSUPPORTED is returned. If the driver specified by This does not support the language specified by Language, then EFI_UNSUPPORTED is returned.

Parameters
This[in]A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or EFI_COMPONENT_NAME_PROTOCOL instance.
ControllerHandle[in]The handle of a controller that the driver specified by This is managing. This handle specifies the controller whose name is to be returned.
ChildHandle[in]The handle of the child controller to retrieve the name of. This is an optional parameter that may be NULL. It will be NULL for device drivers. It will also be NULL for a bus drivers that wish to retrieve the name of the bus controller. It will not be NULL for a bus driver that wishes to retrieve the name of a child controller.
Language[in]A pointer to a Null-terminated ASCII string array indicating the language. This is the language of the driver name that the caller is requesting, and it must match one of the languages specified in SupportedLanguages. The number of languages supported by a driver is up to the driver writer. Language is specified in RFC 4646 or ISO 639-2 language code format.
ControllerName[out]A pointer to the Unicode string to return. This Unicode string is the name of the controller specified by ControllerHandle and ChildHandle in the language specified by Language from the point of view of the driver specified by This.
Return values
EFI_SUCCESSThe Unicode string for the user readable name in the language specified by Language for the driver specified by This was returned in DriverName.
EFI_INVALID_PARAMETERControllerHandle is NULL.
EFI_INVALID_PARAMETERChildHandle is not NULL and it is not a valid EFI_HANDLE.
EFI_INVALID_PARAMETERLanguage is NULL.
EFI_INVALID_PARAMETERControllerName is NULL.
EFI_UNSUPPORTEDThe driver specified by This is not currently managing the controller specified by ControllerHandle and ChildHandle.
EFI_UNSUPPORTEDThe driver specified by This does not support the language specified by Language.

Definition at line 151 of file ComponentName.c.

◆ ConPlatformComponentNameGetDriverName()

EFI_STATUS EFIAPI ConPlatformComponentNameGetDriverName ( IN EFI_COMPONENT_NAME_PROTOCOL This,
IN CHAR8 *  Language,
OUT CHAR16 **  DriverName 
)

Retrieves a Unicode string that is the user readable name of the driver.

This function retrieves the user readable name of a driver in the form of a Unicode string. If the driver specified by This has a user readable name in the language specified by Language, then a pointer to the driver name is returned in DriverName, and EFI_SUCCESS is returned. If the driver specified by This does not support the language specified by Language, then EFI_UNSUPPORTED is returned.

Parameters
This[in]A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or EFI_COMPONENT_NAME_PROTOCOL instance.
Language[in]A pointer to a Null-terminated ASCII string array indicating the language. This is the language of the driver name that the caller is requesting, and it must match one of the languages specified in SupportedLanguages. The number of languages supported by a driver is up to the driver writer. Language is specified in RFC 4646 or ISO 639-2 language code format.
DriverName[out]A pointer to the Unicode string to return. This Unicode string is the name of the driver specified by This in the language specified by Language.
Return values
EFI_SUCCESSThe Unicode string for the Driver specified by This and the language specified by Language was returned in DriverName.
EFI_INVALID_PARAMETERLanguage is NULL.
EFI_INVALID_PARAMETERDriverName is NULL.
EFI_UNSUPPORTEDThe driver specified by This does not support the language specified by Language.

Definition at line 76 of file ComponentName.c.

◆ ConPlatformDriverBindingSupported()

EFI_STATUS ConPlatformDriverBindingSupported ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_GUID ProtocolGuid 
)

Test to see if specific protocol could be supported on the ControllerHandle.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to test.
ProtocolGuidThe specfic protocol.
Return values
EFI_SUCCESSThis driver supports this device
otherThis driver does not support this device

Test to see if the specified protocol is supported on ControllerHandle.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to test.
ProtocolGuidThe specfic protocol.
Return values
EFI_SUCCESSThis driver supports this device.
otherThis driver does not support this device.

Definition at line 149 of file ConPlatform.c.

◆ ConPlatformGetVariable()

VOID * ConPlatformGetVariable ( IN CHAR16 *  Name)

Read the EFI variable (Name) and return a dynamically allocated buffer, and the size of the buffer. On failure return NULL.

Parameters
NameString part of EFI variable name
Returns
Dynamically allocated memory that contains a copy of the EFI variable. Caller is repsoncible freeing the buffer. Return NULL means Variable was not read.

Get the necessary size of buffer and read the variable.

First get the necessary size of buffer. Then read the EFI variable (Name) and return a dynamically allocated buffer. On failure return NULL.

Parameters
NameString part of EFI variable name
Returns
Dynamically allocated memory that contains a copy of the EFI variable. Caller is repsoncible freeing the buffer. Return NULL means Variable was not read.

Definition at line 661 of file ConPlatform.c.

◆ ConPlatformMatchDevicePaths()

EFI_STATUS ConPlatformMatchDevicePaths ( IN EFI_DEVICE_PATH_PROTOCOL Multi,
IN EFI_DEVICE_PATH_PROTOCOL Single,
OUT EFI_DEVICE_PATH_PROTOCOL **NewDevicePath  OPTIONAL,
IN BOOLEAN  Delete 
)

Function compares a device path data structure to that of all the nodes of a second device path instance.

Parameters
MultiA pointer to a multi-instance device path data structure.
SingleA pointer to a single-instance device path data structure.
NewDevicePathIf Delete is TRUE, this parameter must not be null, and it points to the remaining device path data structure. (remaining device path = Multi - Single.)
DeleteIf TRUE, means removing Single from Multi. If FALSE, the routine just check whether Single matches with any instance in Multi.
Return values
EFI_SUCCESSIf the Single is contained within Multi.
EFI_NOT_FOUNDIf the Single is not contained within Multi.
EFI_INVALID_PARAMETERMulti is NULL.
EFI_INVALID_PARAMETERSingle is NULL.
EFI_INVALID_PARAMETERNewDevicePath is NULL when Delete is TRUE.

Definition at line 1076 of file ConPlatform.c.

◆ ConPlatformTextInDriverBindingStart()

EFI_STATUS EFIAPI ConPlatformTextInDriverBindingStart ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL RemainingDevicePath 
)

Start this driver on the device for console input.

Start this driver on ControllerHandle by opening Simple Text Input Protocol, reading Device Path, and installing Console In Devcice GUID on ControllerHandle.

Append its device path into the console environment variables ConInDev.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to bind driver to
RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver is added to ControllerHandle
EFI_ALREADY_STARTEDThis driver is already running on ControllerHandle
otherThis driver does not support this device.

Definition at line 219 of file ConPlatform.c.

◆ ConPlatformTextInDriverBindingStop()

EFI_STATUS EFIAPI ConPlatformTextInDriverBindingStop ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE ChildHandleBuffer 
)

Stop this driver on ControllerHandle by removing Console In Devcice GUID and closing the Simple Text Input protocol on ControllerHandle.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to stop driver on
NumberOfChildrenNumber of Handles in ChildHandleBuffer. If number of children is zero stop the entire bus driver.
ChildHandleBufferList of Child Handles to Stop.
Return values
EFI_SUCCESSThis driver is removed ControllerHandle
otherThis driver was not removed from this device

Definition at line 470 of file ConPlatform.c.

◆ ConPlatformTextInDriverBindingSupported()

EFI_STATUS EFIAPI ConPlatformTextInDriverBindingSupported ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath  OPTIONAL 
)

Test to see if EFI_SIMPLE_TEXT_INPUT_PROTOCOL is supported on ControllerHandle.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to test.
RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver supports this device.
otherThis driver does not support this device.

Definition at line 97 of file ConPlatform.c.

◆ ConPlatformTextOutDriverBindingStart()

EFI_STATUS EFIAPI ConPlatformTextOutDriverBindingStart ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL RemainingDevicePath 
)

Start this driver on the device for console output and standard error output.

Start this driver on ControllerHandle by opening Simple Text Output Protocol, reading Device Path, and installing Console Out Devcic GUID, Standard Error Device GUID on ControllerHandle.

Append its device path into the console environment variables ConOutDev, ErrOutDev.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to bind driver to
RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver is added to ControllerHandle
EFI_ALREADY_STARTEDThis driver is already running on ControllerHandle
otherThis driver does not support this device

Definition at line 326 of file ConPlatform.c.

◆ ConPlatformTextOutDriverBindingStop()

EFI_STATUS EFIAPI ConPlatformTextOutDriverBindingStop ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN UINTN  NumberOfChildren,
IN EFI_HANDLE ChildHandleBuffer 
)

Stop this driver on ControllerHandle by removing Console Out Devcice GUID and closing the Simple Text Output protocol on ControllerHandle.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to stop driver on
NumberOfChildrenNumber of Handles in ChildHandleBuffer. If number of children is zero stop the entire bus driver.
ChildHandleBufferList of Child Handles to Stop.
Return values
EFI_SUCCESSThis driver is removed ControllerHandle
otherThis driver was not removed from this device

Definition at line 543 of file ConPlatform.c.

◆ ConPlatformTextOutDriverBindingSupported()

EFI_STATUS EFIAPI ConPlatformTextOutDriverBindingSupported ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  ControllerHandle,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath  OPTIONAL 
)

Test to see if EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL is supported on ControllerHandle.

Parameters
ThisProtocol instance pointer.
ControllerHandleHandle of device to test.
RemainingDevicePathOptional parameter use to pick a specific child device to start.
Return values
EFI_SUCCESSThis driver supports this device.
otherThis driver does not support this device.

Definition at line 124 of file ConPlatform.c.

◆ ConPlatformUnInstallProtocol()

VOID ConPlatformUnInstallProtocol ( IN EFI_DRIVER_BINDING_PROTOCOL This,
IN EFI_HANDLE  Handle,
IN EFI_GUID ProtocolGuid 
)

Uninstall the specified protocol.

Parameters
ThisProtocol instance pointer.
HandleHandle of device to uninstall protocol on.
ProtocolGuidThe specified protocol need to be uninstalled.

Definition at line 617 of file ConPlatform.c.

◆ ConPlatformUpdateDeviceVariable()

EFI_STATUS ConPlatformUpdateDeviceVariable ( IN CHAR16 *  VariableName,
IN EFI_DEVICE_PATH_PROTOCOL DevicePath,
IN CONPLATFORM_VAR_OPERATION  Operation 
)

Update console environment variables.

Parameters
VariableNameConsole environment variables, ConOutDev, ConInDev StdErrDev, ConIn or ConOut.
DevicePathConsole devcie's device path.
OperationVariable operations, including APPEND, CHECK and DELETE.
Return values
EFI_SUCCESSVariable operates successfully.
EFI_OUT_OF_RESOURCESIf variable cannot be appended.
otherVariable updating failed.

Update console environment variables.

Parameters
VariableNameConsole environment variables, ConOutDev, ConInDev ErrOutDev, ConIn ,ConOut or ErrOut.
DevicePathConsole devcie's device path.
OperationVariable operations, including APPEND, CHECK and DELETE.
Return values
EFI_SUCCESSVariable operates successfully.
EFI_OUT_OF_RESOURCESIf variable cannot be appended.
otherVariable updating failed.

Definition at line 1171 of file ConPlatform.c.

◆ ConPlatformUpdateGopCandidate()

BOOLEAN ConPlatformUpdateGopCandidate ( IN EFI_DEVICE_PATH_PROTOCOL DevicePath)

Update ConOutDev and ErrOutDev variables to add the device path of GOP controller itself and the sibling controllers.

Parameters
DevicePathPointer to device's device path.
Return values
TRUEThe devcie is a GOP device.
FALSEThe devcie is not a GOP device.

Definition at line 1276 of file ConPlatform.c.

Variable Documentation

◆ gConPlatformComponentName

EFI_COMPONENT_NAME_PROTOCOL gConPlatformComponentName
extern

Definition at line 43 of file ConPlatform.h.

◆ gConPlatformComponentName2

EFI_COMPONENT_NAME2_PROTOCOL gConPlatformComponentName2
extern

Definition at line 44 of file ConPlatform.h.

◆ gConPlatformTextInDriverBinding

EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextInDriverBinding
extern

Definition at line 12 of file ConPlatform.c.

◆ gConPlatformTextOutDriverBinding

EFI_DRIVER_BINDING_PROTOCOL gConPlatformTextOutDriverBinding
extern

Definition at line 21 of file ConPlatform.c.