REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the NetworkPkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Maciej Rabeda <maciej.rabeda@linux.intel.com>
		
			
				
	
	
		
			229 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			229 lines
		
	
	
		
			9.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   This EFI_PXE_BASE_CODE_PROTOCOL and EFI_LOAD_FILE_PROTOCOL.
 | |
|   interfaces declaration.
 | |
| 
 | |
|   Copyright (c) 2007 - 2019, Intel Corporation. All rights reserved.<BR>
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef __EFI_PXEBC_IMPL_H__
 | |
| #define __EFI_PXEBC_IMPL_H__
 | |
| 
 | |
| #include <Uefi.h>
 | |
| 
 | |
| #include <Guid/SmBios.h>
 | |
| #include <IndustryStandard/SmBios.h>
 | |
| #include <IndustryStandard/Dhcp.h>
 | |
| #include <Protocol/NetworkInterfaceIdentifier.h>
 | |
| #include <Protocol/Arp.h>
 | |
| #include <Protocol/Ip4.h>
 | |
| #include <Protocol/Ip4Config2.h>
 | |
| #include <Protocol/Ip6.h>
 | |
| #include <Protocol/Ip6Config.h>
 | |
| #include <Protocol/Udp4.h>
 | |
| #include <Protocol/Udp6.h>
 | |
| #include <Protocol/Dhcp4.h>
 | |
| #include <Protocol/Dhcp6.h>
 | |
| #include <Protocol/Dns6.h>
 | |
| #include <Protocol/Mtftp4.h>
 | |
| #include <Protocol/Mtftp6.h>
 | |
| #include <Protocol/PxeBaseCode.h>
 | |
| #include <Protocol/LoadFile.h>
 | |
| #include <Protocol/PxeBaseCodeCallBack.h>
 | |
| #include <Protocol/ServiceBinding.h>
 | |
| #include <Protocol/DriverBinding.h>
 | |
| #include <Protocol/AdapterInformation.h>
 | |
| 
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/BaseMemoryLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/UefiDriverEntryPoint.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <Library/UefiRuntimeServicesTableLib.h>
 | |
| #include <Library/UefiLib.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/NetLib.h>
 | |
| #include <Library/DpcLib.h>
 | |
| #include <Library/DevicePathLib.h>
 | |
| #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"
 | |
| #include "PxeBcDhcp4.h"
 | |
| #include "PxeBcDhcp6.h"
 | |
| #include "PxeBcMtftp.h"
 | |
| #include "PxeBcBoot.h"
 | |
| #include "PxeBcSupport.h"
 | |
| 
 | |
| #define PXEBC_DEFAULT_HOPLIMIT      64
 | |
| #define PXEBC_DEFAULT_LIFETIME      50000      // 50 ms, unit is microsecond
 | |
| #define PXEBC_UDP_TIMEOUT           30000000   // 3 seconds, unit is 100nanosecond
 | |
| #define PXEBC_DAD_ADDITIONAL_DELAY  30000000   // 3 seconds
 | |
| #define PXEBC_MTFTP_TIMEOUT         4
 | |
| #define PXEBC_MTFTP_RETRIES         6
 | |
| #define PXEBC_DHCP_RETRIES          4          // refers to mPxeDhcpTimeout, also by PXE2.1 spec.
 | |
| #define PXEBC_MENU_MAX_NUM          24
 | |
| #define PXEBC_OFFER_MAX_NUM         16
 | |
| 
 | |
| #define PXEBC_CHECK_MEDIA_WAITING_TIME  EFI_TIMER_PERIOD_SECONDS(20)
 | |
| 
 | |
| #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 PXE_ENABLED   0x01
 | |
| #define PXE_DISABLED  0x00
 | |
| 
 | |
| 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;
 | |
|   EFI_LOAD_FILE_PROTOCOL      LoadFile;
 | |
|   EFI_DEVICE_PATH_PROTOCOL    *DevicePath;
 | |
|   PXEBC_PRIVATE_DATA          *Private;
 | |
| };
 | |
| 
 | |
