X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/5d0fe69b2592f3c19fd12529ad94cb64ec0ed7d1..b53e1fb8a8ed66744ddcd7c26cd9946249d4f784:/GRUB2/MOD_SRC/grub-2.04/include/grub/ventoy.h diff --git a/GRUB2/MOD_SRC/grub-2.04/include/grub/ventoy.h b/GRUB2/MOD_SRC/grub-2.04/include/grub/ventoy.h index 205ba1d..d593ad4 100644 --- a/GRUB2/MOD_SRC/grub-2.04/include/grub/ventoy.h +++ b/GRUB2/MOD_SRC/grub-2.04/include/grub/ventoy.h @@ -35,10 +35,20 @@ typedef enum ventoy_fs_type ventoy_fs_ext, /* 2: ext2/ext3/ext4 */ ventoy_fs_xfs, /* 3: XFS */ ventoy_fs_udf, /* 4: UDF */ + ventoy_fs_fat, /* 5: FAT */ ventoy_fs_max }ventoy_fs_type; +typedef enum ventoy_chain_type +{ + ventoy_chain_linux = 0, /* 0: linux */ + ventoy_chain_windows, /* 1: windows */ + ventoy_chain_wim, /* 2: wim */ + + ventoy_chain_max +}ventoy_chain_type; + #pragma pack(1) typedef struct ventoy_guid @@ -61,7 +71,7 @@ typedef struct ventoy_image_location { ventoy_guid guid; - /* image sector size, currently this value is always 2048 */ + /* image sector size, 2048/512 */ grub_uint32_t image_sector_size; /* disk sector size, normally the value is 512 */ @@ -108,18 +118,24 @@ typedef struct ventoy_os_param * * vtoy_reserved[0]: vtoy_break_level * vtoy_reserved[1]: vtoy_debug_level + * vtoy_reserved[2]: vtoy_chain_type 0:Linux 1:Windows 2:wimfile + * vtoy_reserved[3]: vtoy_iso_format 0:iso9660 1:udf + * vtoy_reserved[4]: vtoy_windows_cd_prompt * */ grub_uint8_t vtoy_reserved[32]; // Internal use by ventoy - grub_uint8_t reserved[31]; + grub_uint8_t vtoy_disk_signature[4]; + + grub_uint8_t reserved[27]; }ventoy_os_param; typedef struct ventoy_windows_data { char auto_install_script[384]; - grub_uint8_t reserved[128]; + char injection_archive[384]; + grub_uint8_t reserved[256]; }ventoy_windows_data; @@ -200,12 +216,14 @@ typedef struct ventoy_img_chunk_list #define ventoy_filt_register grub_file_filter_register -typedef const char * (*grub_env_get_pf)(const char *name); - #pragma pack(1) #define GRUB_FILE_REPLACE_MAGIC 0x1258BEEF +typedef const char * (*grub_env_get_pf)(const char *name); +typedef int (*grub_env_set_pf)(const char *name, const char *val); +typedef int (*grub_env_printf_pf)(const char *fmt, ...); + typedef struct ventoy_grub_param_file_replace { grub_uint32_t magic; @@ -217,15 +235,17 @@ typedef struct ventoy_grub_param_file_replace 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; + grub_env_printf_pf grub_env_printf; }ventoy_grub_param; #pragma pack() - +int grub_ext_get_file_chunk(grub_uint64_t part_start, grub_file_t file, ventoy_img_chunk_list *chunk_list); int grub_fat_get_file_chunk(grub_uint64_t part_start, grub_file_t file, ventoy_img_chunk_list *chunk_list); +void grub_iso9660_set_nojoliet(int nojoliet); grub_uint64_t grub_iso9660_get_last_read_pos(grub_file_t file); grub_uint64_t grub_iso9660_get_last_file_dirent_pos(grub_file_t file); grub_uint64_t grub_udf_get_file_offset(grub_file_t file);