]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/UefiPxeBcDxe/PxeBcBoot.h
MdeModulePkg-DxeCore: rename CoreGetMemoryMapPropertiesTable
[mirror_edk2.git] / NetworkPkg / UefiPxeBcDxe / PxeBcBoot.h
1 /** @file
2 Boot functions declaration for UefiPxeBc Driver.
3
4 Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
5
6 This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php.
10
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13
14 **/
15
16 #ifndef __EFI_PXEBC_BOOT_H__
17 #define __EFI_PXEBC_BOOT_H__
18
19 #define PXEBC_DISPLAY_MAX_LINE 70
20 #define PXEBC_DEFAULT_UDP_OVERHEAD_SIZE 8
21 #define PXEBC_DEFAULT_TFTP_OVERHEAD_SIZE 4
22
23 #define PXEBC_IS_SIZE_OVERFLOWED(x) ((sizeof (UINTN) < sizeof (UINT64)) && ((x) > 0xFFFFFFFF))
24
25
26 /**
27 Extract the discover information and boot server entry from the
28 cached packets if unspecified.
29
30 @param[in] Private Pointer to PxeBc private data.
31 @param[in] Type The type of bootstrap to perform.
32 @param[in, out] DiscoverInfo Pointer to EFI_PXE_BASE_CODE_DISCOVER_INFO.
33 @param[out] BootEntry Pointer to PXEBC_BOOT_SVR_ENTRY.
34 @param[out] SrvList Pointer to EFI_PXE_BASE_CODE_SRVLIST.
35
36 @retval EFI_SUCCESS Successfully extracted the information.
37 @retval EFI_DEVICE_ERROR Failed to extract the information.
38
39 **/
40 EFI_STATUS
41 PxeBcExtractDiscoverInfo (
42 IN PXEBC_PRIVATE_DATA *Private,
43 IN UINT16 Type,
44 IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO **DiscoverInfo,
45 OUT PXEBC_BOOT_SVR_ENTRY **BootEntry,
46 OUT EFI_PXE_BASE_CODE_SRVLIST **SrvList
47 );
48
49
50 /**
51 Build the discover packet and send out for boot.
52
53 @param[in] Private Pointer to PxeBc private data.
54 @param[in] Type PxeBc option boot item type.
55 @param[in] Layer Pointer to option boot item layer.
56 @param[in] UseBis Use BIS or not.
57 @param[in] DestIp Pointer to the server address.
58 @param[in] IpCount The total count of the server address.
59 @param[in] SrvList Pointer to the server address list.
60
61 @retval EFI_SUCCESS Successfully discovered boot file.
62 @retval EFI_OUT_OF_RESOURCES Failed to allocate resources.
63 @retval EFI_NOT_FOUND Can't get the PXE reply packet.
64 @retval Others Failed to discover boot file.
65
66 **/
67 EFI_STATUS
68 PxeBcDiscoverBootServer (
69 IN PXEBC_PRIVATE_DATA *Private,
70 IN UINT16 Type,
71 IN UINT16 *Layer,
72 IN BOOLEAN UseBis,
73 IN EFI_IP_ADDRESS *DestIp,
74 IN UINT16 IpCount,
75 IN EFI_PXE_BASE_CODE_SRVLIST *SrvList
76 );
77
78
79 /**
80 Load boot file into user buffer.
81
82 @param[in] Private Pointer to PxeBc private data.
83 @param[in, out] BufferSize Size of user buffer for input;
84 required buffer size for output.
85 @param[in] Buffer Pointer to user buffer.
86
87 @retval EFI_SUCCESS Successfully obtained all the boot information.
88 @retval EFI_BUFFER_TOO_SMALL The buffer size is not enough for boot file.
89 @retval EFI_ABORTED User cancelled the current operation.
90 @retval Others Failed to parse out the boot information.
91
92 **/
93 EFI_STATUS
94 PxeBcLoadBootFile (
95 IN PXEBC_PRIVATE_DATA *Private,
96 IN OUT UINTN *BufferSize,
97 IN VOID *Buffer OPTIONAL
98 );
99
100 #endif