]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Network/UefiPxeBcDxe/PxeBcDhcp.h
[Change summary]:
[mirror_edk2.git] / MdeModulePkg / Universal / Network / UefiPxeBcDxe / PxeBcDhcp.h
index d1e6ca28d29fab82523da3eb73d7cafb64dcb995..829caa8bbf5f9e51428413d124b76c7740be2d4d 100644 (file)
@@ -15,115 +15,109 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #ifndef __EFI_PXEBC_DHCP_H__\r
 #define __EFI_PXEBC_DHCP_H__\r
 \r
-typedef enum {\r
-  PXEBC_DHCP4_MAX_OPTION_NUM        = 16,\r
-  PXEBC_DHCP4_MAX_OPTION_SIZE       = 312,\r
-  PXEBC_DHCP4_MAX_PACKET_SIZE       = 1472,\r
-\r
-  PXEBC_DHCP4_S_PORT                = 67,\r
-  PXEBC_DHCP4_C_PORT                = 68,\r
-  PXEBC_BS_DOWNLOAD_PORT            = 69,\r
-  PXEBC_BS_DISCOVER_PORT            = 4011,\r
-\r
-  PXEBC_DHCP4_OPCODE_REQUEST        = 1,\r
-  PXEBC_DHCP4_OPCODE_REPLY          = 2,\r
-  PXEBC_DHCP4_MSG_TYPE_REQUEST      = 3,\r
-  PXEBC_DHCP4_MAGIC                 = 0x63538263, // network byte order\r
-  //\r
-  // Dhcp Options\r
-  //\r
-  PXEBC_DHCP4_TAG_PAD               = 0,    // Pad Option\r
-  PXEBC_DHCP4_TAG_EOP               = 255,  // End Option\r
-  PXEBC_DHCP4_TAG_NETMASK           = 1,    // Subnet Mask\r
-  PXEBC_DHCP4_TAG_TIME_OFFSET       = 2,    // Time Offset from UTC\r
-  PXEBC_DHCP4_TAG_ROUTER            = 3,    // Router option,\r
-  PXEBC_DHCP4_TAG_TIME_SERVER       = 4,    // Time Server\r
-  PXEBC_DHCP4_TAG_NAME_SERVER       = 5,    // Name Server\r
-  PXEBC_DHCP4_TAG_DNS_SERVER        = 6,    // Domain Name Server\r
-  PXEBC_DHCP4_TAG_HOSTNAME          = 12,   // Host Name\r
-  PXEBC_DHCP4_TAG_BOOTFILE_LEN      = 13,   // Boot File Size\r
-  PXEBC_DHCP4_TAG_DUMP              = 14,   // Merit Dump File\r
-  PXEBC_DHCP4_TAG_DOMAINNAME        = 15,   // Domain Name\r
-  PXEBC_DHCP4_TAG_ROOTPATH          = 17,   // Root path\r
-  PXEBC_DHCP4_TAG_EXTEND_PATH       = 18,   // Extensions Path\r
-  PXEBC_DHCP4_TAG_EMTU              = 22,   // Maximum Datagram Reassembly Size\r
-  PXEBC_DHCP4_TAG_TTL               = 23,   // Default IP Time-to-live\r
-  PXEBC_DHCP4_TAG_BROADCAST         = 28,   // Broadcast Address\r
-  PXEBC_DHCP4_TAG_NIS_DOMAIN        = 40,   // Network Information Service Domain\r
-  PXEBC_DHCP4_TAG_NIS_SERVER        = 41,   // Network Information Servers\r
-  PXEBC_DHCP4_TAG_NTP_SERVER        = 42,   // Network Time Protocol Servers\r
-  PXEBC_DHCP4_TAG_VENDOR            = 43,   // Vendor Specific Information\r
-  PXEBC_DHCP4_TAG_REQUEST_IP        = 50,   // Requested IP Address\r
-  PXEBC_DHCP4_TAG_LEASE             = 51,   // IP Address Lease Time\r
-  PXEBC_DHCP4_TAG_OVERLOAD          = 52,   // Option Overload\r
-  PXEBC_DHCP4_TAG_MSG_TYPE          = 53,   // DHCP Message Type\r
-  PXEBC_DHCP4_TAG_SERVER_ID         = 54,   // Server Identifier\r
-  PXEBC_DHCP4_TAG_PARA_LIST         = 55,   // Parameter Request List\r
-  PXEBC_DHCP4_TAG_MAXMSG            = 57,   // Maximum DHCP Message Size\r
-  PXEBC_DHCP4_TAG_T1                = 58,   // Renewal (T1) Time Value\r
-  PXEBC_DHCP4_TAG_T2                = 59,   // Rebinding (T2) Time Value\r
-  PXEBC_DHCP4_TAG_CLASS_ID          = 60,   // Vendor class identifier\r
-  PXEBC_DHCP4_TAG_CLIENT_ID         = 61,   // Client-identifier\r
-  PXEBC_DHCP4_TAG_TFTP              = 66,   // TFTP server name\r
-  PXEBC_DHCP4_TAG_BOOTFILE          = 67,   // Bootfile name\r
-  PXEBC_PXE_DHCP4_TAG_ARCH          = 93,\r
-  PXEBC_PXE_DHCP4_TAG_UNDI          = 94,\r
-  PXEBC_PXE_DHCP4_TAG_UUID          = 97,\r
-  //\r
-  // Sub-Options in Dhcp Vendor Option\r
-  //\r
-  PXEBC_VENDOR_TAG_MTFTP_IP         = 1,\r
-  PXEBC_VENDOR_TAG_MTFTP_CPORT      = 2,\r
-  PXEBC_VENDOR_TAG_MTFTP_SPORT      = 3,\r
-  PXEBC_VENDOR_TAG_MTFTP_TIMEOUT    = 4,\r
-  PXEBC_VENDOR_TAG_MTFTP_DELAY      = 5,\r
-  PXEBC_VENDOR_TAG_DISCOVER_CTRL    = 6,\r
-  PXEBC_VENDOR_TAG_DISCOVER_MCAST   = 7,\r
-  PXEBC_VENDOR_TAG_BOOT_SERVERS     = 8,\r
-  PXEBC_VENDOR_TAG_BOOT_MENU        = 9,\r
-  PXEBC_VENDOR_TAG_MENU_PROMPT      = 10,\r
-  PXEBC_VENDOR_TAG_MCAST_ALLOC      = 11,\r
-  PXEBC_VENDOR_TAG_CREDENTIAL_TYPES = 12,\r
-  PXEBC_VENDOR_TAG_BOOT_ITEM        = 71,\r
-\r
-  PXEBC_DHCP4_DISCOVER_INIT_TIMEOUT = 4,\r
-  PXEBC_DHCP4_DISCOVER_RETRIES      = 4,\r
-\r
-  PXEBC_MAX_MENU_NUM                = 24,\r
-  PXEBC_MAX_OFFER_NUM               = 16,\r
-\r
-  PXEBC_BOOT_REQUEST_TIMEOUT        = 1,\r
-  PXEBC_BOOT_REQUEST_RETRIES        = 4,\r
-\r
-  PXEBC_DHCP4_OVERLOAD_FILE         = 1,\r
-  PXEBC_DHCP4_OVERLOAD_SERVER_NAME  = 2\r
-} PXEBC_ENUM_TYPES;\r
+#define PXEBC_DHCP4_MAX_OPTION_NUM         16\r
+#define PXEBC_DHCP4_MAX_OPTION_SIZE        312\r
+#define PXEBC_DHCP4_MAX_PACKET_SIZE        1472\r
+\r
+#define PXEBC_DHCP4_S_PORT                 67\r
+#define PXEBC_DHCP4_C_PORT                 68\r
+#define PXEBC_BS_DOWNLOAD_PORT             69\r
+#define PXEBC_BS_DISCOVER_PORT             4011\r
+\r
+#define PXEBC_DHCP4_OPCODE_REQUEST         1\r
+#define PXEBC_DHCP4_OPCODE_REPLY           2\r
+#define PXEBC_DHCP4_MSG_TYPE_REQUEST       3\r
+#define PXEBC_DHCP4_MAGIC                  0x63538263 // network byte order\r
+//\r
+// Dhcp Options\r
+//\r
+#define PXEBC_DHCP4_TAG_PAD                0    // Pad Option\r
+#define PXEBC_DHCP4_TAG_EOP                255  // End Option\r
+#define PXEBC_DHCP4_TAG_NETMASK            1    // Subnet Mask\r
+#define PXEBC_DHCP4_TAG_TIME_OFFSET        2    // Time Offset from UTC\r
+#define PXEBC_DHCP4_TAG_ROUTER             3    // Router option,\r
+#define PXEBC_DHCP4_TAG_TIME_SERVER        4    // Time Server\r
+#define PXEBC_DHCP4_TAG_NAME_SERVER        5    // Name Server\r
+#define PXEBC_DHCP4_TAG_DNS_SERVER         6    // Domain Name Server\r
+#define PXEBC_DHCP4_TAG_HOSTNAME           12   // Host Name\r
+#define PXEBC_DHCP4_TAG_BOOTFILE_LEN       13   // Boot File Size\r
+#define PXEBC_DHCP4_TAG_DUMP               14   // Merit Dump File\r
+#define PXEBC_DHCP4_TAG_DOMAINNAME         15   // Domain Name\r
+#define PXEBC_DHCP4_TAG_ROOTPATH           17   // Root path\r
+#define PXEBC_DHCP4_TAG_EXTEND_PATH        18   // Extensions Path\r
+#define PXEBC_DHCP4_TAG_EMTU               22   // Maximum Datagram Reassembly Size\r
+#define PXEBC_DHCP4_TAG_TTL                23   // Default IP Time-to-live\r
+#define PXEBC_DHCP4_TAG_BROADCAST          28   // Broadcast Address\r
+#define PXEBC_DHCP4_TAG_NIS_DOMAIN         40   // Network Information Service Domain\r
+#define PXEBC_DHCP4_TAG_NIS_SERVER         41   // Network Information Servers\r
+#define PXEBC_DHCP4_TAG_NTP_SERVER         42   // Network Time Protocol Servers\r
+#define PXEBC_DHCP4_TAG_VENDOR             43   // Vendor Specific Information\r
+#define PXEBC_DHCP4_TAG_REQUEST_IP         50   // Requested IP Address\r
+#define PXEBC_DHCP4_TAG_LEASE              51   // IP Address Lease Time\r
+#define PXEBC_DHCP4_TAG_OVERLOAD           52   // Option Overload\r
+#define PXEBC_DHCP4_TAG_MSG_TYPE           53   // DHCP Message Type\r
+#define PXEBC_DHCP4_TAG_SERVER_ID          54   // Server Identifier\r
+#define PXEBC_DHCP4_TAG_PARA_LIST          55   // Parameter Request List\r
+#define PXEBC_DHCP4_TAG_MAXMSG             57   // Maximum DHCP Message Size\r
+#define PXEBC_DHCP4_TAG_T1                 58   // Renewal (T1) Time Value\r
+#define PXEBC_DHCP4_TAG_T2                 59   // Rebinding (T2) Time Value\r
+#define PXEBC_DHCP4_TAG_CLASS_ID           60   // Vendor class identifier\r
+#define PXEBC_DHCP4_TAG_CLIENT_ID          61   // Client-identifier\r
+#define PXEBC_DHCP4_TAG_TFTP               66   // TFTP server name\r
+#define PXEBC_DHCP4_TAG_BOOTFILE           67   // Bootfile name\r
+#define PXEBC_PXE_DHCP4_TAG_ARCH           93\r
+#define PXEBC_PXE_DHCP4_TAG_UNDI           94\r
+#define PXEBC_PXE_DHCP4_TAG_UUID           97\r
+//\r
+// Sub-Options in Dhcp Vendor Option\r
+//\r
+#define PXEBC_VENDOR_TAG_MTFTP_IP          1\r
+#define PXEBC_VENDOR_TAG_MTFTP_CPORT       2\r
+#define PXEBC_VENDOR_TAG_MTFTP_SPORT       3\r
+#define PXEBC_VENDOR_TAG_MTFTP_TIMEOUT     4\r
+#define PXEBC_VENDOR_TAG_MTFTP_DELAY       5\r
+#define PXEBC_VENDOR_TAG_DISCOVER_CTRL     6\r
+#define PXEBC_VENDOR_TAG_DISCOVER_MCAST    7\r
+#define PXEBC_VENDOR_TAG_BOOT_SERVERS      8\r
+#define PXEBC_VENDOR_TAG_BOOT_MENU         9\r
+#define PXEBC_VENDOR_TAG_MENU_PROMPT       10\r
+#define PXEBC_VENDOR_TAG_MCAST_ALLOC       11\r
+#define PXEBC_VENDOR_TAG_CREDENTIAL_TYPES  12\r
+#define PXEBC_VENDOR_TAG_BOOT_ITEM         71\r
+\r
+#define PXEBC_DHCP4_DISCOVER_INIT_TIMEOUT  4\r
+#define PXEBC_DHCP4_DISCOVER_RETRIES       4\r
+\r
+#define PXEBC_MAX_MENU_NUM                 24\r
+#define PXEBC_MAX_OFFER_NUM                16\r
+\r
+#define PXEBC_BOOT_REQUEST_TIMEOUT         1\r
+#define PXEBC_BOOT_REQUEST_RETRIES         4\r
+\r
+#define PXEBC_DHCP4_OVERLOAD_FILE          1\r
+#define PXEBC_DHCP4_OVERLOAD_SERVER_NAME   2\r
 \r
 //\r
 // The array index of the DHCP4 option tag interested\r
 //\r
