Copyright (c) 2009 - 2015, 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.
#define BIT | ( | x | ) | (1 << x) |
#define CTRL | ( | x | ) | (0x1F & (x)) |
Referenced by PxeBcSelectBootMenu(), and PxeBcSelectBootPrompt().
#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000" |
#define DEFAULT_UNDI_MAJOR 3 |
#define DEFAULT_UNDI_MINOR 0 |
#define DEFAULT_UNDI_TYPE 1 |
#define DISCOVER_VENDOR_OPTION_BIT_MAP |
Value:
#define GET_NEXT_BOOT_SVR_ENTRY | ( | Ent | ) |
Value:
(PXEBC_BOOT_SVR_ENTRY *) ((UINT8 *) Ent + sizeof (*(Ent)) + \ ((Ent)->IpCnt - 1) * sizeof (EFI_IPv4_ADDRESS))
Referenced by PxeBcExtractDiscoverInfo().
#define GET_NEXT_DHCP_OPTION | ( | Opt | ) |
Value:
(EFI_DHCP4_PACKET_OPTION *) ((UINT8 *) (Opt) + \
sizeof (EFI_DHCP4_PACKET_OPTION) + (Opt)->Length - 1)
#define GET_OPTION_BUFFER_LEN | ( | Pkt | ) | ((Pkt)->Length - sizeof (EFI_DHCP4_HEADER) - 4) |
#define IS_DISABLE_BCAST_DISCOVER | ( | x | ) | (((x) & BIT (0)) == BIT (0)) |
Referenced by PxeBcExtractDiscoverInfo().
#define IS_DISABLE_MCAST_DISCOVER | ( | x | ) | (((x) & BIT (1)) == BIT (1)) |
Referenced by PxeBcExtractDiscoverInfo().
#define IS_DISABLE_PROMPT_MENU | ( | x | ) | (((x) & BIT (3)) == BIT (3)) |
Referenced by PxeBcDhcp4BootInfo(), and PxeBcSelectBootPrompt().
#define IS_ENABLE_USE_SERVER_LIST | ( | x | ) | (((x) & BIT (2)) == BIT (2)) |
Referenced by PxeBcExtractDiscoverInfo().
#define IS_PROXY_DHCP_OFFER | ( | Offer | ) | EFI_IP4_EQUAL (&(Offer)->Dhcp4.Header.YourAddr, &mZeroIp4Addr) |
Referenced by PxeBcCacheDhcp4Offer(), PxeBcHandleDhcp4Offer(), and PxeBcSelectDhcp4Offer().
#define IS_VALID_BOOT_MENU | ( | x | ) |
Value:
((((x)[0]) & BIT (PXEBC_VENDOR_TAG_BOOT_MENU)) \ == BIT (PXEBC_VENDOR_TAG_BOOT_MENU))
Referenced by PxeBcSelectBootMenu().
#define IS_VALID_BOOT_PROMPT | ( | x | ) |
Value:
((((x)[0]) & BIT (PXEBC_VENDOR_TAG_MENU_PROMPT)) \ == BIT (PXEBC_VENDOR_TAG_MENU_PROMPT))
Referenced by PxeBcSelectBootPrompt().
#define IS_VALID_BOOT_SERVERS | ( | x | ) |
Value:
((((x)[0]) & BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS)) \ == BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS))
Referenced by PxeBcDhcp4BootInfo(), and PxeBcExtractDiscoverInfo().
#define IS_VALID_BOOTITEM_VENDOR_OPTION | ( | x | ) |
Value:
(((UINT32) ((x)[PXEBC_VENDOR_TAG_BOOT_ITEM / 32]) & \ BIT (PXEBC_VENDOR_TAG_BOOT_ITEM % 32)) \ == BIT (PXEBC_VENDOR_TAG_BOOT_ITEM % 32))
#define IS_VALID_CREDENTIAL_VENDOR_OPTION | ( | x | ) |
Value:
(((UINT32) ((x)[0]) & BIT (PXEBC_VENDOR_TAG_CREDENTIAL_TYPES)) \ == BIT (PXEBC_VENDOR_TAG_CREDENTIAL_TYPES))
#define IS_VALID_DISCOVER_VENDOR_OPTION | ( | x | ) | (((UINT32) ((x)[0]) & DISCOVER_VENDOR_OPTION_BIT_MAP) != 0) |
Referenced by PxeBcExtractDiscoverInfo(), and PxeBcParseDhcp4Packet().
#define IS_VALID_MTFTP_VENDOR_OPTION | ( | x | ) |
Value:
(((UINT32) ((x)[0]) & MTFTP_VENDOR_OPTION_BIT_MAP) \ == MTFTP_VENDOR_OPTION_BIT_MAP)
Referenced by PxeBcParseDhcp4Packet().
#define MTFTP_VENDOR_OPTION_BIT_MAP |
Value:
#define PXEBC_BOOT_REQUEST_RETRIES 4 |
Referenced by PxeBcDhcp4Discover().
#define PXEBC_BOOT_REQUEST_TIMEOUT 1 |
Referenced by PxeBcDhcp4Discover().
#define PXEBC_BS_DISCOVER_PORT 4011 |
Referenced by PxeBcDhcp4Discover(), PxeBcDhcp6Discover(), and PxeBcRequestBootService().
#define PXEBC_BS_DOWNLOAD_PORT 69 |
#define PXEBC_DHCP4_C_PORT 68 |
#define PXEBC_DHCP4_MAGIC 0x63538263 |
Referenced by PxeBcSeedDhcp4Packet().
#define PXEBC_DHCP4_MSG_TYPE_REQUEST 3 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_OPCODE_REPLY 2 |
#define PXEBC_DHCP4_OPCODE_REQUEST 1 |
Referenced by PxeBcSeedDhcp4Packet().
#define PXEBC_DHCP4_OPTION_MAX_NUM 16 |
Referenced by PxeBcDhcp4Discover(), and PxeBcDhcp4Dora().
#define PXEBC_DHCP4_OPTION_MAX_SIZE 312 |
Referenced by PxeBcDhcp4Discover(), and PxeBcDhcp4Dora().
#define PXEBC_DHCP4_OVERLOAD_FILE 1 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME 2 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_PACKET_MAX_SIZE 1472 |
Referenced by EfiPxeBcStart(), PxeBcBuildDhcp4Options(), and PxeBcDhcp4CallBack().
#define PXEBC_DHCP4_S_PORT 67 |
Referenced by PxeBcDhcp4Discover().
#define PXEBC_DHCP4_TAG_BOOTFILE 67 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_BOOTFILE_LEN 13 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_BROADCAST 28 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_CLASS_ID 60 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_CLIENT_ID 61 |
#define PXEBC_DHCP4_TAG_DNS_SERVER 6 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_DOMAINNAME 15 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_DUMP 14 |
#define PXEBC_DHCP4_TAG_EMTU 22 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_EOP 255 |
Referenced by PxeBcDhcp4Discover(), PxeBcParseDhcp4Options(), PxeBcParseVendorOptions(), and PxeBcSeedDhcp4Packet().
#define PXEBC_DHCP4_TAG_EXTEND_PATH 18 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_HOSTNAME 12 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE 6 |
#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN 0 |
Referenced by PxeBcDhcp4BootInfo().
#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID 5 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_TAG_INDEX_MAX 7 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE 3 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD 2 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID 4 |
Referenced by PxeBcDhcp4BootInfo(), and PxeBcRetryBinlOffer().
#define PXEBC_DHCP4_TAG_INDEX_VENDOR 1 |
Referenced by PxeBcParseDhcp4Packet().
#define PXEBC_DHCP4_TAG_LEASE 51 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_MAXMSG 57 |
Referenced by PxeBcBuildDhcp4Options(), and PxeBcDhcp4CallBack().
#define PXEBC_DHCP4_TAG_MSG_TYPE 53 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_NAME_SERVER 5 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_NETMASK 1 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_NIS_DOMAIN 40 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_NIS_SERVER 41 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_NTP_SERVER 42 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_OVERLOAD 52 |
#define PXEBC_DHCP4_TAG_PAD 0 |
Referenced by PxeBcParseDhcp4Options(), and PxeBcParseVendorOptions().
#define PXEBC_DHCP4_TAG_PARA_LIST 55 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_REQUEST_IP 50 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_ROOTPATH 17 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_ROUTER 3 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_SERVER_ID 54 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_T1 58 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_T2 59 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_TFTP 66 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_TIME_OFFSET 2 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_TIME_SERVER 4 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_TTL 23 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_DHCP4_TAG_VENDOR 43 |
Referenced by PxeBcBuildDhcp4Options(), and PxeBcDhcp4Discover().
#define PXEBC_PXE_DHCP4_TAG_ARCH 93 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_PXE_DHCP4_TAG_UNDI 94 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_PXE_DHCP4_TAG_UUID 97 |
Referenced by PxeBcBuildDhcp4Options().
#define PXEBC_VENDOR_TAG_BOOT_ITEM 71 |
Referenced by PxeBcDhcp4Discover(), and PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_BOOT_MENU 9 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_BOOT_SERVERS 8 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES 12 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_DISCOVER_CTRL 6 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_DISCOVER_MCAST 7 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MCAST_ALLOC 11 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MENU_PROMPT 10 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MTFTP_CPORT 2 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MTFTP_DELAY 5 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MTFTP_IP 1 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MTFTP_SPORT 3 |
Referenced by PxeBcParseVendorOptions().
#define PXEBC_VENDOR_TAG_MTFTP_TIMEOUT 4 |
Referenced by PxeBcParseVendorOptions().
#define SET_VENDOR_OPTION_BIT_MAP | ( | x, | |||
y | ) | (*(x + ((y) / 32)) = (UINT32) ((UINT32) ((x)[(y) / 32]) | BIT ((y) % 32))) |
Referenced by PxeBcParseVendorOptions().
enum PXEBC_OFFER_TYPE |
EFI_STATUS PxeBcDhcp4Discover | ( | IN PXEBC_PRIVATE_DATA * | Private, | |
IN UINT16 | Type, | |||
IN UINT16 * | Layer, | |||
IN BOOLEAN | UseBis, | |||
IN EFI_IP_ADDRESS * | DestIp, | |||
IN UINT16 | IpCount, | |||
IN EFI_PXE_BASE_CODE_SRVLIST * | SrvList | |||
) |
Build and send out the request packet for the bootfile, and parse the reply.
[in] | Private | Pointer to PxeBc private data. |
[in] | Type | PxeBc option boot item type. |
[in] | Layer | Pointer to option boot item layer. |
[in] | UseBis | Use BIS or not. |
[in] | DestIp | Pointer to the server address. |
[in] | IpCount | The total count of the server address. |
[in] | SrvList | Pointer to EFI_PXE_BASE_CODE_SRVLIST. |
EFI_SUCCESS | Successfully discovered boot file. | |
EFI_OUT_OF_RESOURCES | Failed to allocate resource. | |
EFI_NOT_FOUND | Can't get the PXE reply packet. | |
Others | Failed to discover boot file. |
References PXEBC_OPTION_BOOT_ITEM::Layer, PXEBC_BOOT_REQUEST_RETRIES, PXEBC_BOOT_REQUEST_TIMEOUT, PXEBC_BS_DISCOVER_PORT, PXEBC_DHCP4_OPTION_MAX_NUM, PXEBC_DHCP4_OPTION_MAX_SIZE, PXEBC_DHCP4_S_PORT, PXEBC_DHCP4_TAG_EOP, PXEBC_DHCP4_TAG_VENDOR, PXEBC_VENDOR_TAG_BOOT_ITEM, PxeBcBuildDhcp4Options(), PxeBcCacheDhcp4Packet(), and PXEBC_OPTION_BOOT_ITEM::Type.
Referenced by PxeBcDiscoverBootServer(), and PxeBcRetryBinlOffer().
EFI_STATUS PxeBcDhcp4Dora | ( | IN PXEBC_PRIVATE_DATA * | Private, | |
IN EFI_DHCP4_PROTOCOL * | Dhcp4 | |||
) |
Start the D.O.R.A DHCPv4 process to acquire the IPv4 address and other PXE boot information.
[in] | Private | Pointer to PxeBc private data. |
[in] | Dhcp4 | Pointer to the EFI_DHCP4_PROTOCOL |
EFI_SUCCESS | The D.O.R.A process successfully finished. | |
Others | Failed to finish the D.O.R.A process. |
References mPxeDhcpTimeout, PXEBC_DHCP4_OPTION_MAX_NUM, PXEBC_DHCP4_OPTION_MAX_SIZE, PXEBC_DHCP_RETRIES, PxeBcBuildDhcp4Options(), PxeBcDhcp4CallBack(), PxeBcFlushStationIp(), PxeBcHandleDhcp4Offer(), and PxeBcShowIp4Addr().
Referenced by EfiPxeBcDhcp().
EFI_STATUS PxeBcParseDhcp4Packet | ( | IN PXEBC_DHCP4_PACKET_CACHE * | Cache4 | ) |
Parse the cached DHCPv4 packet, including all the options.
[in] | Cache4 | Pointer to cached DHCPv4 packet. |
EFI_SUCCESS | Parsed the DHCPv4 packet successfully. | |
EFI_DEVICE_ERROR | Failed to parse and invalid packet. |
[in] | Cache4 | Pointer to cached DHCPv4 packet. |
EFI_SUCCESS | Parsed the DHCPv4 packet successfully. | |
EFI_DEVICE_ERROR | Failed to parse and invalid packet. |
References DEFAULT_CLASS_ID_DATA, GET_OPTION_BUFFER_LEN, IS_VALID_DISCOVER_VENDOR_OPTION, IS_VALID_MTFTP_VENDOR_OPTION, mInterestedDhcp4Tags, PXEBC_DHCP4_OVERLOAD_FILE, PXEBC_DHCP4_OVERLOAD_SERVER_NAME, PXEBC_DHCP4_TAG_INDEX_BOOTFILE, PXEBC_DHCP4_TAG_INDEX_CLASS_ID, PXEBC_DHCP4_TAG_INDEX_MAX, PXEBC_DHCP4_TAG_INDEX_MSG_TYPE, PXEBC_DHCP4_TAG_INDEX_OVERLOAD, PXEBC_DHCP4_TAG_INDEX_VENDOR, PxeBcParseDhcp4Options(), PxeBcParseVendorOptions(), PxeOfferTypeBootp, PxeOfferTypeDhcpBinl, PxeOfferTypeDhcpOnly, PxeOfferTypeDhcpPxe10, PxeOfferTypeProxyBinl, and PxeOfferTypeProxyPxe10.
Referenced by EfiPxeBcDiscover(), PxeBcCacheDhcp4Offer(), PxeBcCopyDhcp4Ack(), PxeBcCopyProxyOffer(), and PxeBcRetryBinlOffer().
VOID PxeBcSeedDhcp4Packet | ( | OUT EFI_DHCP4_PACKET * | Seed, | |
IN EFI_UDP4_PROTOCOL * | Udp4 | |||
) |
Create a template DHCPv4 packet as a seed.
[out] | Seed | Pointer to the seed packet. |
[in] | Udp4 | Pointer to EFI_UDP4_PROTOCOL. |
References PXEBC_DHCP4_MAGIC, PXEBC_DHCP4_OPCODE_REQUEST, and PXEBC_DHCP4_TAG_EOP.
Referenced by EfiPxeBcStart().
EFI_STATUS PxeBcSetIp4Policy | ( | IN PXEBC_PRIVATE_DATA * | Private | ) |
Switch the Ip4 policy to static.
[in] | Private | The pointer to PXEBC_PRIVATE_DATA. |
EFI_SUCCESS | The policy is already configured to static. | |
Others | Other error as indicated.. |
References Policy.
Referenced by EfiPxeBcStart().