📄 api.h
字号:
grub_efi_guid_t *protocol, void *search_key, grub_efi_uintn_t *buffer_size, grub_efi_handle_t *buffer); grub_efi_status_t (*locate_device_path) (grub_efi_guid_t *protocol, grub_efi_device_path_t **device_path, grub_efi_handle_t *device); grub_efi_status_t (*install_configuration_table) (grub_efi_guid_t *guid, void *table); grub_efi_status_t (*load_image) (grub_efi_boolean_t boot_policy, grub_efi_handle_t parent_image_handle, grub_efi_device_path_t *file_path, void *source_buffer, grub_efi_uintn_t source_size, grub_efi_handle_t *image_handle); grub_efi_status_t (*start_image) (grub_efi_handle_t image_handle, grub_efi_uintn_t *exit_data_size, grub_efi_char16_t **exit_data); grub_efi_status_t (*exit) (grub_efi_handle_t image_handle, grub_efi_status_t exit_status, grub_efi_uintn_t exit_data_size, grub_efi_char16_t *exit_data) __attribute__((noreturn)); grub_efi_status_t (*unload_image) (grub_efi_handle_t image_handle); grub_efi_status_t (*exit_boot_services) (grub_efi_handle_t image_handle, grub_efi_uintn_t map_key); grub_efi_status_t (*get_next_monotonic_count) (grub_efi_uint64_t *count); grub_efi_status_t (*stall) (grub_efi_uintn_t microseconds); grub_efi_status_t (*set_watchdog_timer) (grub_efi_uintn_t timeout, grub_efi_uint64_t watchdog_code, grub_efi_uintn_t data_size, grub_efi_char16_t *watchdog_data); grub_efi_status_t (*connect_controller) (grub_efi_handle_t controller_handle, grub_efi_handle_t *driver_image_handle, grub_efi_device_path_protocol_t *remaining_device_path, grub_efi_boolean_t recursive); grub_efi_status_t (*disconnect_controller) (grub_efi_handle_t controller_handle, grub_efi_handle_t driver_image_handle, grub_efi_handle_t child_handle); grub_efi_status_t (*open_protocol) (grub_efi_handle_t handle, grub_efi_guid_t *protocol, void **interface, grub_efi_handle_t agent_handle, grub_efi_handle_t controller_handle, grub_efi_uint32_t attributes); grub_efi_status_t (*close_protocol) (grub_efi_handle_t handle, grub_efi_guid_t *protocol, grub_efi_handle_t agent_handle, grub_efi_handle_t controller_handle); grub_efi_status_t (*open_protocol_information) (grub_efi_handle_t handle, grub_efi_guid_t *protocol, grub_efi_open_protocol_information_entry_t **entry_buffer, grub_efi_uintn_t *entry_count); grub_efi_status_t (*protocols_per_handle) (grub_efi_handle_t handle, grub_efi_guid_t ***protocol_buffer, grub_efi_uintn_t *protocol_buffer_count); grub_efi_status_t (*locate_handle_buffer) (grub_efi_locate_search_type_t search_type, grub_efi_guid_t *protocol, void *search_key, grub_efi_uintn_t *no_handles, grub_efi_handle_t **buffer); grub_efi_status_t (*locate_protocol) (grub_efi_guid_t *protocol, void *registration, void **interface); grub_efi_status_t (*install_multiple_protocol_interfaces) (grub_efi_handle_t *handle, ...); grub_efi_status_t (*uninstall_multiple_protocol_interfaces) (grub_efi_handle_t handle, ...); grub_efi_status_t (*calculate_crc32) (void *data, grub_efi_uintn_t data_size, grub_efi_uint32_t *crc32); void (*copy_mem) (void *destination, void *source, grub_efi_uintn_t length); void (*set_mem) (void *buffer, grub_efi_uintn_t size, grub_efi_uint8_t value);};typedef struct grub_efi_boot_services grub_efi_boot_services_t;struct grub_efi_runtime_services{ grub_efi_table_header_t hdr; grub_efi_status_t (*get_time) (grub_efi_time_t *time, grub_efi_time_capabilities_t *capabilities); grub_efi_status_t (*set_time) (grub_efi_time_t *time); grub_efi_status_t (*get_wakeup_time) (grub_efi_boolean_t *enabled, grub_efi_boolean_t *pending, grub_efi_time_t *time); grub_efi_status_t (*set_wakeup_time) (grub_efi_boolean_t enabled, grub_efi_time_t *time); grub_efi_status_t (*set_virtual_address_map) (grub_efi_uintn_t memory_map_size, grub_efi_uintn_t descriptor_size, grub_efi_uint32_t descriptor_version, grub_efi_memory_descriptor_t *virtual_map); grub_efi_status_t (*convert_pointer) (grub_efi_uintn_t debug_disposition, void **address); grub_efi_status_t (*get_variable) (grub_efi_char16_t *variable_name, grub_efi_guid_t *vendor_guid, grub_efi_uint32_t *attributes, grub_efi_uintn_t *data_size, void *data); grub_efi_status_t (*get_next_variable_name) (grub_efi_uintn_t *variable_name_size, grub_efi_char16_t *variable_name, grub_efi_guid_t *vendor_guid); grub_efi_status_t (*set_variable) (grub_efi_char16_t *variable_name, grub_efi_guid_t *vendor_guid, grub_efi_uint32_t attributes, grub_efi_uintn_t data_size, void *data); grub_efi_status_t (*get_next_high_monotonic_count) (grub_efi_uint32_t *high_count); void (*reset_system) (grub_efi_reset_type_t reset_type, grub_efi_status_t reset_status, grub_efi_uintn_t data_size, grub_efi_char16_t *reset_data);};typedef struct grub_efi_runtime_services grub_efi_runtime_services_t;struct grub_efi_configuration_table{ grub_efi_guid_t vendor_guid; void *vendor_table;};typedef struct grub_efi_configuration_table grub_efi_configuration_table_t;struct grub_efi_simple_input_interface{ grub_efi_status_t (*reset) (struct grub_efi_simple_input_interface *this, grub_efi_boolean_t extended_verification); grub_efi_status_t (*read_key_stroke) (struct grub_efi_simple_input_interface *this, grub_efi_input_key_t *key); grub_efi_event_t wait_for_key;};typedef struct grub_efi_simple_input_interface grub_efi_simple_input_interface_t;struct grub_efi_simple_text_output_interface{ grub_efi_status_t (*reset) (struct grub_efi_simple_text_output_interface *this, grub_efi_boolean_t extended_verification); grub_efi_status_t (*output_string) (struct grub_efi_simple_text_output_interface *this, grub_efi_char16_t *string); grub_efi_status_t (*test_string) (struct grub_efi_simple_text_output_interface *this, grub_efi_char16_t *string); grub_efi_status_t (*query_mode) (struct grub_efi_simple_text_output_interface *this, grub_efi_uintn_t mode_number, grub_efi_uintn_t *columns, grub_efi_uintn_t *rows); grub_efi_status_t (*set_mode) (struct grub_efi_simple_text_output_interface *this, grub_efi_uintn_t mode_number); grub_efi_status_t (*set_attributes) (struct grub_efi_simple_text_output_interface *this, grub_efi_uintn_t attribute); grub_efi_status_t (*clear_screen) (struct grub_efi_simple_text_output_interface *this); grub_efi_status_t (*set_cursor_position) (struct grub_efi_simple_text_output_interface *this, grub_efi_uintn_t column, grub_efi_uintn_t row); grub_efi_status_t (*enable_cursor) (struct grub_efi_simple_text_output_interface *this, grub_efi_boolean_t visible); grub_efi_simple_text_output_mode_t *mode;};typedef struct grub_efi_simple_text_output_interface grub_efi_simple_text_output_interface_t;#define GRUB_EFI_BLACK 0x00#define GRUB_EFI_BLUE 0x01#define GRUB_EFI_GREEN 0x02#define GRUB_EFI_CYAN 0x03#define GRUB_EFI_RED 0x04#define GRUB_EFI_MAGENTA 0x05#define GRUB_EFI_BROWN 0x06#define GRUB_EFI_LIGHTGRAY 0x07#define GRUB_EFI_BRIGHT 0x08#define GRUB_EFI_DARKGRAY 0x08#define GRUB_EFI_LIGHTBLUE 0x09#define GRUB_EFI_LIGHTGREEN 0x0A#define GRUB_EFI_LIGHTCYAN 0x0B#define GRUB_EFI_LIGHTRED 0x0C#define GRUB_EFI_LIGHTMAGENTA 0x0D#define GRUB_EFI_YELLOW 0x0E#define GRUB_EFI_WHITE 0x0F#define GRUB_EFI_BACKGROUND_BLACK 0x00#define GRUB_EFI_BACKGROUND_BLUE 0x10#define GRUB_EFI_BACKGROUND_GREEN 0x20#define GRUB_EFI_BACKGROUND_CYAN 0x30#define GRUB_EFI_BACKGROUND_RED 0x40#define GRUB_EFI_BACKGROUND_MAGENTA 0x50#define GRUB_EFI_BACKGROUND_BROWN 0x60#define GRUB_EFI_BACKGROUND_LIGHTGRAY 0x70#define GRUB_EFI_TEXT_ATTR(fg, bg) ((fg) | ((bg)))struct grub_efi_system_table{ grub_efi_table_header_t hdr; grub_efi_char16_t *firmware_vendor; grub_efi_uint32_t firmware_revision; grub_efi_handle_t console_in_handler; grub_efi_simple_input_interface_t *con_in; grub_efi_handle_t console_out_handler; grub_efi_simple_text_output_interface_t *con_out; grub_efi_handle_t standard_error_handle; grub_efi_simple_text_output_interface_t *std_err; grub_efi_runtime_services_t *runtime_services; grub_efi_boot_services_t *boot_services; grub_efi_uintn_t num_table_entries; grub_efi_configuration_table_t *configuration_table;};typedef struct grub_efi_system_table grub_efi_system_table_t;struct grub_efi_loaded_image{ grub_efi_uint32_t revision; grub_efi_handle_t parent_handle; grub_efi_system_table_t *system_table; grub_efi_handle_t device_handle; grub_efi_device_path_t *file_path; void *reserved; grub_efi_uint32_t load_options_size; void *load_options; void *image_base; grub_efi_uint64_t image_size; grub_efi_memory_type_t image_code_type; grub_efi_memory_type_t image_data_type; grub_efi_status_t (*unload) (grub_efi_handle_t image_handle);};typedef struct grub_efi_loaded_image grub_efi_loaded_image_t;struct grub_efi_disk_io{ grub_efi_uint64_t revision; grub_efi_status_t (*read) (struct grub_efi_disk_io *this, grub_efi_uint32_t media_id, grub_efi_uint64_t offset, grub_efi_uintn_t buffer_size, void *buffer); grub_efi_status_t (*write) (struct grub_efi_disk_io *this, grub_efi_uint32_t media_id, grub_efi_uint64_t offset, grub_efi_uintn_t buffer_size, void *buffer);};typedef struct grub_efi_disk_io grub_efi_disk_io_t;struct grub_efi_block_io_media{ grub_efi_uint32_t media_id; grub_efi_boolean_t removable_media; grub_efi_boolean_t media_present; grub_efi_boolean_t logical_partition; grub_efi_boolean_t read_only; grub_efi_boolean_t write_caching; grub_efi_uint8_t pad[3]; grub_efi_uint32_t block_size; grub_efi_uint32_t io_align; grub_efi_uint8_t pad2[4]; grub_efi_lba_t last_block;};typedef struct grub_efi_block_io_media grub_efi_block_io_media_t;struct grub_efi_block_io{ grub_efi_uint64_t revision; grub_efi_block_io_media_t *media; grub_efi_status_t (*reset) (struct grub_efi_block_io *this, grub_efi_boolean_t extended_verification); grub_efi_status_t (*read_blocks) (struct grub_efi_block_io *this, grub_efi_uint32_t media_id, grub_efi_lba_t lba, grub_efi_uintn_t buffer_size, void *buffer); grub_efi_status_t (*write_blocks) (struct grub_efi_block_io *this, grub_efi_uint32_t media_id, grub_efi_lba_t lba, grub_efi_uintn_t buffer_size, void *buffer); grub_efi_status_t (*flush_blocks) (struct grub_efi_block_io *this);};typedef struct grub_efi_block_io grub_efi_block_io_t;#endif /* ! GRUB_EFI_API_HEADER */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -