1fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeff/** @file 2fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeff UEFI Component Name(2) protocol implementation for GraphicsConsole driver. 395276127e373f2e2fb2a208ff77267422a197d9fxgu 4be759f774ff737364ee7571e9f9714ec35d67b34li-elvinCopyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR> 5e5eed7d3641d71d7ea539e5379ea9c6a5cd97004hhtianThis program and the accompanying materials 6fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeffare licensed and made available under the terms and conditions of the BSD License 7fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeffwhich accompanies this distribution. The full text of the license may be found at 8fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeffhttp://opensource.org/licenses/bsd-license.php 995276127e373f2e2fb2a208ff77267422a197d9fxgu 10fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeffTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeffWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 1295276127e373f2e2fb2a208ff77267422a197d9fxgu 13fb0b259e4e440577dcd6ba6722c252d90605b3e9vanjeff**/ 1495276127e373f2e2fb2a208ff77267422a197d9fxgu 1595276127e373f2e2fb2a208ff77267422a197d9fxgu#include "GraphicsConsole.h" 1695276127e373f2e2fb2a208ff77267422a197d9fxgu 1795276127e373f2e2fb2a208ff77267422a197d9fxgu// 1895276127e373f2e2fb2a208ff77267422a197d9fxgu// EFI Component Name Protocol 1995276127e373f2e2fb2a208ff77267422a197d9fxgu// 201307dcd745881377355a2e7fba53ff9184e92657qhuangGLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gGraphicsConsoleComponentName = { 2195276127e373f2e2fb2a208ff77267422a197d9fxgu GraphicsConsoleComponentNameGetDriverName, 2295276127e373f2e2fb2a208ff77267422a197d9fxgu GraphicsConsoleComponentNameGetControllerName, 2395276127e373f2e2fb2a208ff77267422a197d9fxgu "eng" 241307dcd745881377355a2e7fba53ff9184e92657qhuang}; 255bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 265bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang// 275bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang// EFI Component Name 2 Protocol 285bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang// 291307dcd745881377355a2e7fba53ff9184e92657qhuangGLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gGraphicsConsoleComponentName2 = { 305bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang (EFI_COMPONENT_NAME2_GET_DRIVER_NAME) GraphicsConsoleComponentNameGetDriverName, 315bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang (EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) GraphicsConsoleComponentNameGetControllerName, 325bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang "en" 331307dcd745881377355a2e7fba53ff9184e92657qhuang}; 345bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 3595276127e373f2e2fb2a208ff77267422a197d9fxgu 36d1aeb0bdc36f6bece71a2b0fd3684857d11a867bqhuangGLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mGraphicsConsoleDriverNameTable[] = { 3795276127e373f2e2fb2a208ff77267422a197d9fxgu { 385bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang "eng;en", 39be759f774ff737364ee7571e9f9714ec35d67b34li-elvin (CHAR16 *)L"Graphics Console Driver" 4095276127e373f2e2fb2a208ff77267422a197d9fxgu }, 4195276127e373f2e2fb2a208ff77267422a197d9fxgu { 4295276127e373f2e2fb2a208ff77267422a197d9fxgu NULL, 4395276127e373f2e2fb2a208ff77267422a197d9fxgu NULL 4495276127e373f2e2fb2a208ff77267422a197d9fxgu } 4595276127e373f2e2fb2a208ff77267422a197d9fxgu}; 4695276127e373f2e2fb2a208ff77267422a197d9fxgu 475bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang/** 485bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang Retrieves a Unicode string that is the user readable name of the driver. 495bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 505bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang This function retrieves the user readable name of a driver in the form of a 515bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang Unicode string. If the driver specified by This has a user readable name in 525bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang the language specified by Language, then a pointer to the driver name is 535bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang returned in DriverName, and EFI_SUCCESS is returned. If the driver specified 545bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang by This does not support the language specified by Language, 555bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang then EFI_UNSUPPORTED is returned. 565bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 575bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or 585bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang EFI_COMPONENT_NAME_PROTOCOL instance. 595bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 605bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param Language[in] A pointer to a Null-terminated ASCII string 615bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang array indicating the language. This is the 625bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang language of the driver name that the caller is 635bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang requesting, and it must match one of the 645bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang languages specified in SupportedLanguages. The 655bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang number of languages supported by a driver is up 665bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang to the driver writer. Language is specified 670254efc01e461445240512ae1a1c2fc48ed2f70egikidy in RFC 4646 or ISO 639-2 language code format. 685bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 695bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param DriverName[out] A pointer to the Unicode string to return. 705bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang This Unicode string is the name of the 715bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang driver specified by This in the language 725bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang specified by Language. 735bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 745bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_SUCCESS The Unicode string for the Driver specified by 755bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang This and the language specified by Language was 765bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang returned in DriverName. 775bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 785bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_INVALID_PARAMETER Language is NULL. 795bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 805bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_INVALID_PARAMETER DriverName is NULL. 815bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 825bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_UNSUPPORTED The driver specified by This does not support 835bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang the language specified by Language. 845bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 855bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang**/ 8695276127e373f2e2fb2a208ff77267422a197d9fxguEFI_STATUS 8795276127e373f2e2fb2a208ff77267422a197d9fxguEFIAPI 8895276127e373f2e2fb2a208ff77267422a197d9fxguGraphicsConsoleComponentNameGetDriverName ( 8995276127e373f2e2fb2a208ff77267422a197d9fxgu IN EFI_COMPONENT_NAME_PROTOCOL *This, 9095276127e373f2e2fb2a208ff77267422a197d9fxgu IN CHAR8 *Language, 9195276127e373f2e2fb2a208ff77267422a197d9fxgu OUT CHAR16 **DriverName 9295276127e373f2e2fb2a208ff77267422a197d9fxgu ) 9395276127e373f2e2fb2a208ff77267422a197d9fxgu{ 945bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang return LookupUnicodeString2 ( 955bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang Language, 965bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang This->SupportedLanguages, 975bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang mGraphicsConsoleDriverNameTable, 985bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang DriverName, 995bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang (BOOLEAN)(This == &gGraphicsConsoleComponentName) 1005bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang ); 10195276127e373f2e2fb2a208ff77267422a197d9fxgu} 10295276127e373f2e2fb2a208ff77267422a197d9fxgu 1035bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang/** 1045bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang Retrieves a Unicode string that is the user readable name of the controller 1055bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang that is being managed by a driver. 1065bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1075bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang This function retrieves the user readable name of the controller specified by 1085bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang ControllerHandle and ChildHandle in the form of a Unicode string. If the 1095bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang driver specified by This has a user readable name in the language specified by 1105bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang Language, then a pointer to the controller name is returned in ControllerName, 1115bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang and EFI_SUCCESS is returned. If the driver specified by This is not currently 1125bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang managing the controller specified by ControllerHandle and ChildHandle, 1135bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang then EFI_UNSUPPORTED is returned. If the driver specified by This does not 1145bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang support the language specified by Language, then EFI_UNSUPPORTED is returned. 1155bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1165bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or 1175bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang EFI_COMPONENT_NAME_PROTOCOL instance. 1185bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1195bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param ControllerHandle[in] The handle of a controller that the driver 1205bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang specified by This is managing. This handle 1215bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang specifies the controller whose name is to be 1225bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang returned. 1235bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1245bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param ChildHandle[in] The handle of the child controller to retrieve 1255bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang the name of. This is an optional parameter that 1265bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang may be NULL. It will be NULL for device 1275bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang drivers. It will also be NULL for a bus drivers 1285bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang that wish to retrieve the name of the bus 1295bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang controller. It will not be NULL for a bus 1305bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang driver that wishes to retrieve the name of a 1315bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang child controller. 1325bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1335bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param Language[in] A pointer to a Null-terminated ASCII string 1345bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang array indicating the language. This is the 1355bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang language of the driver name that the caller is 1365bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang requesting, and it must match one of the 1375bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang languages specified in SupportedLanguages. The 1385bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang number of languages supported by a driver is up 1395bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang to the driver writer. Language is specified in 1400254efc01e461445240512ae1a1c2fc48ed2f70egikidy RFC 4646 or ISO 639-2 language code format. 1415bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1425bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @param ControllerName[out] A pointer to the Unicode string to return. 1435bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang This Unicode string is the name of the 1445bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang controller specified by ControllerHandle and 1455bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang ChildHandle in the language specified by 1465bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang Language from the point of view of the driver 1475bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang specified by This. 1485bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1495bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_SUCCESS The Unicode string for the user readable name in 1505bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang the language specified by Language for the 1515bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang driver specified by This was returned in 1525bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang DriverName. 1535bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 154284ee2e829ab2453293b7dc4539727ad6c047163niruiyu @retval EFI_INVALID_PARAMETER ControllerHandle is NULL. 1555bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1565bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid 1575bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang EFI_HANDLE. 1585bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1595bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_INVALID_PARAMETER Language is NULL. 1605bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1615bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_INVALID_PARAMETER ControllerName is NULL. 1625bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1635bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_UNSUPPORTED The driver specified by This is not currently 1645bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang managing the controller specified by 1655bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang ControllerHandle and ChildHandle. 1665bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1675bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang @retval EFI_UNSUPPORTED The driver specified by This does not support 1685bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang the language specified by Language. 1695bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang 1705bca971e545e01271c6ae5b1b66ee9f281123bf2qhuang**/ 17195276127e373f2e2fb2a208ff77267422a197d9fxguEFI_STATUS 17295276127e373f2e2fb2a208ff77267422a197d9fxguEFIAPI 17395276127e373f2e2fb2a208ff77267422a197d9fxguGraphicsConsoleComponentNameGetControllerName ( 17495276127e373f2e2fb2a208ff77267422a197d9fxgu IN EFI_COMPONENT_NAME_PROTOCOL *This, 17595276127e373f2e2fb2a208ff77267422a197d9fxgu IN EFI_HANDLE ControllerHandle, 17695276127e373f2e2fb2a208ff77267422a197d9fxgu IN EFI_HANDLE ChildHandle OPTIONAL, 17795276127e373f2e2fb2a208ff77267422a197d9fxgu IN CHAR8 *Language, 17895276127e373f2e2fb2a208ff77267422a197d9fxgu OUT CHAR16 **ControllerName 17995276127e373f2e2fb2a208ff77267422a197d9fxgu ) 18095276127e373f2e2fb2a208ff77267422a197d9fxgu{ 18195276127e373f2e2fb2a208ff77267422a197d9fxgu return EFI_UNSUPPORTED; 18295276127e373f2e2fb2a208ff77267422a197d9fxgu} 183