X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/ebaa4d954aa0b3d70f14b2fd6fec63df1599b8ce..bcbe8835d4512dc73540124948d2669521c00a51:/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/Ventoy.h diff --git a/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/Ventoy.h b/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/Ventoy.h index 1e79467..8de0351 100644 --- a/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/Ventoy.h +++ b/EDK2/edk2_mod/edk2-edk2-stable201911/MdeModulePkg/Application/Ventoy/Ventoy.h @@ -98,7 +98,9 @@ typedef struct ventoy_os_param UINT64 vtoy_reserved[4]; // Internal use by ventoy - UINT8 reserved[31]; + UINT8 vtoy_disk_signature[4]; + + UINT8 reserved[27]; }ventoy_os_param; #pragma pack() @@ -169,7 +171,6 @@ typedef struct ventoy_virt_chunk { 0x37b87ac6, 0xc180, 0x4583, { 0xa7, 0x05, 0x41, 0x4d, 0xa8, 0xf7, 0x7e, 0xd2 }} -#define VTOY_BLOCK_DEVICE_PATH_NAME L"ventoy" #if defined (MDE_CPU_IA32) #define VENTOY_UEFI_DESC L"IA32 UEFI" @@ -243,7 +244,9 @@ typedef int (*grub_env_printf_pf)(const char *fmt, ...); #pragma pack(1) +#define VTOY_MAX_CONF_REPLACE 2 #define GRUB_FILE_REPLACE_MAGIC 0x1258BEEF +#define GRUB_IMG_REPLACE_MAGIC 0x1259BEEF typedef struct ventoy_efi_file_replace { @@ -268,6 +271,7 @@ typedef struct ventoy_grub_param grub_env_get_pf grub_env_get; grub_env_set_pf grub_env_set; ventoy_grub_param_file_replace file_replace; + ventoy_grub_param_file_replace img_replace[VTOY_MAX_CONF_REPLACE]; grub_env_printf_pf grub_env_printf; }ventoy_grub_param; @@ -344,6 +348,14 @@ typedef struct ventoy_system_wrapper EFI_LOCATE_DEVICE_PATH OriLocateDevicePath; } ventoy_system_wrapper; + +#define MAX_DRIVER_BIND_WRAPPER 64 +typedef struct DriverBindWrapper +{ + EFI_DRIVER_BINDING_PROTOCOL *DriverBinding; + EFI_DRIVER_BINDING_SUPPORTED pfOldSupport; +}DRIVER_BIND_WRAPPER; + #define ventoy_wrapper(bs, wrapper, func, newfunc) \ {\ wrapper.Ori##func = bs->func;\ @@ -351,6 +363,22 @@ typedef struct ventoy_system_wrapper bs->func = wrapper.New##func;\ } + +#define VENTOY_GET_COMPONENT_NAME(Protocol, DriverName) \ +{\ + DriverName = NULL;\ + Status = Protocol->GetDriverName(Protocol, "en", &DriverName);\ + if (EFI_ERROR(Status) || NULL == DriverName) \ + {\ + DriverName = NULL;\ + Status = Protocol->GetDriverName(Protocol, "eng", &DriverName);\ + if (EFI_ERROR(Status) || NULL == DriverName) \ + {\ + continue;\ + }\ + }\ +} + extern BOOLEAN gDebugPrint; VOID EFIAPI VtoyDebug(IN CONST CHAR8 *Format, ...); EFI_STATUS EFIAPI ventoy_wrapper_system(VOID); @@ -373,6 +401,7 @@ extern ventoy_virt_chunk *g_virt_chunk; extern UINT32 g_virt_chunk_num; extern vtoy_block_data gBlockData; extern ventoy_efi_file_replace g_efi_file_replace; +extern ventoy_efi_file_replace g_img_file_replace[VTOY_MAX_CONF_REPLACE]; extern ventoy_sector_flag *g_sector_flag; extern UINT32 g_sector_flag_num; extern BOOLEAN gMemdiskMode; @@ -380,6 +409,7 @@ extern BOOLEAN gSector512Mode; extern UINTN g_iso_buf_size; extern UINT8 *g_iso_data_buf; extern ventoy_grub_param_file_replace *g_file_replace_list; +extern ventoy_grub_param_file_replace *g_img_replace_list; extern BOOLEAN g_fixup_iso9660_secover_enable; extern EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *g_con_simple_input_ex; extern BOOLEAN g_fix_windows_1st_cdrom_issue; @@ -396,6 +426,8 @@ EFI_STATUS ventoy_hook_keyboard_stop(VOID); BOOLEAN ventoy_is_cdrom_dp_exist(VOID); EFI_STATUS ventoy_hook_1st_cdrom_start(VOID); EFI_STATUS ventoy_hook_1st_cdrom_stop(VOID); +EFI_STATUS ventoy_disable_ex_filesystem(VOID); +EFI_STATUS ventoy_enable_ex_filesystem(VOID); #endif