OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
NetworkBootInternal.h
Go to the documentation of this file.
1
6#ifndef LOAD_FILE_INTERNAL_H
7#define LOAD_FILE_INTERNAL_H
8
9#include <Uefi.h>
10#include <Uefi/UefiSpec.h>
11#include <Library/DevicePathLib.h>
12#include <Library/MemoryAllocationLib.h>
13#include <Library/NetLib.h>
14#include <Library/PrintLib.h>
18#include <Library/OcStringLib.h>
20#include <Library/UefiBootServicesTableLib.h>
21#include <Library/UefiRuntimeServicesTableLib.h>
22#include <Library/UefiLib.h>
23#include <Protocol/HttpBootCallback.h>
24#include <Protocol/Ip4Config2.h>
25#include <Protocol/LoadFile.h>
26#include <Protocol/LoadedImage.h>
28#include <Protocol/RamDisk.h>
29#include <Guid/ImageAuthentication.h>
30#include <Guid/TlsAuthentication.h>
31
33// Ip4Config2Impl.h
34//
35typedef struct {
36 UINT16 Offset;
37 UINT32 DataSize;
38 EFI_IP4_CONFIG2_DATA_TYPE DataType;
40
41//
42// Modified from original Ip4Config2Impl.h version to use flexible array member.
43//
44typedef struct {
45 UINT16 Checksum;
49
50#define IP4_CONFIG2_VARIABLE_ATTRIBUTE (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)
51//
52// Ip4Config2Impl.h
54
56// Ip4Common.h
57//
58#define IP4_ALLZERO_ADDRESS 0x00000000u
59//
60// Ip4Common.h
62
63typedef struct {
65 CHAR16 *SubnetMask;
67 CHAR16 *DnsAddress;
69
70EFI_STATUS
72 IN CHAR16 *VarName,
73 IN IP4_CONFIG2_OC_CONFIG_DATA *ConfigData
74 );
75
76EFI_STATUS
78 IN CHAR16 *VarName
79 );
80
84extern BOOLEAN gRequireHttpsUri;
85
90
99typedef
100EFI_STATUS
102 IN VOID *Context,
103 IN EFI_DEVICE_PATH_PROTOCOL *Path
104 );
105
106/*
107 Return pointer to final node in device path, if it as a URI node.
108 Used to return the URI node for an HTTP Boot device path.
109
110 @return Required device path node if available, NULL otherwise.
111*/
112EFI_DEVICE_PATH_PROTOCOL *
114 EFI_DEVICE_PATH_PROTOCOL *DevicePath
115 );
116
120
121CHAR16 *
123 IN EFI_HANDLE Handle
124 );
125
129
130EFI_DEVICE_PATH_PROTOCOL *
132 IN EFI_DEVICE_PATH_PROTOCOL *FilePath,
133 OUT VOID **Data,
134 OUT UINT32 *DataSize,
135 IN BOOLEAN ValidateHttp
136 );
137
138EFI_DEVICE_PATH_PROTOCOL *
140 IN EFI_DEVICE_PATH_PROTOCOL *FilePath
141 );
142
143VOID
145 IN EFI_DEVICE_PATH_PROTOCOL *RamDiskDevicePath
146 );
147
151
152EFI_STATUS
153EFIAPI
155 IN VOID *Context
156 );
157
158EFI_STATUS
159EFIAPI
161 IN OC_STORAGE_CONTEXT *Storage,
162 IN OC_BOOT_ENTRY *ChosenEntry,
163 OUT VOID **Data,
164 OUT UINT32 *DataSize,
165 OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
166 OUT EFI_HANDLE *StorageHandle,
167 OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath,
168 IN OC_DMG_LOADING_SUPPORT DmgLoading,
169 OUT OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext,
170 OUT VOID **Context
171 );
172
173EFI_STATUS
174EFIAPI
176 IN OC_STORAGE_CONTEXT *Storage,
177 IN OC_BOOT_ENTRY *ChosenEntry,
178 OUT VOID **Data,
179 OUT UINT32 *DataSize,
180 OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
181 OUT EFI_HANDLE *StorageHandle,
182 OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath,
183 IN OC_DMG_LOADING_SUPPORT DmgLoading,
184 OUT OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext,
185 OUT VOID **Context
186 );
187
191
192BOOLEAN
194 CHAR16 *Uri
195 );
196
197EFI_STATUS
199 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
200 IN CHAR8 *FromExt,
201 IN CHAR8 *ToExt,
202 OUT CHAR8 **OtherUri,
203 IN BOOLEAN OnlySearchForFromExt
204 );
205
206BOOLEAN
208 IN CHAR8 *Uri,
209 IN CHAR8 *Ext
210 );
211
212EFI_STATUS
214 EFI_DEVICE_PATH_PROTOCOL *DevicePath,
215 VOID *Uri,
216 OC_STRING_FORMAT StringFormat,
217 EFI_DEVICE_PATH_PROTOCOL **UriDevicePath
218 );
219
220EFI_EVENT
222 EFI_HANDLE LoadFileHandle
223 );
224
225BOOLEAN
227 VOID
228 );
229
233
234EFI_STATUS
236 IN CHAR16 *VariableName,
237 IN EFI_GUID *VendorGuid
238 );
239
240EFI_STATUS
242 IN CHAR16 *VariableName,
243 IN EFI_GUID *VendorGuid,
244 IN EFI_GUID *OwnerGuid,
245 IN UINTN X509DataSize,
246 IN VOID *X509Data
247 );
248
249EFI_STATUS
251 IN CHAR16 *VariableName,
252 IN EFI_GUID *VendorGuid,
253 IN EFI_GUID *OwnerGuid,
254 IN UINTN X509DataSize,
255 IN VOID *X509Data,
256 OUT UINTN *DeletedCount
257 );
258
259EFI_STATUS
261 IN CHAR16 *VariableName,
262 IN EFI_GUID *VendorGuid,
263 IN EFI_GUID *OwnerGuid,
264 IN UINTN X509DataSize,
265 IN VOID *X509Data
266 );
267
271
272EFI_STATUS
274 OC_FLEX_ARRAY *ParsedLoadOptions
275 );
276
280
281BOOLEAN
283 IN IP4_ADDR Ip,
284 IN IP4_ADDR Netmask
285 );
286
287UINT8
289 IN EFI_IPv4_ADDRESS *SubnetMask
290 );
291
292EFI_STATUS
294 IN CHAR16 *Str,
295 OUT EFI_IPv4_ADDRESS *Ip
296 );
297
298EFI_STATUS
300 IN CHAR16 *Str,
301 OUT EFI_IPv4_ADDRESS **PtrIpList,
302 OUT UINTN *IpCount
303 );
304
305#endif // LOAD_FILE_INTERNAL_H
EFI_STATUS LogInstalledCerts(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid)
OC_DMG_LOADING_SUPPORT gDmgLoading
EFI_STATUS Ip4Config2StrToIpList(IN CHAR16 *Str, OUT EFI_IPv4_ADDRESS **PtrIpList, OUT UINTN *IpCount)
Definition Ip4Utils.c:173
EFI_STATUS AddRemoveStaticIPs(OC_FLEX_ARRAY *ParsedLoadOptions)
Definition StaticIp4.c:142
EFI_STATUS EnrollX509toVariable(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data)
EFI_STATUS DeleteCertsForOwner(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data, OUT UINTN *DeletedCount)
EFI_DEVICE_PATH_PROTOCOL * GetUriNode(EFI_DEVICE_PATH_PROTOCOL *DevicePath)
Definition Uri.c:30
EFI_STATUS EFIAPI PxeBootCustomRead(IN OC_STORAGE_CONTEXT *Storage, IN OC_BOOT_ENTRY *ChosenEntry, OUT VOID **Data, OUT UINT32 *DataSize, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *StorageHandle, OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath, IN OC_DMG_LOADING_SUPPORT DmgLoading, OUT OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext, OUT VOID **Context)
EFI_STATUS Ip4Config2ConvertOcConfigDataToNvData(IN CHAR16 *VarName, IN IP4_CONFIG2_OC_CONFIG_DATA *ConfigData)
BOOLEAN UriWasValidated(VOID)
EFI_STATUS(* VALIDATE_BOOT_DEVICE_PATH)(IN VOID *Context, IN EFI_DEVICE_PATH_PROTOCOL *Path)
EFI_STATUS EFIAPI HttpBootCustomRead(IN OC_STORAGE_CONTEXT *Storage, IN OC_BOOT_ENTRY *ChosenEntry, OUT VOID **Data, OUT UINT32 *DataSize, OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, OUT EFI_HANDLE *StorageHandle, OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath, IN OC_DMG_LOADING_SUPPORT DmgLoading, OUT OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext, OUT VOID **Context)
CHAR16 * BmGetNetworkDescription(IN EFI_HANDLE Handle)
EFI_STATUS EFIAPI HttpBootCustomFree(IN VOID *Context)
EFI_DEVICE_PATH_PROTOCOL * BmExpandLoadFiles(IN EFI_DEVICE_PATH_PROTOCOL *FilePath, OUT VOID **Data, OUT UINT32 *DataSize, IN BOOLEAN ValidateHttp)
Definition BmBoot.c:530
EFI_STATUS HttpBootAddUri(EFI_DEVICE_PATH_PROTOCOL *DevicePath, VOID *Uri, OC_STRING_FORMAT StringFormat, EFI_DEVICE_PATH_PROTOCOL **UriDevicePath)
Definition Uri.c:231
EFI_STATUS Ip4Config2DeleteStaticIpNvData(IN CHAR16 *VarName)
EFI_EVENT MonitorHttpBootCallback(EFI_HANDLE LoadFileHandle)
BOOLEAN UriFileHasExtension(IN CHAR8 *Uri, IN CHAR8 *Ext)
Definition Uri.c:222
BOOLEAN Ip4StationAddressValid(IN IP4_ADDR Ip, IN IP4_ADDR Netmask)
Definition Ip4Utils.c:27
EFI_DEVICE_PATH_PROTOCOL * BmGetRamDiskDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
Definition BmBoot.c:267
VOID BmDestroyRamDisk(IN EFI_DEVICE_PATH_PROTOCOL *RamDiskDevicePath)
Definition BmBoot.c:345
EFI_STATUS CertIsPresent(IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data)
BOOLEAN HasHttpsUri(CHAR16 *Uri)
Definition Uri.c:20
UINT8 GetSubnetMaskPrefixLength(IN EFI_IPv4_ADDRESS *SubnetMask)
Definition Ip4Utils.c:66
EFI_STATUS Ip4Config2StrToIp(IN CHAR16 *Str, OUT EFI_IPv4_ADDRESS *Ip)
Definition Ip4Utils.c:108
BOOLEAN gRequireHttpsUri
EFI_STATUS ExtractOtherUriFromDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CHAR8 *FromExt, IN CHAR8 *ToExt, OUT CHAR8 **OtherUri, IN BOOLEAN OnlySearchForFromExt)
Definition Uri.c:186
DMG_FILEPATH_DEVICE_PATH FilePath
OC_DMG_LOADING_SUPPORT
enum _OC_STRING_FORMAT OC_STRING_FORMAT
APPLE_EVENT_HANDLE Handle
Definition OcTypingLib.h:45
EFI_IP4_CONFIG2_DATA_TYPE DataType