| /** @file | |
| UEFI Component Name(2) protocol implementation for ConSplitter driver. | |
| Copyright (c) 2006 - 2010, 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" | |
| // | |
| // EFI Component Name Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterConInComponentName = { | |
| ConSplitterComponentNameGetDriverName, | |
| ConSplitterConInComponentNameGetControllerName, | |
| "eng" | |
| }; | |
| // | |
| // EFI Component Name 2 Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2 = { | |
| (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName, | |
| (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterConInComponentNameGetControllerName, | |
| "en" | |
| }; | |
| // | |
| // EFI Component Name Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterSimplePointerComponentName = { | |
| ConSplitterComponentNameGetDriverName, | |
| ConSplitterSimplePointerComponentNameGetControllerName, | |
| "eng" | |
| }; | |
| // | |
| // EFI Component Name 2 Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2 = { | |
| (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName, | |
| (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterSimplePointerComponentNameGetControllerName, | |
| "en" | |
| }; | |
| // | |
| // EFI Component Name Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName = { | |
| ConSplitterComponentNameGetDriverName, | |
| ConSplitterAbsolutePointerComponentNameGetControllerName, | |
| "eng" | |
| }; | |
| // | |
| // EFI Component Name 2 Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2 = { | |
| (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName, | |
| (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterAbsolutePointerComponentNameGetControllerName, | |
| "en" | |
| }; | |
| // | |
| // EFI Component Name Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterConOutComponentName = { | |
| ConSplitterComponentNameGetDriverName, | |
| ConSplitterConOutComponentNameGetControllerName, | |
| "eng" | |
| }; | |
| // | |
| // EFI Component Name 2 Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2 = { | |
| (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName, | |
| (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterConOutComponentNameGetControllerName, | |
| "en" | |
| }; | |
| // | |
| // EFI Component Name Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gConSplitterStdErrComponentName = { | |
| ConSplitterComponentNameGetDriverName, | |
| ConSplitterStdErrComponentNameGetControllerName, | |
| "eng" | |
| }; | |
| // | |
| // EFI Component Name 2 Protocol | |
| // | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2 = { | |
| (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ConSplitterComponentNameGetDriverName, | |
| (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ConSplitterStdErrComponentNameGetControllerName, | |
| "en" | |
| }; | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterDriverNameTable[] = { | |
| { | |
| "eng;en", | |
| (CHAR16 *) L"Console Splitter Driver" | |
| }, | |
| { | |
| NULL, | |
| NULL | |
| } | |
| }; | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConInControllerNameTable[] = { | |
| { | |
| "eng;en", | |
| (CHAR16 *) L"Primary Console Input Device" | |
| }, | |
| { | |
| NULL, | |
| NULL | |
| } | |
| }; | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterSimplePointerControllerNameTable[] = { | |
| { | |
| "eng;en", | |
| (CHAR16 *) L"Primary Simple Pointer Device" | |
| }, | |
| { | |
| NULL, | |
| NULL | |
| } | |
| }; | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterAbsolutePointerControllerNameTable[] = { | |
| { | |
| "eng;en", | |
| (CHAR16 *)L"Primary Absolute Pointer Device" | |
| }, | |
| { | |
| NULL, | |
| NULL | |
| } | |
| }; | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterConOutControllerNameTable[] = { | |
| { | |
| "eng;en", | |
| (CHAR16 *) L"Primary Console Output Device" | |
| }, | |
| { | |
| NULL, | |
| NULL | |
| } | |
| }; | |
| GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mConSplitterStdErrControllerNameTable[] = { | |
| { | |
| "eng;en", | |
| (CHAR16 *) L"Primary Standard Error Device" | |
| }, | |
| { | |
| NULL, | |
| NULL | |
| } | |
| }; | |
| /** | |
| 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. | |
| @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or | |
| EFI_COMPONENT_NAME_PROTOCOL instance. | |
| @param 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. | |
| @param 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. | |
| @retval EFI_SUCCESS The Unicode string for the Driver specified by | |
| This and the language specified by Language was | |
| returned in DriverName. | |
| @retval EFI_INVALID_PARAMETER Language is NULL. | |
| @retval EFI_INVALID_PARAMETER DriverName is NULL. | |
| @retval EFI_UNSUPPORTED The driver specified by This does not support | |
| the language specified by Language. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ConSplitterComponentNameGetDriverName ( | |
| IN EFI_COMPONENT_NAME_PROTOCOL *This, | |
| IN CHAR8 *Language, | |
| OUT CHAR16 **DriverName | |
| ) | |
| { | |
| return LookupUnicodeString2 ( | |
| Language, | |
| This->SupportedLanguages, | |
| mConSplitterDriverNameTable, | |
| DriverName, | |
| (BOOLEAN)((This == &gConSplitterConInComponentName) || | |
| (This == &gConSplitterSimplePointerComponentName) || | |
| (This == &gConSplitterAbsolutePointerComponentName) || | |
| (This == &gConSplitterConOutComponentName) || | |
| (This == &gConSplitterStdErrComponentName)) | |
| ); | |
| } | |
| /** | |
| Tests whether a controller handle is being managed by a specific driver and | |
| the child handle is a child device of the controller. | |
| @param ControllerHandle A handle for a controller to test. | |
| @param DriverBindingHandle Specifies the driver binding handle for the | |
| driver. | |
| @param ProtocolGuid Specifies the protocol that the driver specified | |
| by DriverBindingHandle opens in its Start() | |
| function. | |
| @param ChildHandle A child handle to test. | |
| @param ConsumsedGuid Supplies the protocol that the child controller | |
| opens on its parent controller. | |
| @retval EFI_SUCCESS ControllerHandle is managed by the driver | |
| specifed by DriverBindingHandle and ChildHandle | |
| is a child of the ControllerHandle. | |
| @retval EFI_UNSUPPORTED ControllerHandle is not managed by the driver | |
| specifed by DriverBindingHandle. | |
| @retval EFI_UNSUPPORTED ChildHandle is not a child of the | |
| ControllerHandle. | |
| **/ | |
| EFI_STATUS | |
| ConSplitterTestControllerHandles ( | |
| IN CONST EFI_HANDLE ControllerHandle, | |
| IN CONST EFI_HANDLE DriverBindingHandle, | |
| IN CONST EFI_GUID *ProtocolGuid, | |
| IN EFI_HANDLE ChildHandle, | |
| IN CONST EFI_GUID *ConsumsedGuid | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| // | |
| // here ChildHandle is not an Optional parameter. | |
| // | |
| if (ChildHandle == NULL) { | |
| return EFI_UNSUPPORTED; | |
| } | |
| // | |
| // Tests whether a controller handle is being managed by a specific driver. | |
| // | |
| Status = EfiTestManagedDevice ( | |
| ControllerHandle, | |
| DriverBindingHandle, | |
| ProtocolGuid | |
| ); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| // | |
| // Tests whether a child handle is a child device of the controller. | |
| // | |
| Status = EfiTestChildHandle ( | |
| ControllerHandle, | |
| ChildHandle, | |
| ConsumsedGuid | |
| ); | |
| return Status; | |
| } | |
| /** | |
| 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. | |
| @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or | |
| EFI_COMPONENT_NAME_PROTOCOL instance. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @retval EFI_SUCCESS The Unicode string for the user readable name in | |
| the language specified by Language for the | |
| driver specified by This was returned in | |
| DriverName. | |
| @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid | |
| EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER Language is NULL. | |
| @retval EFI_INVALID_PARAMETER ControllerName is NULL. | |
| @retval EFI_UNSUPPORTED The driver specified by This is not currently | |
| managing the controller specified by | |
| ControllerHandle and ChildHandle. | |
| @retval EFI_UNSUPPORTED The driver specified by This does not support | |
| the language specified by Language. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ConSplitterConInComponentNameGetControllerName ( | |
| IN EFI_COMPONENT_NAME_PROTOCOL *This, | |
| IN EFI_HANDLE ControllerHandle, | |
| IN EFI_HANDLE ChildHandle OPTIONAL, | |
| IN CHAR8 *Language, | |
| OUT CHAR16 **ControllerName | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| Status = ConSplitterTestControllerHandles ( | |
| ControllerHandle, | |
| gConSplitterConInDriverBinding.DriverBindingHandle, | |
| &gEfiConsoleInDeviceGuid, | |
| ChildHandle, | |
| &gEfiConsoleInDeviceGuid | |
| ); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| return LookupUnicodeString2 ( | |
| Language, | |
| This->SupportedLanguages, | |
| mConSplitterConInControllerNameTable, | |
| ControllerName, | |
| (BOOLEAN)(This == &gConSplitterConInComponentName) | |
| ); | |
| } | |
| /** | |
| 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. | |
| @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or | |
| EFI_COMPONENT_NAME_PROTOCOL instance. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @retval EFI_SUCCESS The Unicode string for the user readable name in | |
| the language specified by Language for the | |
| driver specified by This was returned in | |
| DriverName. | |
| @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid | |
| EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER Language is NULL. | |
| @retval EFI_INVALID_PARAMETER ControllerName is NULL. | |
| @retval EFI_UNSUPPORTED The driver specified by This is not currently | |
| managing the controller specified by | |
| ControllerHandle and ChildHandle. | |
| @retval EFI_UNSUPPORTED The driver specified by This does not support | |
| the language specified by Language. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ConSplitterSimplePointerComponentNameGetControllerName ( | |
| IN EFI_COMPONENT_NAME_PROTOCOL *This, | |
| IN EFI_HANDLE ControllerHandle, | |
| IN EFI_HANDLE ChildHandle OPTIONAL, | |
| IN CHAR8 *Language, | |
| OUT CHAR16 **ControllerName | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| Status = ConSplitterTestControllerHandles ( | |
| ControllerHandle, | |
| gConSplitterSimplePointerDriverBinding.DriverBindingHandle, | |
| &gEfiSimplePointerProtocolGuid, | |
| ChildHandle, | |
| &gEfiSimplePointerProtocolGuid | |
| ); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| return LookupUnicodeString2 ( | |
| Language, | |
| This->SupportedLanguages, | |
| mConSplitterSimplePointerControllerNameTable, | |
| ControllerName, | |
| (BOOLEAN)(This == &gConSplitterSimplePointerComponentName) | |
| ); | |
| } | |
| /** | |
| Retrieves a Unicode string that is the user readable name of the controller | |
| that is being managed by an EFI Driver. | |
| @param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL | |
| instance. | |
| @param ControllerHandle The handle of a controller that the driver | |
| specified by This is managing. This handle | |
| specifies the controller whose name is to be | |
| returned. | |
| @param ChildHandle 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. | |
| @param Language A pointer to RFC4646 language identifier. This is | |
| the language of the controller name that 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. | |
| @param ControllerName 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. | |
| @retval EFI_SUCCESS The Unicode string for the user readable name in | |
| the language specified by Language for the driver | |
| specified by This was returned in DriverName. | |
| @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid | |
| EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER Language is NULL. | |
| @retval EFI_INVALID_PARAMETER ControllerName is NULL. | |
| @retval EFI_UNSUPPORTED The driver specified by This is not currently | |
| managing the controller specified by | |
| ControllerHandle and ChildHandle. | |
| @retval EFI_UNSUPPORTED The driver specified by This does not support the | |
| language specified by Language. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ConSplitterAbsolutePointerComponentNameGetControllerName ( | |
| IN EFI_COMPONENT_NAME_PROTOCOL *This, | |
| IN EFI_HANDLE ControllerHandle, | |
| IN EFI_HANDLE ChildHandle OPTIONAL, | |
| IN CHAR8 *Language, | |
| OUT CHAR16 **ControllerName | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| Status = ConSplitterTestControllerHandles ( | |
| ControllerHandle, | |
| gConSplitterAbsolutePointerDriverBinding.DriverBindingHandle, | |
| &gEfiAbsolutePointerProtocolGuid, | |
| ChildHandle, | |
| &gEfiAbsolutePointerProtocolGuid | |
| ); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| return LookupUnicodeString2 ( | |
| Language, | |
| This->SupportedLanguages, | |
| mConSplitterAbsolutePointerControllerNameTable, | |
| ControllerName, | |
| (BOOLEAN)(This == &gConSplitterAbsolutePointerComponentName) | |
| ); | |
| } | |
| /** | |
| 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. | |
| @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or | |
| EFI_COMPONENT_NAME_PROTOCOL instance. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @retval EFI_SUCCESS The Unicode string for the user readable name in | |
| the language specified by Language for the | |
| driver specified by This was returned in | |
| DriverName. | |
| @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid | |
| EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER Language is NULL. | |
| @retval EFI_INVALID_PARAMETER ControllerName is NULL. | |
| @retval EFI_UNSUPPORTED The driver specified by This is not currently | |
| managing the controller specified by | |
| ControllerHandle and ChildHandle. | |
| @retval EFI_UNSUPPORTED The driver specified by This does not support | |
| the language specified by Language. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ConSplitterConOutComponentNameGetControllerName ( | |
| IN EFI_COMPONENT_NAME_PROTOCOL *This, | |
| IN EFI_HANDLE ControllerHandle, | |
| IN EFI_HANDLE ChildHandle OPTIONAL, | |
| IN CHAR8 *Language, | |
| OUT CHAR16 **ControllerName | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| Status = ConSplitterTestControllerHandles ( | |
| ControllerHandle, | |
| gConSplitterConOutDriverBinding.DriverBindingHandle, | |
| &gEfiConsoleOutDeviceGuid, | |
| ChildHandle, | |
| &gEfiConsoleOutDeviceGuid | |
| ); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| return LookupUnicodeString2 ( | |
| Language, | |
| This->SupportedLanguages, | |
| mConSplitterConOutControllerNameTable, | |
| ControllerName, | |
| (BOOLEAN)(This == &gConSplitterConOutComponentName) | |
| ); | |
| } | |
| /** | |
| 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. | |
| @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or | |
| EFI_COMPONENT_NAME_PROTOCOL instance. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @param 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. | |
| @retval EFI_SUCCESS The Unicode string for the user readable name in | |
| the language specified by Language for the | |
| driver specified by This was returned in | |
| DriverName. | |
| @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid | |
| EFI_HANDLE. | |
| @retval EFI_INVALID_PARAMETER Language is NULL. | |
| @retval EFI_INVALID_PARAMETER ControllerName is NULL. | |
| @retval EFI_UNSUPPORTED The driver specified by This is not currently | |
| managing the controller specified by | |
| ControllerHandle and ChildHandle. | |
| @retval EFI_UNSUPPORTED The driver specified by This does not support | |
| the language specified by Language. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| ConSplitterStdErrComponentNameGetControllerName ( | |
| IN EFI_COMPONENT_NAME_PROTOCOL *This, | |
| IN EFI_HANDLE ControllerHandle, | |
| IN EFI_HANDLE ChildHandle OPTIONAL, | |
| IN CHAR8 *Language, | |
| OUT CHAR16 **ControllerName | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| Status = ConSplitterTestControllerHandles ( | |
| ControllerHandle, | |
| gConSplitterStdErrDriverBinding.DriverBindingHandle, | |
| &gEfiStandardErrorDeviceGuid, | |
| ChildHandle, | |
| &gEfiStandardErrorDeviceGuid | |
| ); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| return LookupUnicodeString2 ( | |
| Language, | |
| This->SupportedLanguages, | |
| mConSplitterStdErrControllerNameTable, | |
| ControllerName, | |
| (BOOLEAN)(This == &gConSplitterStdErrComponentName) | |
| ); | |
| } |