/** @file\r
-\r
-Copyright (c) 2005 - 2007, 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
+ Declaration of strctures and functions for MnpDxe driver.\r
+ \r
+Copyright (c) 2005 - 2007, Intel Corporation. <BR> \r
+All rights reserved. This program and the accompanying materials are licensed \r
+and made available under the terms and conditions of the BSD License which \r
+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
-\r
- MnpDriver.h\r
-\r
-Abstract:\r
-\r
-\r
**/\r
\r
#ifndef _MNP_DRIVER_H_\r
#define _MNP_DRIVER_H_\r
-#include <PiDxe.h>\r
+#include <Uefi.h>\r
\r
#include <Protocol/ManagedNetwork.h>\r
#include <Protocol/SimpleNetwork.h>\r
#include <Protocol/ServiceBinding.h>\r
\r
+#include <Library/BaseLib.h>\r
+#include <Library/BaseMemoryLib.h>\r
#include <Library/DebugLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
+#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
#include <Library/UefiLib.h>\r
#include <Library/NetLib.h>\r
-#include <Library/BaseLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
+#include <Library/DpcLib.h>\r
\r
-//\r
-// Required Global Variables\r
-//\r
-extern EFI_DRIVER_BINDING_PROTOCOL gMnpDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL gMnpComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gMnpComponentName2;\r
+#include "ComponentName.h"\r
\r
#define MNP_SERVICE_DATA_SIGNATURE SIGNATURE_32 ('M', 'n', 'p', 'S')\r
\r
-typedef struct _MNP_SERVICE_DATA {\r
+typedef struct {\r
UINT32 Signature;\r
\r
EFI_HANDLE ControllerHandle;\r
follow these calling restrictions. If any other agent wishes to call\r
Supported() it must also follow these calling restrictions.\r
\r
- @param This Protocol instance pointer.\r
- @param ControllerHandle Handle of device to test\r
- @param RemainingDevicePath Optional parameter use to pick a specific child\r
- device to start.\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] ControllerHandle Handle of device to test.\r
+ @param[in] RemainingDevicePath Optional parameter use to pick a specific \r
+ child device to start.\r
\r
- @retval EFI_SUCCESS This driver supports this device\r
- @retval EFI_ALREADY_STARTED This driver is already running on this device\r
- @retval other This driver does not support this device\r
+ @retval EFI_SUCCESS This driver supports this device.\r
+ @retval EFI_ALREADY_STARTED This driver is already running on this device.\r
+ @retval Others This driver does not support this device.\r
\r
**/\r
EFI_STATUS\r
\r
/**\r
Start this driver on ControllerHandle. This service is called by the\r
- EFI boot service ConnectController(). In order to make\r
- drivers as small as possible, there are a few calling restrictions for\r
- this service. ConnectController() must follow these\r
- calling restrictions. If any other agent wishes to call Start() it\r
- must also follow these calling restrictions.\r
-\r
- @param This Protocol instance pointer.\r
- @param ControllerHandle Handle of device to bind driver to.\r
- @param RemainingDevicePath Optional parameter use to pick a specific child\r
- device to start.\r
-\r
- @retval EFI_SUCCESS This driver is added to ControllerHandle\r
- @retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle\r
- @retval other This driver does not support this device\r
-\r
+ EFI boot service ConnectController(). In order to make drivers as small \r
+ as possible, there are a few calling restrictions for this service.\r
+ ConnectController() must follow these calling restrictions. If any other\r
+ agent wishes to call Start() it must also follow these calling restrictions.\r
+\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] ControllerHandle Handle of device to bind driver to.\r
+ @param[in] RemainingDevicePath Optional parameter use to pick a specific \r
+ child device to start.\r
+\r
+ @retval EFI_SUCCESS This driver is added to ControllerHandle.\r
+ @retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle.\r
+ @retval EFI_OUT_OF_RESOURCES Failed to allocate memory for Mnp Service Data.\r
+ @retval Others This driver does not support this device.\r
+ \r
**/\r
EFI_STATUS\r
EFIAPI\r
\r
/**\r
Stop this driver on ControllerHandle. This service is called by the\r
- EFI boot service DisconnectController(). In order to\r
- make drivers as small as possible, there are a few calling\r
- restrictions for this service. DisconnectController()\r
- must follow these calling restrictions. If any other agent wishes\r
- to call Stop() it must also follow these calling restrictions.\r
+ EFI boot service DisconnectController(). In order to make drivers as \r
+ small as possible, there are a few calling restrictions for this service. \r
+ DisconnectController() must follow these calling restrictions. If any other \r
+ agent wishes to call Stop() it must also follow these calling restrictions.\r
\r
- @param This Protocol instance pointer.\r
- @param ControllerHandle Handle of device to stop driver on\r
- @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
- children is zero stop the entire bus driver.\r
- @param ChildHandleBuffer List of Child Handles to Stop.\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in] ControllerHandle Handle of device to stop driver on.\r
+ @param[in] NumberOfChildren Number of Handles in ChildHandleBuffer. If \r
+ number of children is zero stop the entire \r
+ bus driver.\r
+ @param[in] ChildHandleBuffer List of Child Handles to Stop.\r
\r
- @retval EFI_SUCCESS This driver is removed ControllerHandle\r
- @retval other This driver was not removed from this device\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle.\r
+ @retval EFI_DEVICE_ERROR The device could not be stopped due to a device error.\r
\r
**/\r
EFI_STATUS\r
IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
IN EFI_HANDLE ControllerHandle,\r
IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
+ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL\r
);\r
\r
/**\r
Creates a child handle with a set of I/O services.\r
\r
- @param This Protocol instance pointer.\r
- @param ChildHandle Pointer to the handle of the child to create. If\r
- it is NULL, then a new handle is created. If it is\r
- not NULL, then the I/O services are added to the\r
- existing child handle.\r
+ @param[in] This Protocol instance pointer.\r
+ @param[in, out] ChildHandle Pointer to the handle of the child to create. If\r
+ it is NULL, then a new handle is created. If\r
+ it is not NULL, then the I/O services are added \r
+ to the existing child handle.\r
\r
- @retval EFI_SUCCES The child handle was created with the I/O\r
- services.\r
- @retval EFI_OUT_OF_RESOURCES There are not enough resources availabe to create\r
- the child.\r
- @retval other The child handle was not created.\r
+ @retval EFI_SUCCES The protocol was added to ChildHandle. \r
+ @retval EFI_INVALID_PARAMETER ChildHandle is NULL. \r
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources availabe to \r
+ create the child.\r
+ @retval Others The child handle was not created.\r
\r
**/\r
EFI_STATUS\r
EFIAPI\r
MnpServiceBindingCreateChild (\r
IN EFI_SERVICE_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE *ChildHandle\r
+ IN OUT EFI_HANDLE *ChildHandle\r
);\r
\r
/**\r
Destroys a child handle with a set of I/O services.\r
-\r
- @param This Protocol instance pointer.\r
- @param ChildHandle Handle of the child to destroy.\r
-\r
- @retval EFI_SUCCES The I/O services were removed from the child\r
- handle.\r
- @retval EFI_UNSUPPORTED The child handle does not support the I/O services\r
- that are being removed.\r
- @retval EFI_INVALID_PARAMETER Child handle is not a valid EFI Handle.\r
- @retval EFI_ACCESS_DENIED The child handle could not be destroyed because\r
- its I/O services are being used.\r
- @retval other The child handle was not destroyed.\r
+ \r
+ The DestroyChild() function does the opposite of CreateChild(). It removes a \r
+ protocol that was installed by CreateChild() from ChildHandle. If the removed \r
+ protocol is the last protocol on ChildHandle, then ChildHandle is destroyed. \r
+ \r
+ @param[in] This Pointer to the EFI_SERVICE_BINDING_PROTOCOL \r
+ instance.\r
+ @param[in] ChildHandle Handle of the child to destroy.\r
+\r
+ @retval EFI_SUCCES The protocol was removed from ChildHandle. \r
+ @retval EFI_UNSUPPORTED ChildHandle does not support the protocol that\r
+ is being removed.\r
+ @retval EFI_INVALID_PARAMETER ChildHandle is not a valid UEFI handle.\r
+ @retval EFI_ACCESS_DENIED The protocol could not be removed from the\r
+ ChildHandle because its services are being\r
+ used.\r
+ @retval Others The child handle was not destroyed.\r
\r
**/\r
EFI_STATUS\r