]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/ConSplitterDxe/ComponentName.c
apply for doxgen format.
[mirror_edk2.git] / MdeModulePkg / Universal / Console / ConSplitterDxe / ComponentName.c
index b13a8597855489d67684450a59c82c1adf71be36..927f7a5a687667b0e845abeaf66b5a440b2a8071 100644 (file)
@@ -1,21 +1,16 @@
-/*++\r
-\r
-Copyright (c) 2006, Intel Corporation                                                         \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
-\r
-Module Name:\r
+/** @file\r
+  UEFI Component Name(2) protocol implementation for ConSplitter driver.\r
 \r
-  ComponentName.c\r
+Copyright (c) 2006, 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
-Abstract:\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
 \r
---*/\r
+**/\r
 \r
 #include "ConSplitter.h"\r
 \r
@@ -234,6 +229,65 @@ ConSplitterComponentNameGetDriverName (
            );\r
 }\r
 \r
+/**\r
+  Tests whether a controller handle is being managed by a specific driver and\r
+  the child handle is a child device of the controller.\r
+\r
+  @param  ControllerHandle     A handle for a controller to test.\r
+  @param  DriverBindingHandle  Specifies the driver binding handle for the\r
+                               driver.\r
+  @param  ProtocolGuid         Specifies the protocol that the driver specified\r
+                               by DriverBindingHandle opens in its Start()\r
+                               function.\r
+  @param  ChildHandle          A child handle to test.\r
+  @param  ConsumsedGuid        Supplies the protocol that the child controller\r
+                               opens on its parent controller.\r
+\r
+  @retval EFI_SUCCESS          ControllerHandle is managed by the driver\r
+                               specifed by DriverBindingHandle and ChildHandle\r
+                               is a child of the ControllerHandle.\r
+  @retval EFI_UNSUPPORTED      ControllerHandle is not managed by the driver\r
+                               specifed by DriverBindingHandle.\r
+  @retval EFI_UNSUPPORTED      ChildHandle is not a child of the\r
+                               ControllerHandle.\r
+\r
+**/\r
+EFI_STATUS\r
+ConSplitterTestControllerHandles (\r
+  IN  CONST EFI_HANDLE       ControllerHandle,\r
+  IN  CONST EFI_HANDLE       DriverBindingHandle,\r
+  IN  CONST EFI_GUID         *ProtocolGuid,\r
+  IN  EFI_HANDLE             ChildHandle,\r
+  IN  CONST EFI_GUID         *ConsumsedGuid\r
+  )\r
+{\r
+  EFI_STATUS                 Status;\r
+\r
+  //\r
+  // here ChildHandle is not an Optional parameter.\r
+  //\r
+  if (ChildHandle == NULL) {\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+\r
+  Status = EfiTestManagedDevice (\r
+             ControllerHandle,\r
+             DriverBindingHandle,\r
+             ProtocolGuid\r
+             );\r
+  if (EFI_ERROR (Status)) {\r
+    return Status;\r
+  }\r
+\r
+  Status = EfiTestChildHandle (\r
+             ControllerHandle,\r
+             ChildHandle,\r
+             ConsumsedGuid\r
+             );\r
+\r
+  return Status;\r
+}\r
+\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the controller\r
   that is being managed by a driver.\r
@@ -313,24 +367,16 @@ ConSplitterConInComponentNameGetControllerName (
   )\r
 {\r
   EFI_STATUS                     Status;\r
-  EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;\r
-  //\r
-  // here ChildHandle is not an Optional parameter.\r
-  //\r
-  if (ChildHandle == NULL) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
 \r
-  Status = gBS->OpenProtocol (\r
-                  ControllerHandle,\r
-                  &gEfiSimpleTextInProtocolGuid,\r
-                  (VOID **) &TextIn,\r
-                  NULL,\r
-                  ControllerHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
+  Status = ConSplitterTestControllerHandles (\r
+             ControllerHandle,\r
+             gConSplitterConInDriverBinding.DriverBindingHandle,\r
+             &gEfiSimpleTextInProtocolGuid,\r
+             ChildHandle,\r
+             &gEfiConsoleInDeviceGuid\r
+             );\r
   if (EFI_ERROR (Status)) {\r
-    return EFI_UNSUPPORTED;\r
+    return Status;\r
   }\r
 \r
   return LookupUnicodeString2 (\r
@@ -421,24 +467,16 @@ ConSplitterSimplePointerComponentNameGetControllerName (
   )\r
 {\r
   EFI_STATUS                  Status;\r
-  EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer;\r
-  //\r
-  // here ChildHandle is not an Optional parameter.\r
-  //\r
-  if (ChildHandle == NULL) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
 \r
-  Status = gBS->OpenProtocol (\r
-                  ControllerHandle,\r
-                  &gEfiSimplePointerProtocolGuid,\r
-                  (VOID **) &SimplePointer,\r
-                  NULL,\r
-                  ControllerHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
+  Status = ConSplitterTestControllerHandles (\r
+             ControllerHandle,\r
+             gConSplitterSimplePointerDriverBinding.DriverBindingHandle,\r
+             &gEfiSimplePointerProtocolGuid,\r
+             ChildHandle,\r
+             &gEfiSimplePointerProtocolGuid\r
+             );\r
   if (EFI_ERROR (Status)) {\r
-    return EFI_UNSUPPORTED;\r
+    return Status;\r
   }\r
 \r
   return LookupUnicodeString2 (\r
@@ -467,72 +505,64 @@ ConSplitterAbsolutePointerComponentNameGetControllerName (
 \r
   Arguments:\r
     This             - A pointer to the EFI_COMPONENT_NAME_PROTOCOL instance.\r
-    ControllerHandle - The handle of a controller that the driver specified by \r
-                       This is managing.  This handle specifies the controller \r
+    ControllerHandle - The handle of a controller that the driver specified by\r
+                       This is managing.  This handle specifies the controller\r
                        whose name is to be returned.\r
-    ChildHandle      - The handle of the child controller to retrieve the name \r
-                       of.  This is an optional parameter that may be NULL.  It \r
-                       will be NULL for device drivers.  It will also be NULL \r
-                       for a bus drivers that wish to retrieve the name of the \r
-                       bus controller.  It will not be NULL for a bus driver \r
+    ChildHandle      - The handle of the child controller to retrieve the name\r
+                       of.  This is an optional parameter that may be NULL.  It\r
+                       will be NULL for device drivers.  It will also be NULL\r
+                       for a bus drivers that wish to retrieve the name of the\r
+                       bus controller.  It will not be NULL for a bus driver\r
                        that wishes to retrieve the name of a child controller.\r
-    Language         - A pointer to RFC3066 language identifier. \r
-                       This is the language of the controller name \r
+    Language         - A pointer to RFC3066 language identifier.\r
+                       This is the language of the controller name\r
                        that that the caller is requesting, and it must match one\r
-                       of the languages specified in SupportedLanguages.  The \r
-                       number of languages supported by a driver is up to the \r
+                       of the languages specified in SupportedLanguages.  The\r
+                       number of languages supported by a driver is up to the\r
                        driver writer.\r
     ControllerName   - A pointer to the Unicode string to return.  This Unicode\r
-                       string is the name of the controller specified by \r
-                       ControllerHandle and ChildHandle in the language \r
-                       specified by Language from the point of view of the \r
-                       driver specified by This. \r
+                       string is the name of the controller specified by\r
+                       ControllerHandle and ChildHandle in the language\r
+                       specified by Language from the point of view of the\r
+                       driver specified by This.\r
 \r
   Returns:\r
     EFI_SUCCESS           - The Unicode string for the user readable name in the\r
-                            language specified by Language for the driver \r
+                            language specified by Language for the driver\r
                             specified by This was returned in DriverName.\r
     EFI_INVALID_PARAMETER - ControllerHandle is not a valid EFI_HANDLE.\r
-    EFI_INVALID_PARAMETER - ChildHandle is not NULL and it is not a valid \r
+    EFI_INVALID_PARAMETER - ChildHandle is not NULL and it is not a valid\r
                             EFI_HANDLE.\r
     EFI_INVALID_PARAMETER - Language is NULL.\r
     EFI_INVALID_PARAMETER - ControllerName is NULL.\r
-    EFI_UNSUPPORTED       - The driver specified by This is not currently \r
-                            managing the controller specified by \r
+    EFI_UNSUPPORTED       - The driver specified by This is not currently\r
+                            managing the controller specified by\r
                             ControllerHandle and ChildHandle.\r
-    EFI_UNSUPPORTED       - The driver specified by This does not support the \r
+    EFI_UNSUPPORTED       - The driver specified by This does not support the\r
                             language specified by Language.\r
 \r
 --*/\r
 {\r
   EFI_STATUS                    Status;\r
-  EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer;\r
-  //\r
-  // here ChildHandle is not an Optional parameter.\r
-  //\r
-  if (ChildHandle == NULL) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
 \r
-  Status = gBS->OpenProtocol (\r
-                  ControllerHandle,\r
-                  &gEfiAbsolutePointerProtocolGuid,\r
-                  (VOID **) &AbsolutePointer,\r
-                  NULL,\r
-                  ControllerHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
+  Status = ConSplitterTestControllerHandles (\r
+             ControllerHandle,\r
+             gConSplitterAbsolutePointerDriverBinding.DriverBindingHandle,\r
+             &gEfiAbsolutePointerProtocolGuid,\r
+             ChildHandle,\r
+             &gEfiAbsolutePointerProtocolGuid\r
+             );\r
   if (EFI_ERROR (Status)) {\r
-    return EFI_UNSUPPORTED;\r
+    return Status;\r
   }\r
 \r
-return LookupUnicodeString2 (\r
-       Language,\r
-       This->SupportedLanguages,\r
-       mConSplitterAbsolutePointerControllerNameTable,\r
-       ControllerName,\r
-       (BOOLEAN)(This == &gConSplitterAbsolutePointerComponentName)\r
-       );\r
+  return LookupUnicodeString2 (\r
+           Language,\r
+           This->SupportedLanguages,\r
+           mConSplitterAbsolutePointerControllerNameTable,\r
+           ControllerName,\r
+           (BOOLEAN)(This == &gConSplitterAbsolutePointerComponentName)\r
+           );\r
 }\r
 \r
 /**\r
@@ -614,24 +644,16 @@ ConSplitterConOutComponentNameGetControllerName (
   )\r
 {\r
   EFI_STATUS                       Status;\r
-  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *TextOut;\r
-  //\r
-  // here ChildHandle is not an Optional parameter.\r
-  //\r
-  if (ChildHandle == NULL) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
 \r
-  Status = gBS->OpenProtocol (\r
-                  ControllerHandle,\r
-                  &gEfiSimpleTextOutProtocolGuid,\r
-                  (VOID **) &TextOut,\r
-                  NULL,\r
-                  ControllerHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
+  Status = ConSplitterTestControllerHandles (\r
+             ControllerHandle,\r
+             gConSplitterConOutDriverBinding.DriverBindingHandle,\r
+             &gEfiSimpleTextOutProtocolGuid,\r
+             ChildHandle,\r
+             &gEfiConsoleOutDeviceGuid\r
+             );\r
   if (EFI_ERROR (Status)) {\r
-    return EFI_UNSUPPORTED;\r
+    return Status;\r
   }\r
 \r
   return LookupUnicodeString2 (\r
@@ -722,24 +744,16 @@ ConSplitterStdErrComponentNameGetControllerName (
   )\r
 {\r
   EFI_STATUS                       Status;\r
-  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *ErrOut;\r
-  //\r
-  // here ChildHandle is not an Optional parameter.\r
-  //\r
-  if (ChildHandle == NULL) {\r
-    return EFI_UNSUPPORTED;\r
-  }\r
 \r
-  Status = gBS->OpenProtocol (\r
-                  ControllerHandle,\r
-                  &gEfiSimpleTextOutProtocolGuid,\r
-                  (VOID **) &ErrOut,\r
-                  NULL,\r
-                  ControllerHandle,\r
-                  EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
-                  );\r
+  Status = ConSplitterTestControllerHandles (\r
+             ControllerHandle,\r
+             gConSplitterStdErrDriverBinding.DriverBindingHandle,\r
+             &gEfiSimpleTextOutProtocolGuid,\r
+             ChildHandle,\r
+             &gEfiStandardErrorDeviceGuid\r
+             );\r
   if (EFI_ERROR (Status)) {\r
-    return EFI_UNSUPPORTED;\r
+    return Status;\r
   }\r
 \r
   return LookupUnicodeString2 (\r