-/** @file
-
-Copyright (c) 2005 - 2007, Intel Corporation
-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.
-
-Module Name:
-
- MnpDriver.h
-
-Abstract:
-
-
-**/
-
-#ifndef _MNP_DRIVER_H_
-#define _MNP_DRIVER_H_
+/** @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
+\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
\r
#include <Protocol/ManagedNetwork.h>\r
-#include <Protocol/SimpleNetwork.h>
+#include <Protocol/SimpleNetwork.h>\r
#include <Protocol/ServiceBinding.h>\r
\r
#include <Library/DebugLib.h>\r
#include <Library/UefiDriverEntryPoint.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiLib.h>
-#include <Library/NetLib.h>
+#include <Library/UefiLib.h>\r
+#include <Library/NetLib.h>\r
#include <Library/BaseLib.h>\r
-#include <Library/MemoryAllocationLib.h>
-#include <Library/BaseMemoryLib.h>
-
-#include "MnpDebug.h"
-
-//
-// Required Global Variables
-//
-extern EFI_DRIVER_BINDING_PROTOCOL gMnpDriverBinding;
-extern EFI_COMPONENT_NAME_PROTOCOL gMnpComponentName;
-
-#define MNP_SERVICE_DATA_SIGNATURE EFI_SIGNATURE_32 ('M', 'n', 'p', 'S')
-
-typedef struct _MNP_SERVICE_DATA {
- UINT32 Signature;
-
- EFI_HANDLE ControllerHandle;
-
- EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
- EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
-
- UINT32 Mtu;
-
- NET_LIST_ENTRY ChildrenList;
- UINTN ChildrenNumber;
- UINTN ConfiguredChildrenNumber;
-
- NET_LIST_ENTRY GroupAddressList;
- UINT32 GroupAddressCount;
-
- EFI_EVENT TxTimeoutEvent;
-
- NET_BUF_QUEUE FreeNbufQue;
- INTN NbufCnt;
-
- EFI_EVENT PollTimer;
- BOOLEAN EnableSystemPoll;
-
- EFI_EVENT TimeoutCheckTimer;
-
- UINT32 UnicastCount;
- UINT32 BroadcastCount;
- UINT32 MulticastCount;
- UINT32 PromiscuousCount;
-
- //
- // The size of the data buffer in the MNP_PACKET_BUFFER used to
- // store a packet.
- //
- UINT32 BufferLength;
- UINT32 PaddingSize;
- NET_BUF *RxNbufCache;
- UINT8 *TxBuf;
-} MNP_SERVICE_DATA;
-
-#define MNP_SERVICE_DATA_FROM_THIS(a) \
- CR ( \
- (a), \
- MNP_SERVICE_DATA, \
- ServiceBinding, \
- MNP_SERVICE_DATA_SIGNATURE \
- )
-
-EFI_STATUS
-EFIAPI
-MnpDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL * This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL
- );
-
-EFI_STATUS
-EFIAPI
-MnpDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL * This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL
- );
-
-EFI_STATUS
-EFIAPI
-MnpDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer
- );
-
-EFI_STATUS
-EFIAPI
-MnpServiceBindingCreateChild (
- IN EFI_SERVICE_BINDING_PROTOCOL *This,
- IN EFI_HANDLE *ChildHandle
- );
-
-EFI_STATUS
-EFIAPI
-MnpServiceBindingDestroyChild (
- IN EFI_SERVICE_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ChildHandle
- );
-
-#endif
+#include <Library/MemoryAllocationLib.h>\r
+#include <Library/BaseMemoryLib.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
+\r
+#define MNP_SERVICE_DATA_SIGNATURE EFI_SIGNATURE_32 ('M', 'n', 'p', 'S')\r
+\r
+typedef struct _MNP_SERVICE_DATA {\r
+ UINT32 Signature;\r
+\r
+ EFI_HANDLE ControllerHandle;\r
+\r
+ EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;\r
+ EFI_SIMPLE_NETWORK_PROTOCOL *Snp;\r
+\r
+ UINT32 Mtu;\r
+\r
+ LIST_ENTRY ChildrenList;\r
+ UINTN ChildrenNumber;\r
+ UINTN ConfiguredChildrenNumber;\r
+\r
+ LIST_ENTRY GroupAddressList;\r
+ UINT32 GroupAddressCount;\r
+\r
+ EFI_EVENT TxTimeoutEvent;\r
+\r
+ NET_BUF_QUEUE FreeNbufQue;\r
+ INTN NbufCnt;\r
+\r
+ EFI_EVENT PollTimer;\r
+ BOOLEAN EnableSystemPoll;\r
+\r
+ EFI_EVENT TimeoutCheckTimer;\r
+\r
+ UINT32 UnicastCount;\r
+ UINT32 BroadcastCount;\r
+ UINT32 MulticastCount;\r
+ UINT32 PromiscuousCount;\r
+\r
+ //\r
+ // The size of the data buffer in the MNP_PACKET_BUFFER used to\r
+ // store a packet.\r
+ //\r
+ UINT32 BufferLength;\r
+ UINT32 PaddingSize;\r
+ NET_BUF *RxNbufCache;\r
+ UINT8 *TxBuf;\r
+} MNP_SERVICE_DATA;\r
+\r
+#define MNP_SERVICE_DATA_FROM_THIS(a) \\r
+ CR ( \\r
+ (a), \\r
+ MNP_SERVICE_DATA, \\r
+ ServiceBinding, \\r
+ MNP_SERVICE_DATA_SIGNATURE \\r
+ )\r
+\r
+/**\r
+ Test to see if this driver supports ControllerHandle. This service\r
+ is called by the EFI boot service ConnectController(). In\r
+ order to make drivers as small as possible, there are a few calling\r
+ restrictions for this service. ConnectController() must\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
+\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
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+MnpDriverBindingSupported (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
+ );\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
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+MnpDriverBindingStart (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL\r
+ );\r
+\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
+ \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
+\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+MnpDriverBindingStop (\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\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
+\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
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+MnpServiceBindingCreateChild (\r
+ IN EFI_SERVICE_BINDING_PROTOCOL *This,\r
+ IN 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
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+MnpServiceBindingDestroyChild (\r
+ IN EFI_SERVICE_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ChildHandle\r
+ );\r
+\r
+#endif\r