3 Copyright (c) 2005 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
21 #ifndef _MNP_DRIVER_H_
22 #define _MNP_DRIVER_H_
25 #include <Protocol/ManagedNetwork.h>
26 #include <Protocol/SimpleNetwork.h>
27 #include <Protocol/ServiceBinding.h>
29 #include <Library/DebugLib.h>
30 #include <Library/UefiDriverEntryPoint.h>
31 #include <Library/UefiBootServicesTableLib.h>
32 #include <Library/UefiLib.h>
33 #include <Library/NetLib.h>
34 #include <Library/BaseLib.h>
35 #include <Library/MemoryAllocationLib.h>
36 #include <Library/BaseMemoryLib.h>
41 // Required Global Variables
43 extern EFI_DRIVER_BINDING_PROTOCOL gMnpDriverBinding
;
44 extern EFI_COMPONENT_NAME_PROTOCOL gMnpComponentName
;
45 extern EFI_COMPONENT_NAME2_PROTOCOL gMnpComponentName2
;
47 #define MNP_SERVICE_DATA_SIGNATURE EFI_SIGNATURE_32 ('M', 'n', 'p', 'S')
49 typedef struct _MNP_SERVICE_DATA
{
52 EFI_HANDLE ControllerHandle
;
54 EFI_SERVICE_BINDING_PROTOCOL ServiceBinding
;
55 EFI_SIMPLE_NETWORK_PROTOCOL
*Snp
;
59 NET_LIST_ENTRY ChildrenList
;
61 UINTN ConfiguredChildrenNumber
;
63 NET_LIST_ENTRY GroupAddressList
;
64 UINT32 GroupAddressCount
;
66 EFI_EVENT TxTimeoutEvent
;
68 NET_BUF_QUEUE FreeNbufQue
;
72 BOOLEAN EnableSystemPoll
;
74 EFI_EVENT TimeoutCheckTimer
;
77 UINT32 BroadcastCount
;
78 UINT32 MulticastCount
;
79 UINT32 PromiscuousCount
;
82 // The size of the data buffer in the MNP_PACKET_BUFFER used to
91 #define MNP_SERVICE_DATA_FROM_THIS(a) \
96 MNP_SERVICE_DATA_SIGNATURE \
101 MnpDriverBindingSupported (
102 IN EFI_DRIVER_BINDING_PROTOCOL
* This
,
103 IN EFI_HANDLE ControllerHandle
,
104 IN EFI_DEVICE_PATH_PROTOCOL
* RemainingDevicePath OPTIONAL
109 MnpDriverBindingStart (
110 IN EFI_DRIVER_BINDING_PROTOCOL
* This
,
111 IN EFI_HANDLE ControllerHandle
,
112 IN EFI_DEVICE_PATH_PROTOCOL
* RemainingDevicePath OPTIONAL
117 MnpDriverBindingStop (
118 IN EFI_DRIVER_BINDING_PROTOCOL
*This
,
119 IN EFI_HANDLE ControllerHandle
,
120 IN UINTN NumberOfChildren
,
121 IN EFI_HANDLE
*ChildHandleBuffer
126 MnpServiceBindingCreateChild (
127 IN EFI_SERVICE_BINDING_PROTOCOL
*This
,
128 IN EFI_HANDLE
*ChildHandle
133 MnpServiceBindingDestroyChild (
134 IN EFI_SERVICE_BINDING_PROTOCOL
*This
,
135 IN EFI_HANDLE ChildHandle