-typedef enum {\r
-  PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN,\r
-  PXEBC_DHCP4_TAG_INDEX_VENDOR,\r
-  PXEBC_DHCP4_TAG_INDEX_OVERLOAD,\r
-  PXEBC_DHCP4_TAG_INDEX_MSG_TYPE,\r
-  PXEBC_DHCP4_TAG_INDEX_SERVER_ID,\r
-  PXEBC_DHCP4_TAG_INDEX_CLASS_ID,\r
-  PXEBC_DHCP4_TAG_INDEX_BOOTFILE,\r
-  PXEBC_DHCP4_TAG_INDEX_MAX\r
-} PXEBC_DHCP4_TAG_INDEX_ENUM_TYPES;\r
+#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE_LEN 0\r
+#define PXEBC_DHCP4_TAG_INDEX_VENDOR       1\r
+#define PXEBC_DHCP4_TAG_INDEX_OVERLOAD     2\r
+#define PXEBC_DHCP4_TAG_INDEX_MSG_TYPE     3\r
+#define PXEBC_DHCP4_TAG_INDEX_SERVER_ID    4\r
+#define PXEBC_DHCP4_TAG_INDEX_CLASS_ID     5\r
+#define PXEBC_DHCP4_TAG_INDEX_BOOTFILE     6\r
+#define PXEBC_DHCP4_TAG_INDEX_MAX          7\r
 \r
 //\r
 // The type of DHCP OFFER, arranged by priority, PXE10 has the highest priority.\r
 //\r
