To align w/ UEFI 2.3 Spec, PXE driver installs PxeBc, LoadFile and SNP Protocol on IPV4/V6 child handle separately.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11112 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
hhuan13
2010-12-01 07:04:48 +00:00
parent 3ae55b76d9
commit 15f3fc850c
2 changed files with 166 additions and 30 deletions

View File

@@ -51,6 +51,7 @@
#include <Library/PcdLib.h>
typedef struct _PXEBC_PRIVATE_DATA PXEBC_PRIVATE_DATA;
typedef struct _PXEBC_PRIVATE_PROTOCOL PXEBC_PRIVATE_PROTOCOL;
typedef struct _PXEBC_VIRTUAL_NIC PXEBC_VIRTUAL_NIC;
#include "PxeBcDriver.h"
@@ -72,13 +73,24 @@ typedef struct _PXEBC_VIRTUAL_NIC PXEBC_VIRTUAL_NIC;
#define PXEBC_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'P')
#define PXEBC_VIRTUAL_NIC_SIGNATURE SIGNATURE_32 ('P', 'X', 'E', 'V')
#define PXEBC_PRIVATE_DATA_FROM_PXEBC(a) CR (a, PXEBC_PRIVATE_DATA, PxeBc, PXEBC_PRIVATE_DATA_SIGNATURE)
#define PXEBC_PRIVATE_DATA_FROM_ID(a) CR (a, PXEBC_PRIVATE_DATA, Id, PXEBC_PRIVATE_DATA_SIGNATURE)
#define PXEBC_VIRTUAL_NIC_FROM_LOADFILE(a) CR (a, PXEBC_VIRTUAL_NIC, LoadFile, PXEBC_VIRTUAL_NIC_SIGNATURE)
#define PXEBC_PRIVATE_GUID \
{ \
0xa4dfac32, 0xfbb4, 0x4907,{0xb3, 0x13, 0x4, 0xe, 0xe2, 0x42, 0x33, 0x20 } \
}
typedef union {
PXEBC_DHCP4_PACKET_CACHE Dhcp4;
PXEBC_DHCP6_PACKET_CACHE Dhcp6;
} PXEBC_DHCP_PACKET_CACHE;
struct _PXEBC_PRIVATE_PROTOCOL {
UINT64 Reserved;
};
struct _PXEBC_VIRTUAL_NIC {
UINT32 Signature;
EFI_HANDLE Controller;
@@ -92,6 +104,9 @@ struct _PXEBC_PRIVATE_DATA {
EFI_HANDLE Controller;
EFI_HANDLE Image;
PXEBC_PRIVATE_PROTOCOL Id;
EFI_SIMPLE_NETWORK_PROTOCOL *Snp;
PXEBC_VIRTUAL_NIC *Ip4Nic;
PXEBC_VIRTUAL_NIC *Ip6Nic;