]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/UefiPxeBcDxe/PxeBcDhcp4.h
NetworkPkg: Apply uncrustify changes
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcDhcp4.h
index 248dc60d2c165ade18a2968e31247799f78d47fb..45cef56720b8dc8b74119207dc180f73e418bb4d 100644 (file)
@@ -1,73 +1,27 @@
 /** @file\r
   Functions declaration related with DHCPv4 for UefiPxeBc Driver.\r
 \r
-  Copyright (c) 2009 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>\r
 \r
-  This program and the accompanying materials\r
-  are licensed and made available under the terms and conditions of the BSD License\r
-  which accompanies this distribution.  The full text of the license may be found at\r
-  http://opensource.org/licenses/bsd-license.php.\r
-\r
-  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+  SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
 #ifndef __EFI_PXEBC_DHCP4_H__\r
 #define __EFI_PXEBC_DHCP4_H__\r
 \r
-#define PXEBC_DHCP4_OPTION_MAX_NUM         16\r
-#define PXEBC_DHCP4_OPTION_MAX_SIZE        312\r
-#define PXEBC_DHCP4_PACKET_MAX_SIZE        1472\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
-#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
+#define PXEBC_DHCP4_OPTION_MAX_NUM    16\r
+#define PXEBC_DHCP4_OPTION_MAX_SIZE   312\r
+#define PXEBC_DHCP4_PACKET_MAX_SIZE   (sizeof (EFI_PXE_BASE_CODE_PACKET))\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
+#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
-//\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_CREDENTIAL_TYPES  12\r
 #define PXEBC_VENDOR_TAG_BOOT_ITEM         71\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
+#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
-#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
+#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
 // Dhcp4 and Dhcp6 share this definition, and corresponding\r
-// relatioinship is as follows:\r
+// relationship is as follows:\r
 //\r
 //   Dhcp4Discover <> Dhcp6Solicit\r
 //   Dhcp4Offer    <> Dhcp6Advertise\r
@@ -125,12 +78,12 @@ typedef enum {
   PxeOfferTypeMax\r
 } PXEBC_OFFER_TYPE;\r
 \r
-#define BIT(x)                (1 << x)\r
-#define CTRL(x)               (0x1F & (x))\r
-#define DEFAULT_CLASS_ID_DATA "PXEClient:Arch:xxxxx:UNDI:003000"\r
-#define DEFAULT_UNDI_TYPE     1\r
-#define DEFAULT_UNDI_MAJOR    3\r
-#define DEFAULT_UNDI_MINOR    0\r
+#define BIT(x)   (1 << x)\r
+#define CTRL(x)  (0x1F & (x))\r
+#define DEFAULT_CLASS_ID_DATA  "PXEClient:Arch:xxxxx:UNDI:003000"\r
+#define DEFAULT_UNDI_TYPE      1\r
+#define DEFAULT_UNDI_MAJOR     3\r
+#define DEFAULT_UNDI_MINOR     0\r
 \r
 #define MTFTP_VENDOR_OPTION_BIT_MAP \\r
   (BIT (PXEBC_VENDOR_TAG_MTFTP_IP) | \\r
@@ -148,7 +101,7 @@ typedef enum {
 \r
 #define IS_VALID_BOOT_SERVERS(x) \\r
   ((((x)[0]) & BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS)) \\r
-   == BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS))  \r
+   == BIT (PXEBC_VENDOR_TAG_BOOT_SERVERS))\r
 \r
 #define IS_VALID_BOOT_PROMPT(x) \\r
   ((((x)[0]) & BIT (PXEBC_VENDOR_TAG_MENU_PROMPT)) \\r
@@ -203,120 +156,120 @@ typedef enum {
 #define IS_DISABLE_PROMPT_MENU(x) \\r
   (((x) & BIT (3)) == BIT (3))\r
 \r
-\r
 #pragma pack(1)\r
 typedef struct {\r
-  UINT8 ParaList[135];\r
+  UINT8    ParaList[135];\r
 } PXEBC_DHCP4_OPTION_PARA;\r
 \r
 typedef struct {\r
-  UINT16  Size;\r
+  UINT16    Size;\r
 } PXEBC_DHCP4_OPTION_MAX_MESG_SIZE;\r
 \r
 typedef struct {\r
-  UINT8 Type;\r
-  UINT8 MajorVer;\r
-  UINT8 MinorVer;\r
+  UINT8    Type;\r
+  UINT8    MajorVer;\r
+  UINT8    MinorVer;\r
 } PXEBC_DHCP4_OPTION_UNDI;\r
 \r
 typedef struct {\r
-  UINT8 Type;\r
+  UINT8    Type;\r
 } PXEBC_DHCP4_OPTION_MESG;\r
 \r
 typedef struct {\r
-  UINT16 Type;\r
+  UINT16    Type;\r
 } PXEBC_DHCP4_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_DHCP4_OPTION_CLID;\r
 \r
 typedef struct {\r
-  UINT8 Type;\r
-  UINT8 Guid[16];\r
+  UINT8    Type;\r
+  UINT8    Guid[16];\r
 } PXEBC_DHCP4_OPTION_UUID;\r
 \r
 typedef struct {\r
-  UINT16 Type;\r
-  UINT16 Layer;\r
+  UINT16    Type;\r
+  UINT16    Layer;\r
 } PXEBC_OPTION_BOOT_ITEM;\r
 \r
 #pragma pack()\r
 \r
 typedef union {\r
-  PXEBC_DHCP4_OPTION_PARA           *Para;\r
-  PXEBC_DHCP4_OPTION_UNDI           *Undi;\r
-  PXEBC_DHCP4_OPTION_ARCH           *Arch;\r
-  PXEBC_DHCP4_OPTION_CLID           *Clid;\r
-  PXEBC_DHCP4_OPTION_UUID           *Uuid;\r
-  PXEBC_DHCP4_OPTION_MESG           *Mesg;\r
-  PXEBC_DHCP4_OPTION_MAX_MESG_SIZE  *MaxMesgSize;\r
+  PXEBC_DHCP4_OPTION_PARA             *Para;\r
+  PXEBC_DHCP4_OPTION_UNDI             *Undi;\r
+  PXEBC_DHCP4_OPTION_ARCH             *Arch;\r
+  PXEBC_DHCP4_OPTION_CLID             *Clid;\r
+  PXEBC_DHCP4_OPTION_UUID             *Uuid;\r
+  PXEBC_DHCP4_OPTION_MESG             *Mesg;\r
+  PXEBC_DHCP4_OPTION_MAX_MESG_SIZE    *MaxMesgSize;\r
 } PXEBC_DHCP4_OPTION_ENTRY;\r
 \r
 #pragma pack(1)\r
 typedef struct {\r
-  UINT16            Type;\r
-  UINT8             IpCnt;\r
-  EFI_IPv4_ADDRESS  IpAddr[1];\r
+  UINT16              Type;\r
+  UINT8               IpCnt;\r
+  EFI_IPv4_ADDRESS    IpAddr[1];\r
 } PXEBC_BOOT_SVR_ENTRY;\r
 \r
 typedef struct {\r
-  UINT16            Type;\r
-  UINT8             DescLen;\r
-  UINT8             DescStr[1];\r
+  UINT16    Type;\r
+  UINT8     DescLen;\r
+  UINT8     DescStr[1];\r
 } PXEBC_BOOT_MENU_ENTRY;\r
 \r
 typedef struct {\r
-  UINT8             Timeout;\r
-  UINT8             Prompt[1];\r
+  UINT8    Timeout;\r
+  UINT8    Prompt[1];\r
 } PXEBC_MENU_PROMPT;\r
 #pragma pack()\r
 \r
 typedef struct {\r
-  UINT32                BitMap[8];\r
-  EFI_IPv4_ADDRESS      MtftpIp;\r
-  UINT16                MtftpCPort;\r
-  UINT16                MtftpSPort;\r
-  UINT8                 MtftpTimeout;\r
-  UINT8                 MtftpDelay;\r
-  UINT8                 DiscoverCtrl;\r
-  EFI_IPv4_ADDRESS      DiscoverMcastIp;\r
-  EFI_IPv4_ADDRESS      McastIpBase;\r
-  UINT16                McastIpBlock;\r
-  UINT16                McastIpRange;\r
-  UINT16                BootSrvType;\r
-  UINT16                BootSrvLayer;\r
-  PXEBC_BOOT_SVR_ENTRY  *BootSvr;\r
-  UINT8                 BootSvrLen;\r
-  PXEBC_BOOT_MENU_ENTRY *BootMenu;\r
-  UINT8                 BootMenuLen;\r
-  PXEBC_MENU_PROMPT     *MenuPrompt;\r
-  UINT8                 MenuPromptLen;\r
-  UINT32                *CredType;\r
-  UINT8                 CredTypeLen;\r
+  UINT32                   BitMap[8];\r
+  EFI_IPv4_ADDRESS         MtftpIp;\r
+  UINT16                   MtftpCPort;\r
+  UINT16                   MtftpSPort;\r
+  UINT8                    MtftpTimeout;\r
+  UINT8                    MtftpDelay;\r
+  UINT8                    DiscoverCtrl;\r
+  EFI_IPv4_ADDRESS         DiscoverMcastIp;\r
+  EFI_IPv4_ADDRESS         McastIpBase;\r
+  UINT16                   McastIpBlock;\r
+  UINT16                   McastIpRange;\r
+  UINT16                   BootSrvType;\r
+  UINT16                   BootSrvLayer;\r
+  PXEBC_BOOT_SVR_ENTRY     *BootSvr;\r
+  UINT8                    BootSvrLen;\r
+  PXEBC_BOOT_MENU_ENTRY    *BootMenu;\r
+  UINT8                    BootMenuLen;\r
+  PXEBC_MENU_PROMPT        *MenuPrompt;\r
+  UINT8                    MenuPromptLen;\r
+  UINT32                   *CredType;\r
+  UINT8                    CredTypeLen;\r
 } PXEBC_VENDOR_OPTION;\r
 \r
+#define PXEBC_CACHED_DHCP4_PACKET_MAX_SIZE  (OFFSET_OF (EFI_DHCP4_PACKET, Dhcp4) + PXEBC_DHCP4_PACKET_MAX_SIZE)\r
+\r
 typedef union {\r
-  EFI_DHCP4_PACKET        Offer;\r
-  EFI_DHCP4_PACKET        Ack;\r
-  UINT8                   Buffer[PXEBC_DHCP4_PACKET_MAX_SIZE];\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
-  PXEBC_OFFER_TYPE        OfferType;\r
-  EFI_DHCP4_PACKET_OPTION *OptList[PXEBC_DHCP4_TAG_INDEX_MAX];\r
-  PXEBC_VENDOR_OPTION     VendorOpt;\r
+  PXEBC_DHCP4_PACKET         Packet;\r
+  PXEBC_OFFER_TYPE           OfferType;\r
+  EFI_DHCP4_PACKET_OPTION    *OptList[PXEBC_DHCP4_TAG_INDEX_MAX];\r
+  PXEBC_VENDOR_OPTION        VendorOpt;\r
 } PXEBC_DHCP4_PACKET_CACHE;\r
 \r
-\r
 /**\r
   Create a template DHCPv4 packet as a seed.\r
 \r
@@ -326,11 +279,10 @@ typedef struct {
 **/\r
 VOID\r
 PxeBcSeedDhcp4Packet (\r
-  OUT EFI_DHCP4_PACKET       *Seed,\r
-  IN  EFI_UDP4_PROTOCOL      *Udp4\r
+  OUT EFI_DHCP4_PACKET   *Seed,\r
+  IN  EFI_UDP4_PROTOCOL  *Udp4\r
   );\r
 \r