-typedef enum {\r
-  DHCP4_PACKET_TYPE_PXE10,\r
-  DHCP4_PACKET_TYPE_WFM11A,\r
-  DHCP4_PACKET_TYPE_BINL,\r
-  DHCP4_PACKET_TYPE_DHCP_ONLY,\r
-  DHCP4_PACKET_TYPE_MAX,\r
-  DHCP4_PACKET_TYPE_BOOTP           = DHCP4_PACKET_TYPE_MAX\r
-} DHCP4_PACKET_TYPE_ENUM_TYPES;\r
+#define DHCP4_PACKET_TYPE_PXE10            0\r
+#define DHCP4_PACKET_TYPE_WFM11A           1\r
+#define DHCP4_PACKET_TYPE_BINL             2\r
+#define DHCP4_PACKET_TYPE_DHCP_ONLY        3\r
+#define DHCP4_PACKET_TYPE_MAX              4\r
+#define DHCP4_PACKET_TYPE_BOOTP            DHCP4_PACKET_TYPE_MAX\r
 \r
 #define BIT(x)  (1 << x)\r
 #define CTRL(x) (0x1F & (x))\r
@@ -274,13 +268,14 @@ typedef struct {
 \r
 #define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE  (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_MAX_PACKET_SIZE)\r
 \r
-typedef struct {\r
-  union {\r
-    EFI_DHCP4_PACKET  Offer;\r
-    EFI_DHCP4_PACKET  Ack;\r
-    UINT8             Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];\r
-  } Packet;\r
+typedef union {\r
+  EFI_DHCP4_PACKET  Offer;\r
+  EFI_DHCP4_PACKET  Ack;\r
+  UINT8             Buffer[PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE];\r
+} PXEBC_DHCP4_PACKET;\r
 \r
+typedef struct {\r
+  PXEBC_DHCP4_PACKET      Packet;\r
   BOOLEAN                 IsPxeOffer;\r
   UINT8                   OfferType;\r
   EFI_DHCP4_PACKET_OPTION *Dhcp4Option[PXEBC_DHCP4_TAG_INDEX_MAX];\r
@@ -305,8 +300,6 @@ typedef struct {
   @param  Seed    Pointer to the message instance of the DHCP4 packet.\r
   @param  Udp4    Pointer to the EFI_UDP4_PROTOCOL instance.\r
 \r
-  @return none.\r
-\r
 **/\r
 VOID\r
 PxeBcInitSeedPacket (\r
@@ -440,15 +433,13 @@ PxeBcBuildDhcpOptions (
 \r
 \r
 /**\r
-  Create the boot options\r
+  Create the boot options.\r
 \r
   @param  OptList    Pointer to the list of the options\r
   @param  Type       the type of option\r
   @param  Layer      the layer of the boot options \r
   @param  OptLen     length of opotion\r
 \r
-  @return None.\r
-\r
 **/\r
 VOID\r
 PxeBcCreateBootOptions (\r