https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Siyuan Fu <siyuan.fu@intel.com>
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Boot functions declaration for UefiPxeBc Driver.
 | 
						|
 | 
						|
  Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
 | 
						|
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef __EFI_PXEBC_BOOT_H__
 | 
						|
#define __EFI_PXEBC_BOOT_H__
 | 
						|
 | 
						|
#define PXEBC_DISPLAY_MAX_LINE             70
 | 
						|
#define PXEBC_DEFAULT_UDP_OVERHEAD_SIZE    8
 | 
						|
#define PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE   4
 | 
						|
 | 
						|
#define PXEBC_IS_SIZE_OVERFLOWED(x)   ((sizeof (UINTN) < sizeof (UINT64)) && ((x) > 0xFFFFFFFF))
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Extract the discover information and boot server entry from the
 | 
						|
  cached packets if unspecified.
 | 
						|
 | 
						|
  @param[in]      Private      Pointer to PxeBc private data.
 | 
						|
  @param[in]      Type         The type of bootstrap to perform.
 | 
						|
  @param[in, out] DiscoverInfo Pointer to EFI_PXE_BASE_CODE_DISCOVER_INFO.
 | 
						|
  @param[out]     BootEntry    Pointer to PXEBC_BOOT_SVR_ENTRY.
 | 
						|
  @param[out]     SrvList      Pointer to EFI_PXE_BASE_CODE_SRVLIST.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS       Successfully extracted the information.
 | 
						|
  @retval EFI_DEVICE_ERROR  Failed to extract the information.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
PxeBcExtractDiscoverInfo (
 | 
						|
  IN     PXEBC_PRIVATE_DATA               *Private,
 | 
						|
  IN     UINT16                           Type,
 | 
						|
  IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO  **DiscoverInfo,
 | 
						|
     OUT PXEBC_BOOT_SVR_ENTRY             **BootEntry,
 | 
						|
     OUT EFI_PXE_BASE_CODE_SRVLIST        **SrvList
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Build the discover packet and send out for boot.
 | 
						|
 | 
						|
  @param[in]  Private               Pointer to PxeBc private data.
 | 
						|
  @param[in]  Type                  PxeBc option boot item type.
 | 
						|
  @param[in]  Layer                 Pointer to option boot item layer.
 | 
						|
  @param[in]  UseBis                Use BIS or not.
 | 
						|
  @param[in]  DestIp                Pointer to the server address.
 | 
						|
  @param[in]  IpCount               The total count of the server address.
 | 
						|
  @param[in]  SrvList               Pointer to the server address list.
 | 
						|
 | 
						|
  @retval     EFI_SUCCESS           Successfully discovered boot file.
 | 
						|
  @retval     EFI_OUT_OF_RESOURCES  Failed to allocate resources.
 | 
						|
  @retval     EFI_NOT_FOUND         Can't get the PXE reply packet.
 | 
						|
  @retval     Others                Failed to discover boot file.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
PxeBcDiscoverBootServer (
 | 
						|
  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
 | 
						|
  );
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
  Load boot file into user buffer.
 | 
						|
 | 
						|
  @param[in]      Private           Pointer to PxeBc private data.
 | 
						|
  @param[in, out] BufferSize        Size of user buffer for input;
 | 
						|
                                    required buffer size for output.
 | 
						|
  @param[in]      Buffer            Pointer to user buffer.
 | 
						|
 | 
						|
  @retval EFI_SUCCESS          Successfully obtained all the boot information.
 | 
						|
  @retval EFI_BUFFER_TOO_SMALL The buffer size is not enough for boot file.
 | 
						|
  @retval EFI_ABORTED          User cancelled the current operation.
 | 
						|
  @retval Others               Failed to parse out the boot information.
 | 
						|
 | 
						|
**/
 | 
						|
EFI_STATUS
 | 
						|
PxeBcLoadBootFile (
 | 
						|
  IN     PXEBC_PRIVATE_DATA           *Private,
 | 
						|
  IN OUT UINTN                        *BufferSize,
 | 
						|
  IN     VOID                         *Buffer         OPTIONAL
 | 
						|
  );
 | 
						|
 | 
						|
#endif
 |