22 IN OUT UINT32 *DataSize
29 if (EFI_ERROR (Status)) {
32 DmgPreloadContext->DmgFileSize = *DataSize;
46 IN OUT UINT32 *DataSize
49 DmgPreloadContext->ChunklistBuffer = *Data;
50 DmgPreloadContext->ChunklistFileSize = *DataSize;
64 if (DmgPreloadContext->ChunklistBuffer != NULL) {
65 FreePool (DmgPreloadContext->ChunklistBuffer);
68 DmgPreloadContext->ChunklistFileSize = 0;
69 if (DmgPreloadContext->DmgFile != NULL) {
70 DmgPreloadContext->DmgFile->Close (DmgPreloadContext->DmgFile);
71 DmgPreloadContext->DmgFile = NULL;
74 DmgPreloadContext->DmgFileSize = 0;
90 if (Context != NULL) {
91 CustomFreeContext = Context;
97 FreePool (CustomFreeContext);
138 OUT UINT32 *DataSize,
139 OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
140 OUT EFI_HANDLE *StorageHandle,
141 OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath,
151 EFI_DEVICE_PATH_PROTOCOL *OtherLoadFile;
152 EFI_DEVICE_PATH_PROTOCOL *OtherDevicePath;
158 if (CustomFreeContext == NULL) {
159 return EFI_OUT_OF_RESOURCES;
173 if (*DevicePath == NULL) {
174 FreePool (CustomFreeContext);
175 return EFI_NOT_FOUND;
178 Status = EFI_SUCCESS;
188 if (*DataSize != 0) {
190 if (!EFI_ERROR (Status)) {
193 if (EFI_ERROR (Status)) {
199 if (!EFI_ERROR (Status)) {
201 if (EFI_ERROR (Status)) {
205 }
else if (Status == EFI_NOT_FOUND) {
206 Status = EFI_SUCCESS;
215 if (OtherUri != NULL) {
222 if (!EFI_ERROR (Status)) {
233 FreePool (OtherLoadFile);
234 if (OtherDevicePath == NULL) {
235 DEBUG ((DEBUG_INFO,
"NETB: Failed to fetch required matching file %a\r", OtherUri));
236 Status = EFI_NOT_FOUND;
239 FreePool (OtherDevicePath);
242 FreePool (*DevicePath);
243 *DevicePath = OtherDevicePath;
258 if (EFI_ERROR (Status)) {
260 FreePool (CustomFreeContext);
261 FreePool (*DevicePath);
270 *Context = CustomFreeContext;
284 OUT UINT32 *DataSize,
285 OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath,
286 OUT EFI_HANDLE *StorageHandle,
287 OUT EFI_DEVICE_PATH_PROTOCOL **StoragePath,
295 *DevicePath =
BmExpandLoadFiles (ChosenEntry->DevicePath, Data, DataSize, FALSE);
297 return (*DevicePath == NULL ? EFI_NOT_FOUND : EFI_SUCCESS);
EFI_DEVICE_PATH_PROTOCOL * BmExpandLoadFiles(IN EFI_DEVICE_PATH_PROTOCOL *FilePath, OUT VOID **Data, OUT UINT32 *DataSize, IN BOOLEAN ValidateHttp)
EFI_DEVICE_PATH_PROTOCOL * BmGetRamDiskDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *FilePath)
VOID BmDestroyRamDisk(IN EFI_DEVICE_PATH_PROTOCOL *RamDiskDevicePath)
@ EfiConsoleControlScreenText
OC_DMG_LOADING_SUPPORT gDmgLoading
STATIC EFI_STATUS SetDmgPreloadDmgFile(IN OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext, IN OUT VOID **Data, IN OUT UINT32 *DataSize)
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 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)
EFI_STATUS EFIAPI HttpBootCustomFree(IN VOID *Context)
STATIC VOID FreeDmgPreloadContext(IN OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext)
STATIC EFI_STATUS SetDmgPreloadChunklist(IN OC_APPLE_DISK_IMAGE_PRELOAD_CONTEXT *DmgPreloadContext, IN OUT VOID **Data, IN OUT UINT32 *DataSize)
EFI_STATUS HttpBootAddUri(EFI_DEVICE_PATH_PROTOCOL *DevicePath, VOID *Uri, OC_STRING_FORMAT StringFormat, EFI_DEVICE_PATH_PROTOCOL **UriDevicePath)
EFI_STATUS ExtractOtherUriFromDevicePath(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CHAR8 *FromExt, IN CHAR8 *ToExt, OUT CHAR8 **OtherUri, IN BOOLEAN OnlySearchForFromExt)
@ OcDmgLoadingAppleSigned
EFI_CONSOLE_CONTROL_SCREEN_MODE OcConsoleControlSetMode(IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode)
EFI_STATUS CreateVirtualFileFileNameCopy(IN CONST CHAR16 *FileName, IN VOID *FileBuffer, IN UINT64 FileSize, IN CONST EFI_TIME *ModificationTime OPTIONAL, OUT EFI_FILE_PROTOCOL **File)
EFI_DEVICE_PATH_PROTOCOL * RamDiskDevicePath