| struct _PXEBC_PRIVATE_DATA {
 | |
|   UINT32                                       Signature;
 | |
|   EFI_HANDLE                                   Controller;
 | |
|   EFI_HANDLE                                   Image;
 | |
| 
 | |
|   PXEBC_PRIVATE_PROTOCOL                       Id;
 | |
|   EFI_SIMPLE_NETWORK_PROTOCOL                  *Snp;
 | |
| 
 | |
|   PXEBC_VIRTUAL_NIC                            *Ip4Nic;
 | |
|   PXEBC_VIRTUAL_NIC                            *Ip6Nic;
 | |
| 
 | |
|   EFI_HANDLE                                   ArpChild;
 | |
|   EFI_HANDLE                                   Ip4Child;
 | |
|   EFI_HANDLE                                   Dhcp4Child;
 | |
|   EFI_HANDLE                                   Mtftp4Child;
 | |
|   EFI_HANDLE                                   Udp4ReadChild;
 | |
|   EFI_HANDLE                                   Udp4WriteChild;
 | |
| 
 | |
|   EFI_ARP_PROTOCOL                             *Arp;
 | |
|   EFI_IP4_PROTOCOL                             *Ip4;
 | |
|   EFI_IP4_CONFIG2_PROTOCOL                     *Ip4Config2;
 | |
|   EFI_DHCP4_PROTOCOL                           *Dhcp4;
 | |
|   EFI_MTFTP4_PROTOCOL                          *Mtftp4;
 | |
|   EFI_UDP4_PROTOCOL                            *Udp4Read;
 | |
|   EFI_UDP4_PROTOCOL                            *Udp4Write;
 | |
| 
 | |
|   EFI_HANDLE                                   Ip6Child;
 | |
|   EFI_HANDLE                                   Dhcp6Child;
 | |
|   EFI_HANDLE                                   Mtftp6Child;
 | |
|   EFI_HANDLE                                   Udp6ReadChild;
 | |
|   EFI_HANDLE                                   Udp6WriteChild;
 | |
| 
 | |
|   EFI_IP6_PROTOCOL                             *Ip6;
 | |
|   EFI_IP6_CONFIG_PROTOCOL                      *Ip6Cfg;
 | |
|   EFI_DHCP6_PROTOCOL                           *Dhcp6;
 | |
|   EFI_MTFTP6_PROTOCOL                          *Mtftp6;
 | |
|   EFI_UDP6_PROTOCOL                            *Udp6Read;
 | |
|   EFI_UDP6_PROTOCOL                            *Udp6Write;
 | |
|   EFI_DNS6_PROTOCOL                            *Dns6;
 | |
| 
 | |
|   EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL    *Nii;
 | |
|   EFI_PXE_BASE_CODE_PROTOCOL                   PxeBc;
 | |
|   EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL          LoadFileCallback;
 | |
|   EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL          *PxeBcCallback;
 | |
|   EFI_DEVICE_PATH_PROTOCOL                     *DevicePath;
 | |
| 
 | |
|   EFI_PXE_BASE_CODE_MODE                       Mode;
 | |
|   EFI_PXE_BASE_CODE_FUNCTION                   Function;
 | |
|   UINT32                                       Ip6Policy;
 | |
|   UINT32                                       SolicitTimes;
 | |
|   UINT64                                       ElapsedTime;
 | |
| 
 | |
|   EFI_UDP4_CONFIG_DATA                         Udp4CfgData;
 | |
|   EFI_UDP6_CONFIG_DATA                         Udp6CfgData;
 | |
|   EFI_IP4_CONFIG_DATA                          Ip4CfgData;
 | |
|   EFI_IP6_CONFIG_DATA                          Ip6CfgData;
 | |
| 
 | |
|   EFI_EVENT                                    UdpTimeOutEvent;
 | |
|   EFI_EVENT                                    ArpUpdateEvent;
 | |
|   EFI_IP4_COMPLETION_TOKEN                     IcmpToken;
 | |
|   EFI_IP6_COMPLETION_TOKEN                     Icmp6Token;
 | |
| 
 | |
|   BOOLEAN                                      IsAddressOk;
 | |
|   BOOLEAN                                      IsOfferSorted;
 | |
|   BOOLEAN                                      IsProxyRecved;
 | |
|   BOOLEAN                                      IsDoDiscover;
 | |
| 
 | |
|   EFI_IP_ADDRESS                               TmpStationIp;
 | |
|   EFI_IP_ADDRESS                               StationIp;
 | |
|   EFI_IP_ADDRESS                               SubnetMask;
 | |
|   EFI_IP_ADDRESS                               GatewayIp;
 | |
|   EFI_IP_ADDRESS                               ServerIp;
 | |
|   EFI_IPv6_ADDRESS                             *DnsServer;
 | |
|   UINT16                                       CurSrcPort;
 | |
|   UINT32                                       IaId;
 | |
| 
 | |
|   UINT32                                       Ip4MaxPacketSize;
 | |
|   UINT32                                       Ip6MaxPacketSize;
 | |
|   UINT8                                        *BootFileName;
 | |
|   UINTN                                        BootFileSize;
 | |
|   UINTN                                        BlockSize;
 | |
| 
 | |
|   PXEBC_DHCP_PACKET_CACHE                      ProxyOffer;
 | |
|   PXEBC_DHCP_PACKET_CACHE                      DhcpAck;
 | |
|   PXEBC_DHCP_PACKET_CACHE                      PxeReply;
 | |
|   EFI_DHCP6_PACKET                             *Dhcp6Request;
 | |
|   EFI_DHCP4_PACKET                             SeedPacket;
 | |
| 
 | |
|   //
 | |
|   // OfferIndex records the index of DhcpOffer[] buffer, and OfferCount records the num of each type of offer.
 | |
|   //
 | |
|   // It supposed that
 | |
|   //
 | |
|   //   OfferNum:    8
 | |
|   //   OfferBuffer: [ProxyBinl, ProxyBinl, DhcpOnly, ProxyPxe10, DhcpOnly, DhcpPxe10, DhcpBinl, ProxyBinl]
 | |
|   //   (OfferBuffer is 0-based.)
 | |
|   //
 | |
|   // And assume that (DhcpPxe10 is the first priority actually.)
 | |
|   //
 | |
|   //   SelectIndex:     2
 | |
|   //   SelectProxyType: PXEBC_OFFER_TYPE_PROXY_BINL
 | |
|   //   (SelectIndex is 1-based, and 0 means no one is selected.)
 | |
|   //
 | |
|   // So it should be
 | |
|   //
 | |
|   //                 DhcpOnly  DhcpPxe10  DhcpWfm11a  DhcpBinl  ProxyPxe10  ProxyWfm11a  ProxyBinl  Bootp
 | |
|   //   OfferCount:  [    2(n),      1(n),       0(n),     1(n),       1(1),        0(1),      3(n),  1(1)]
 | |
|   //
 | |
|   //   OfferIndex: {[       2,         5,          0,        6,          3,           0,        *0,     0]
 | |
|   //                [       4,         0,          0,        0,          0,           0,         1,     0]
 | |
|   //                [       0,         0,          0,        0,          0,           0,         7,     0]
 | |
|   //                ...                                                                                  ]}
 | |
|   //   (OfferIndex is 0-based.)
 | |
|   //
 | |
|   //
 | |
|   UINT32                     SelectIndex;
 | |
|   UINT32                     SelectProxyType;
 | |
|   PXEBC_DHCP_PACKET_CACHE    OfferBuffer[PXEBC_OFFER_MAX_NUM];
 | |
|   UINT32                     OfferNum;
 | |
|   UINT32                     OfferCount[PxeOfferTypeMax];
 | |
|   UINT32                     OfferIndex[PxeOfferTypeMax][PXEBC_OFFER_MAX_NUM];
 | |
| };
 | |
| 
 | |
| extern EFI_PXE_BASE_CODE_PROTOCOL           gPxeBcProtocolTemplate;
 | |
| extern EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL  gPxeBcCallBackTemplate;
 | |
| extern EFI_LOAD_FILE_PROTOCOL               gLoadFileProtocolTemplate;
 | |
| 
 | |
| #endif
 |