]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/ComponentName.c
IntelFrameworkModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / IsaSerialDxe / ComponentName.c
index 58781e55ef358fe6743f8cf57bcbbc7c9ffa20cd..7697aa74a1c9397f61f67bec6389e53f2e6298bf 100644 (file)
@@ -1,14 +1,8 @@
-/**@file\r
+/** @file\r
+  UEFI Component Name and Name2 protocol for Isa serial driver.\r
 \r
-  \r
-Copyright (c) 2006 - 2007, Intel Corporation.<BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -44,6 +38,8 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mIsaSerialDriverNameTable
   }\r
 };\r
 \r
+GLOBAL_REMOVE_IF_UNREFERENCED CHAR16 mSerialPortName[] = L"ISA Serial Port # ";\r
+\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the driver.\r
 \r
@@ -151,7 +147,7 @@ IsaSerialComponentNameGetDriverName (
                                 driver specified by This was returned in\r
                                 DriverName.\r
 \r
-  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
 \r
   @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
                                 EFI_HANDLE.\r
@@ -178,16 +174,11 @@ IsaSerialComponentNameGetControllerName (
   OUT CHAR16                                          **ControllerName\r
   )\r
 {\r
-  EFI_STATUS              Status;\r
-  EFI_SERIAL_IO_PROTOCOL  *SerialIo;\r
-  SERIAL_DEV              *SerialDevice;\r
+  EFI_STATUS                Status;\r
+  EFI_SERIAL_IO_PROTOCOL    *SerialIo;\r
+  SERIAL_DEV                *SerialDevice;\r
+  EFI_UNICODE_STRING_TABLE  *ControllerNameTable;\r
 \r
-  //\r
-  // This is a device driver, so ChildHandle must be NULL.\r
-  //\r
-  if (ChildHandle != NULL) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
   //\r
   // Make sure this driver is currently managing ControllerHandle\r
   //\r
@@ -199,72 +190,76 @@ IsaSerialComponentNameGetControllerName (
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-  //\r
-  // Get the Block I/O Protocol on Controller\r
-  //\r
-  Status = gBS->OpenProtocol (\r
-                  ControllerHandle,\r
-                  &gEfiSerialIoProtocolGuid,\r
-                  (VOID **) &SerialIo,\r
-                  gSerialControllerDriver.DriverBindingHandle,\r
-                  ControllerHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
-  if (EFI_ERROR (Status)) {\r
-    return Status;\r
+\r
+  ControllerNameTable = NULL;\r
+  if (ChildHandle != NULL) {\r
+    Status = EfiTestChildHandle (\r
+               ControllerHandle,\r
+               ChildHandle,\r
+               &gEfiIsaIoProtocolGuid\r
+               );\r
+    if (EFI_ERROR (Status)) {\r
+      return Status;\r
+    }\r
+\r
+    //\r
+    // Get the Serial I/O Protocol from the child handle\r
+    //\r
+    Status = gBS->OpenProtocol (\r
+                    ChildHandle,\r
+                    &gEfiSerialIoProtocolGuid,\r
+                    (VOID **) &SerialIo,\r
+                    gSerialControllerDriver.DriverBindingHandle,\r
+                    ChildHandle,\r
+                    EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
+                    );\r
+    if (EFI_ERROR (Status)) {\r
+      return Status;\r
+    }\r
+\r
+    //\r
+    // Get the Serial Controller's Device structure\r
+    //\r
+    SerialDevice = SERIAL_DEV_FROM_THIS (SerialIo);\r
+    ControllerNameTable = SerialDevice->ControllerNameTable;\r
   }\r
-  //\r
-  // Get the Serial Controller's Device structure\r
-  //\r
-  SerialDevice = SERIAL_DEV_FROM_THIS (SerialIo);\r
 \r
   return LookupUnicodeString2 (\r
            Language,\r
            This->SupportedLanguages,\r
-           SerialDevice->ControllerNameTable,\r
+           ControllerNameTable,\r
            ControllerName,\r
            (BOOLEAN)(This == &gIsaSerialComponentName)\r
            );\r
 }\r
 \r
-VOID\r
-AddName (\r
-  IN  SERIAL_DEV                               *SerialDevice,\r
-  IN  EFI_ISA_IO_PROTOCOL                      *IsaIo\r
-  )\r
 /**\r
+  Add the ISO639-2 and RFC4646 component name both for the Serial IO device\r
 \r
-  Routine Description:\r
-  \r
-    Add the component name for the serial io device\r
+  @param SerialDevice     A pointer to the SERIAL_DEV instance.\r
 \r
-  Arguments:\r
-  \r
-    SerialDevice              - A pointer to the SERIAL_DEV instance.\r
-    IsaIo                     - A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
-    \r
-  Returns:\r
+  @param IsaIo            A pointer to the EFI_ISA_IO_PROTOCOL instance.\r
 \r
-    None\r
-    \r
 **/\r
+VOID\r
+AddName (\r
+  IN  SERIAL_DEV                               *SerialDevice,\r
+  IN  EFI_ISA_IO_PROTOCOL                      *IsaIo\r
+  )\r
 {\r
-  CHAR16  SerialPortName[sizeof (SERIAL_PORT_NAME)];\r
-\r
-  StrCpy (SerialPortName, L"ISA Serial Port # ");\r
-  SerialPortName[sizeof (SERIAL_PORT_NAME) - 2] = (CHAR16) (L'0' + (UINT8) IsaIo->ResourceList->Device.UID);\r
+  mSerialPortName[(sizeof (mSerialPortName) / 2) - 2] = (CHAR16) (L'0' + (UINT8) IsaIo->ResourceList->Device.UID);\r
   AddUnicodeString2 (\r
     "eng",\r
     gIsaSerialComponentName.SupportedLanguages,\r
     &SerialDevice->ControllerNameTable,\r
-    (CHAR16 *) SerialPortName,\r
+    mSerialPortName,\r
     TRUE\r
     );\r
   AddUnicodeString2 (\r
     "en",\r
     gIsaSerialComponentName2.SupportedLanguages,\r
     &SerialDevice->ControllerNameTable,\r
-    (CHAR16 *) SerialPortName,\r
+    mSerialPortName,\r
     FALSE\r
     );\r
 \r