X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FNetwork%2FMnpDxe%2FMnpDriver.h;h=d410af2726ac82ad07fc611a36d04d7ea1bc5c7d;hp=5e75b30b9794d9864c8d48500267b3c213988c17;hb=dd29f3edb9849b7bb51f0ae4be8941a760846ef3;hpb=6e4bac4dac892c8e041f8f89e1948ea43151a0a4
diff --git a/MdeModulePkg/Universal/Network/MnpDxe/MnpDriver.h b/MdeModulePkg/Universal/Network/MnpDxe/MnpDriver.h
index 5e75b30b97..d410af2726 100644
--- a/MdeModulePkg/Universal/Network/MnpDxe/MnpDriver.h
+++ b/MdeModulePkg/Universal/Network/MnpDxe/MnpDriver.h
@@ -1,11 +1,12 @@
/** @file
Declaration of strctures and functions for MnpDxe driver.
-
-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
+
+Copyright (c) 2005 - 2010, 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.
@@ -14,33 +15,47 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#ifndef _MNP_DRIVER_H_
#define _MNP_DRIVER_H_
+
#include
#include
#include
#include
+#include
+#include
+#include
#include
+#include
#include
#include
#include
+#include
+#include
+#include
#include "ComponentName.h"
-#define MNP_SERVICE_DATA_SIGNATURE SIGNATURE_32 ('M', 'n', 'p', 'S')
+#define MNP_DEVICE_DATA_SIGNATURE SIGNATURE_32 ('M', 'n', 'p', 'D')
typedef struct {
UINT32 Signature;
EFI_HANDLE ControllerHandle;
+ EFI_HANDLE ImageHandle;
- EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
+ EFI_VLAN_CONFIG_PROTOCOL VlanConfig;
+ UINTN NumberOfVlan;
+ CHAR16 *MacString;
EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
- UINT32 Mtu;
-
- LIST_ENTRY ChildrenList;
- UINTN ChildrenNumber;
+ //
+ // List of MNP_SERVICE_DATA
+ //
+ LIST_ENTRY ServiceList;
+ //
+ // Number of configured MNP Service Binding child
+ //
UINTN ConfiguredChildrenNumber;
LIST_ENTRY GroupAddressList;
@@ -55,6 +70,7 @@ typedef struct {
BOOLEAN EnableSystemPoll;
EFI_EVENT TimeoutCheckTimer;
+ EFI_EVENT MediaDetectTimer;
UINT32 UnicastCount;
UINT32 BroadcastCount;
@@ -69,8 +85,38 @@ typedef struct {
UINT32 PaddingSize;
NET_BUF *RxNbufCache;
UINT8 *TxBuf;
+} MNP_DEVICE_DATA;
+
+#define MNP_DEVICE_DATA_FROM_THIS(a) \
+ CR ( \
+ (a), \
+ MNP_DEVICE_DATA, \
+ VlanConfig, \
+ MNP_DEVICE_DATA_SIGNATURE \
+ )
+
+#define MNP_SERVICE_DATA_SIGNATURE SIGNATURE_32 ('M', 'n', 'p', 'S')
+
+typedef struct {
+ UINT32 Signature;
+
+ LIST_ENTRY Link;
+
+ MNP_DEVICE_DATA *MnpDeviceData;
+ EFI_HANDLE ServiceHandle;
+ EFI_SERVICE_BINDING_PROTOCOL ServiceBinding;
+ EFI_DEVICE_PATH_PROTOCOL *DevicePath;
+
+ LIST_ENTRY ChildrenList;
+ UINTN ChildrenNumber;
+
+ UINT32 Mtu;
+
+ UINT16 VlanId;
+ UINT8 Priority;
} MNP_SERVICE_DATA;
+
#define MNP_SERVICE_DATA_FROM_THIS(a) \
CR ( \
(a), \
@@ -79,6 +125,15 @@ typedef struct {
MNP_SERVICE_DATA_SIGNATURE \
)
+#define MNP_SERVICE_DATA_FROM_LINK(a) \
+ CR ( \
+ (a), \
+ MNP_SERVICE_DATA, \
+ Link, \
+ MNP_SERVICE_DATA_SIGNATURE \
+ )
+
+
/**
Test to see if this driver supports ControllerHandle. This service
is called by the EFI boot service ConnectController(). In
@@ -89,7 +144,7 @@ typedef struct {
@param[in] This Protocol instance pointer.
@param[in] ControllerHandle Handle of device to test.
- @param[in] RemainingDevicePath Optional parameter use to pick a specific
+ @param[in] RemainingDevicePath Optional parameter use to pick a specific
child device to start.
@retval EFI_SUCCESS This driver supports this device.
@@ -100,50 +155,50 @@ typedef struct {
EFI_STATUS
EFIAPI
MnpDriverBindingSupported (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
);
/**
Start this driver on ControllerHandle. This service is called by the
- EFI boot service ConnectController(). In order to make drivers as small
+ EFI boot service ConnectController(). In order to make drivers as small
as possible, there are a few calling restrictions for this service.
ConnectController() must follow these calling restrictions. If any other
agent wishes to call Start() it must also follow these calling restrictions.
@param[in] This Protocol instance pointer.
@param[in] ControllerHandle Handle of device to bind driver to.
- @param[in] RemainingDevicePath Optional parameter use to pick a specific
+ @param[in] RemainingDevicePath Optional parameter use to pick a specific
child device to start.
@retval EFI_SUCCESS This driver is added to ControllerHandle.
@retval EFI_ALREADY_STARTED This driver is already running on ControllerHandle.
@retval EFI_OUT_OF_RESOURCES Failed to allocate memory for Mnp Service Data.
@retval Others This driver does not support this device.
-
+
**/
EFI_STATUS
EFIAPI
MnpDriverBindingStart (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL
);
/**
Stop this driver on ControllerHandle. This service is called by the
- EFI boot service DisconnectController(). In order to make drivers as
- small as possible, there are a few calling restrictions for this service.
- DisconnectController() must follow these calling restrictions. If any other
+ EFI boot service DisconnectController(). In order to make drivers as
+ small as possible, there are a few calling restrictions for this service.
+ DisconnectController() must follow these calling restrictions. If any other
agent wishes to call Stop() it must also follow these calling restrictions.
-
+
@param[in] This Protocol instance pointer.
@param[in] ControllerHandle Handle of device to stop driver on.
- @param[in] NumberOfChildren Number of Handles in ChildHandleBuffer. If
- number of children is zero stop the entire
- bus driver.
+ @param[in] NumberOfChildren Number of Handles in ChildHandleBuffer. If
+ number of children is zero stop the entire
+ bus driver.
@param[in] ChildHandleBuffer List of Child Handles to Stop.
@retval EFI_SUCCESS This driver is removed ControllerHandle.
@@ -153,10 +208,10 @@ MnpDriverBindingStart (
EFI_STATUS
EFIAPI
MnpDriverBindingStop (
- IN EFI_DRIVER_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ControllerHandle,
- IN UINTN NumberOfChildren,
- IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ControllerHandle,
+ IN UINTN NumberOfChildren,
+ IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
);
/**
@@ -165,12 +220,12 @@ MnpDriverBindingStop (
@param[in] This Protocol instance pointer.
@param[in, out] ChildHandle Pointer to the handle of the child to create. If
it is NULL, then a new handle is created. If
- it is not NULL, then the I/O services are added
- to the existing child handle.
+ it is not NULL, then the I/O services are added
+ to the existing child handle.
- @retval EFI_SUCCES The protocol was added to ChildHandle.
- @retval EFI_INVALID_PARAMETER ChildHandle is NULL.
- @retval EFI_OUT_OF_RESOURCES There are not enough resources availabe to
+ @retval EFI_SUCCES The protocol was added to ChildHandle.
+ @retval EFI_INVALID_PARAMETER ChildHandle is NULL.
+ @retval EFI_OUT_OF_RESOURCES There are not enough resources availabe to
create the child.
@retval Others The child handle was not created.
@@ -178,22 +233,22 @@ MnpDriverBindingStop (
EFI_STATUS
EFIAPI
MnpServiceBindingCreateChild (
- IN EFI_SERVICE_BINDING_PROTOCOL *This,
- IN OUT EFI_HANDLE *ChildHandle
+ IN EFI_SERVICE_BINDING_PROTOCOL *This,
+ IN OUT EFI_HANDLE *ChildHandle
);
/**
Destroys a child handle with a set of I/O services.
-
- The DestroyChild() function does the opposite of CreateChild(). It removes a
- protocol that was installed by CreateChild() from ChildHandle. If the removed
- protocol is the last protocol on ChildHandle, then ChildHandle is destroyed.
-
- @param[in] This Pointer to the EFI_SERVICE_BINDING_PROTOCOL
+
+ The DestroyChild() function does the opposite of CreateChild(). It removes a
+ protocol that was installed by CreateChild() from ChildHandle. If the removed
+ protocol is the last protocol on ChildHandle, then ChildHandle is destroyed.
+
+ @param[in] This Pointer to the EFI_SERVICE_BINDING_PROTOCOL
instance.
@param[in] ChildHandle Handle of the child to destroy.
- @retval EFI_SUCCES The protocol was removed from ChildHandle.
+ @retval EFI_SUCCES The protocol was removed from ChildHandle.
@retval EFI_UNSUPPORTED ChildHandle does not support the protocol that
is being removed.
@retval EFI_INVALID_PARAMETER ChildHandle is not a valid UEFI handle.
@@ -206,8 +261,8 @@ MnpServiceBindingCreateChild (
EFI_STATUS
EFIAPI
MnpServiceBindingDestroyChild (
- IN EFI_SERVICE_BINDING_PROTOCOL *This,
- IN EFI_HANDLE ChildHandle
+ IN EFI_SERVICE_BINDING_PROTOCOL *This,
+ IN EFI_HANDLE ChildHandle
);
#endif