-\r
 /**\r
   Parse the cached DHCPv4 packet, including all the options.\r
 \r
@@ -342,10 +294,9 @@ PxeBcSeedDhcp4Packet (
 **/\r
 EFI_STATUS\r
 PxeBcParseDhcp4Packet (\r
-  IN PXEBC_DHCP4_PACKET_CACHE    *Cache4\r
+  IN PXEBC_DHCP4_PACKET_CACHE  *Cache4\r
   );\r
 \r
-\r
 /**\r
   Build and send out the request packet for the bootfile, and parse the reply.\r
 \r
@@ -365,13 +316,13 @@ PxeBcParseDhcp4Packet (
 **/\r
 EFI_STATUS\r
 PxeBcDhcp4Discover (\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  UINT16                          IpCount,\r
-  IN  EFI_PXE_BASE_CODE_SRVLIST       *SrvList\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  UINT16                     IpCount,\r
+  IN  EFI_PXE_BASE_CODE_SRVLIST  *SrvList\r
   );\r
 \r
 /**\r
@@ -384,11 +335,10 @@ PxeBcDhcp4Discover (
 \r
 **/\r
 EFI_STATUS\r
-PxeBcSetIp4Policy (   \r
-  IN PXEBC_PRIVATE_DATA            *Private\r
+PxeBcSetIp4Policy (\r
+  IN PXEBC_PRIVATE_DATA  *Private\r
   );\r
 \r
-\r
 /**\r
   Start the D.O.R.A DHCPv4 process to acquire the IPv4 address and other PXE boot information.\r
 \r
@@ -401,9 +351,8 @@ PxeBcSetIp4Policy (
 **/\r
 EFI_STATUS\r
 PxeBcDhcp4Dora (\r
-  IN PXEBC_PRIVATE_DATA         *Private,\r
-  IN EFI_DHCP4_PROTOCOL         *Dhcp4\r
+  IN PXEBC_PRIVATE_DATA  *Private,\r
+  IN EFI_DHCP4_PROTOCOL  *Dhcp4\r
   );\r
 \r
 #endif\r
-\r