/** @file Copyright (C) 2024, Mike Beaton. All rights reserved.
SPDX-License-Identifier: BSD-3-Clause **/ #ifndef LOAD_FILE_INTERNAL_H #define LOAD_FILE_INTERNAL_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /** Set if we should enforce https only within this driver. **/ extern BOOLEAN gRequireHttpsUri; /** Current DmgLoading setting, for HTTP BOOT callback validation. **/ extern OC_DMG_LOADING_SUPPORT gDmgLoading; /** Custom validation for network boot device path. @param Path Device path to validate. @retval EFI_SUCCESS Device path should be accepted. @retval other Device path should be rejected. **/ typedef EFI_STATUS (*VALIDATE_BOOT_DEVICE_PATH)( IN VOID *Context, IN EFI_DEVICE_PATH_PROTOCOL *Path ); /* Return pointer to final node in device path, if it as a URI node. Used to return the URI node for an HTTP Boot device path. @return Required device path node if available, NULL otherwise. */ EFI_DEVICE_PATH_PROTOCOL * GetUriNode ( EFI_DEVICE_PATH_PROTOCOL *DevicePath ); /// /// BmBootDescription.c /// CHAR16 * BmGetNetworkDescription ( IN EFI_HANDLE Handle ); /// /// BmBoot.c /// 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 ); /// /// CustomRead.c /// EFI_STATUS EFIAPI HttpBootCustomFree ( IN 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 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 ); /// /// Uri.c /// BOOLEAN HasHttpsUri ( CHAR16 *Uri ); EFI_STATUS ExtractOtherUriFromDevicePath ( IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN CHAR8 *FromExt, IN CHAR8 *ToExt, OUT CHAR8 **OtherUri, IN BOOLEAN OnlySearchForFromExt ); BOOLEAN UriFileHasExtension ( IN CHAR8 *Uri, IN CHAR8 *Ext ); EFI_STATUS HttpBootAddUri ( EFI_DEVICE_PATH_PROTOCOL *DevicePath, VOID *Uri, OC_STRING_FORMAT StringFormat, EFI_DEVICE_PATH_PROTOCOL **UriDevicePath ); EFI_EVENT MonitorHttpBootCallback ( EFI_HANDLE LoadFileHandle ); BOOLEAN UriWasValidated ( VOID ); /// /// TlsAuthConfigImpl.c /// EFI_STATUS LogInstalledCerts ( IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid ); EFI_STATUS CertIsPresent ( 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_STATUS EnrollX509toVariable ( IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN EFI_GUID *OwnerGuid, IN UINTN X509DataSize, IN VOID *X509Data ); #endif // LOAD_FILE_INTERNAL_H