#ifndef __EFI_PXEBC_DHCP6_H__\r
#define __EFI_PXEBC_DHCP6_H__\r
\r
-#define PXEBC_DHCP6_OPTION_MAX_NUM 16\r
-#define PXEBC_DHCP6_OPTION_MAX_SIZE 312\r
-#define PXEBC_DHCP6_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))\r
-#define PXEBC_IP6_POLICY_MAX 0xff\r
-#define PXEBC_IP6_ROUTE_TABLE_TIMEOUT 10\r
+#define PXEBC_DHCP6_OPTION_MAX_NUM 16\r
+#define PXEBC_DHCP6_OPTION_MAX_SIZE 312\r
+#define PXEBC_DHCP6_PACKET_MAX_SIZE (sizeof (EFI_PXE_BASE_CODE_PACKET))\r
+#define PXEBC_IP6_POLICY_MAX 0xff\r
+#define PXEBC_IP6_ROUTE_TABLE_TIMEOUT 10\r
\r
-#define PXEBC_DHCP6_S_PORT 547\r
-#define PXEBC_DHCP6_C_PORT 546\r
+#define PXEBC_DHCP6_S_PORT 547\r
+#define PXEBC_DHCP6_C_PORT 546\r
\r
-#define PXEBC_DHCP6_ENTERPRISE_NUM 343 // TODO: IANA TBD: temporarily using Intel's\r
-#define PXEBC_DHCP6_MAX_BOOT_FILE_SIZE 65535 // It's a limitation of bit length, 65535*512 bytes.\r
+#define PXEBC_DHCP6_ENTERPRISE_NUM 343 // TODO: IANA TBD: temporarily using Intel's\r
+#define PXEBC_DHCP6_MAX_BOOT_FILE_SIZE 65535 // It's a limitation of bit length, 65535*512 bytes.\r
\r
-\r
-#define PXEBC_DHCP6_IDX_IA_NA 0\r
-#define PXEBC_DHCP6_IDX_BOOT_FILE_URL 1\r
-#define PXEBC_DHCP6_IDX_BOOT_FILE_PARAM 2\r
-#define PXEBC_DHCP6_IDX_VENDOR_CLASS 3\r
-#define PXEBC_DHCP6_IDX_DNS_SERVER 4\r
-#define PXEBC_DHCP6_IDX_MAX 5\r
+#define PXEBC_DHCP6_IDX_IA_NA 0\r
+#define PXEBC_DHCP6_IDX_BOOT_FILE_URL 1\r
+#define PXEBC_DHCP6_IDX_BOOT_FILE_PARAM 2\r
+#define PXEBC_DHCP6_IDX_VENDOR_CLASS 3\r
+#define PXEBC_DHCP6_IDX_DNS_SERVER 4\r
+#define PXEBC_DHCP6_IDX_MAX 5\r
\r
#define PXEBC_DHCP6_BOOT_FILE_URL_PREFIX "tftp://"\r
#define PXEBC_TFTP_URL_SEPARATOR '/'\r
(Type) == PxeOfferTypeProxyPxe10 || \\r
(Type) == PxeOfferTypeProxyWfm11a)\r
\r
-\r
#pragma pack(1)\r
typedef struct {\r
- UINT16 OpCode[256];\r
+ UINT16 OpCode[256];\r
} PXEBC_DHCP6_OPTION_ORO;\r
\r
typedef struct {\r
- UINT8 Type;\r
- UINT8 MajorVer;\r
- UINT8 MinorVer;\r
+ UINT8 Type;\r
+ UINT8 MajorVer;\r
+ UINT8 MinorVer;\r
} PXEBC_DHCP6_OPTION_UNDI;\r
\r
typedef struct {\r
- UINT16 Type;\r
+ UINT16 Type;\r
} PXEBC_DHCP6_OPTION_ARCH;\r
\r
typedef struct {\r
- UINT8 ClassIdentifier[10];\r
- UINT8 ArchitecturePrefix[5];\r
- UINT8 ArchitectureType[5];\r
- UINT8 Lit3[1];\r
- UINT8 InterfaceName[4];\r
- UINT8 Lit4[1];\r
- UINT8 UndiMajor[3];\r
- UINT8 UndiMinor[3];\r
+ UINT8 ClassIdentifier[10];\r
+ UINT8 ArchitecturePrefix[5];\r
+ UINT8 ArchitectureType[5];\r
+ UINT8 Lit3[1];\r
+ UINT8 InterfaceName[4];\r
+ UINT8 Lit4[1];\r
+ UINT8 UndiMajor[3];\r
+ UINT8 UndiMinor[3];\r
} PXEBC_CLASS_ID;\r
\r
typedef struct {\r
- UINT32 Vendor;\r
- UINT16 ClassLen;\r
- PXEBC_CLASS_ID ClassId;\r
+ UINT32 Vendor;\r
+ UINT16 ClassLen;\r
+ PXEBC_CLASS_ID ClassId;\r
} PXEBC_DHCP6_OPTION_VENDOR_CLASS;\r
\r
#pragma pack()\r
\r
typedef union {\r
- PXEBC_DHCP6_OPTION_ORO *Oro;\r
- PXEBC_DHCP6_OPTION_UNDI *Undi;\r
- PXEBC_DHCP6_OPTION_ARCH *Arch;\r
- PXEBC_DHCP6_OPTION_VENDOR_CLASS *VendorClass;\r
+ PXEBC_DHCP6_OPTION_ORO *Oro;\r
+ PXEBC_DHCP6_OPTION_UNDI *Undi;\r
+ PXEBC_DHCP6_OPTION_ARCH *Arch;\r
+ PXEBC_DHCP6_OPTION_VENDOR_CLASS *VendorClass;\r
} PXEBC_DHCP6_OPTION_ENTRY;\r
\r
typedef struct {\r
- LIST_ENTRY Link;\r
- EFI_DHCP6_PACKET_OPTION *Option;\r
- UINT8 Precedence;\r
+ LIST_ENTRY Link;\r
+ EFI_DHCP6_PACKET_OPTION *Option;\r
+ UINT8 Precedence;\r
} PXEBC_DHCP6_OPTION_NODE;\r
\r
#define PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE (OFFSET_OF (EFI_DHCP6_PACKET, Dhcp6) + PXEBC_DHCP6_PACKET_MAX_SIZE)\r
\r
typedef union {\r
- EFI_DHCP6_PACKET Offer;\r
- EFI_DHCP6_PACKET Ack;\r
- UINT8 Buffer[PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE];\r
+ EFI_DHCP6_PACKET Offer;\r
+ EFI_DHCP6_PACKET Ack;\r
+ UINT8 Buffer[PXEBC_CACHED_DHCP6_PACKET_MAX_SIZE];\r
} PXEBC_DHCP6_PACKET;\r
\r
typedef struct {\r
- PXEBC_DHCP6_PACKET Packet;\r
- PXEBC_OFFER_TYPE OfferType;\r
- EFI_DHCP6_PACKET_OPTION *OptList[PXEBC_DHCP6_IDX_MAX];\r
+ PXEBC_DHCP6_PACKET Packet;\r
+ PXEBC_OFFER_TYPE OfferType;\r
+ EFI_DHCP6_PACKET_OPTION *OptList[PXEBC_DHCP6_IDX_MAX];\r
} PXEBC_DHCP6_PACKET_CACHE;\r
\r
-\r
-\r
-\r
/**\r
Parse the Boot File URL option.\r
\r
**/\r
EFI_STATUS\r
PxeBcExtractBootFileUrl (\r
- IN PXEBC_PRIVATE_DATA *Private,\r
- OUT UINT8 **FileName,\r
- IN OUT EFI_IPv6_ADDRESS *SrvAddr,\r
- IN CHAR8 *BootFile,\r
- IN UINT16 Length\r
+ IN PXEBC_PRIVATE_DATA *Private,\r
+ OUT UINT8 **FileName,\r
+ IN OUT EFI_IPv6_ADDRESS *SrvAddr,\r
+ IN CHAR8 *BootFile,\r
+ IN UINT16 Length\r
);\r
\r
-\r
/**\r
Parse the Boot File Parameter option.\r
\r
**/\r
EFI_STATUS\r
PxeBcExtractBootFileParam (\r
- IN CHAR8 *BootFilePara,\r
- OUT UINT16 *BootFileSize\r
+ IN CHAR8 *BootFilePara,\r
+ OUT UINT16 *BootFileSize\r
);\r
\r
-\r
/**\r
Parse the cached DHCPv6 packet, including all the options.\r
\r
IN PXEBC_DHCP6_PACKET_CACHE *Cache6\r
);\r
\r
-\r
/**\r
Register the ready address by Ip6Config protocol.\r
\r
**/\r
EFI_STATUS\r
PxeBcRegisterIp6Address (\r
- IN PXEBC_PRIVATE_DATA *Private,\r
- IN EFI_IPv6_ADDRESS *Address\r
+ IN PXEBC_PRIVATE_DATA *Private,\r
+ IN EFI_IPv6_ADDRESS *Address\r
);\r
\r
-\r
/**\r
Unregister the address by Ip6Config protocol.\r
\r
**/\r
VOID\r
PxeBcUnregisterIp6Address (\r
- IN PXEBC_PRIVATE_DATA *Private\r
+ IN PXEBC_PRIVATE_DATA *Private\r
);\r
\r
-\r
/**\r
Build and send out the request packet for the bootfile, and parse the reply.\r
\r
**/\r
EFI_STATUS\r
PxeBcDhcp6Discover (\r
- IN PXEBC_PRIVATE_DATA *Private,\r
- IN UINT16 Type,\r
- IN UINT16 *Layer,\r
- IN BOOLEAN UseBis,\r
- IN EFI_IP_ADDRESS *DestIp\r
+ IN PXEBC_PRIVATE_DATA *Private,\r
+ IN UINT16 Type,\r
+ IN UINT16 *Layer,\r
+ IN BOOLEAN UseBis,\r
+ IN EFI_IP_ADDRESS *DestIp\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
PxeBcSetIp6Policy (\r
- IN PXEBC_PRIVATE_DATA *Private\r
+ IN PXEBC_PRIVATE_DATA *Private\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
PxeBcSetIp6Address (\r
- IN PXEBC_PRIVATE_DATA *Private\r
+ IN PXEBC_PRIVATE_DATA *Private\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
PxeBcDhcp6Sarr (\r
- IN PXEBC_PRIVATE_DATA *Private,\r
- IN EFI_DHCP6_PROTOCOL *Dhcp6\r
+ IN PXEBC_PRIVATE_DATA *Private,\r
+ IN EFI_DHCP6_PROTOCOL *Dhcp6\r
);\r
\r
#endif\r
-\r