EFIAPI
efi_status (*AllocatePool) (efi_memory_type pool_type, size_t size, void** buf) EFIAPI;
efi_status (*FreePool) (void* buf) EFIAPI;
efi_event* event) EFIAPI;
efi_status (*SetTimer) (efi_event event, efi_timer_delay type, uint64_t trigger_time) EFIAPI;
efi_status (*WaitForEvent) (size_t num_events, efi_event* event, size_t* index) EFIAPI;
efi_status (*SignalEvent) (efi_event event) EFIAPI;
efi_status (*CloseEvent) (efi_event event) EFIAPI;
efi_status (*CheckEvent) (efi_event event) EFIAPI;
efi_interface_type intf_type, void* intf) EFIAPI;
void* old_intf, void* new_intf) EFIAPI;
void* intf) EFIAPI;
efi_status (*HandleProtocol) (efi_handle handle, efi_guid* protocol, void** intf) EFIAPI;
void** registration) EFIAPI;
void* search_key, size_t* buf_size, efi_handle* buf) EFIAPI;
efi_handle* device) EFIAPI;
efi_status (*InstallConfigurationTable) (efi_guid* guid, void* table) EFIAPI;
efi_handle* image_handle) EFIAPI;
char16_t** exit_data) EFIAPI;
size_t exit_data_size, char16_t* exit_data) EFIAPI;
efi_status (*UnloadImage) (efi_handle image_handle) EFIAPI;
efi_status (*ExitBootServices) (efi_handle image_handle, size_t map_key) EFIAPI;
efi_status (*GetNextMonotonicCount) (uint64_t* count) EFIAPI;
efi_status (*Stall) (size_t microseconds) EFIAPI;
size_t data_size, char16_t* watchdog_data) EFIAPI;
bool recursive) EFIAPI;
efi_handle child_handle) EFIAPI;
uint32_t attributes) EFIAPI;
efi_handle agent_handle, efi_handle controller_handle) EFIAPI;
size_t* entry_count) EFIAPI;
size_t* protocol_buf_count) EFIAPI;
size_t* num_handles, efi_handle** buf) EFIAPI;
efi_status (*LocateProtocol) (efi_guid* protocol, void* registration, void** intf) EFIAPI;
efi_status (*InstallMultipleProtocolInterfaces) (efi_handle* handle, ...) EFIAPI;
efi_status (*UninstallMultipleProtocolInterfaces) (efi_handle handle, ...) EFIAPI;
efi_status (*CalculateCrc32) (void* data, size_t len, uint32_t* crc32) EFIAPI;
void (*CopyMem) (void* dest, const void* src, size_t len) EFIAPI;
void (*SetMem) (void* buf, size_t len, uint8_t val) EFIAPI;
const efi_guid* event_group, efi_event* event) EFIAPI;
efi_tpl (*RaiseTPL) (efi_tpl new_tpl) EFIAPI;
void (*RestoreTPL) (efi_tpl old_tpl) EFIAPI;
size_t pages, efi_physical_addr* memory) EFIAPI;
efi_status (*FreePages) (efi_physical_addr memory, size_t pages) EFIAPI;
size_t* map_key, size_t* desc_size, uint32_t* desc_version) EFIAPI;
efi_status (*SetOSVersion) (char* version) EFIAPI;
efi_status (*SetOSVendor) (char* vendor) EFIAPI;
bool ExtendedVerification) EFIAPI;
size_t BufferSize, void* Buffer) EFIAPI;
size_t BufferSize, const void* Buffer) EFIAPI;
bool* stdInLocked) EFIAPI;
efi_console_control_screen_mode mode) EFIAPI;
bool display_only, bool allow_shortcuts) EFIAPI;
bool display_only, bool allow_shortcuts) EFIAPI;
uint64_t BufferSize, void* Buffer) EFIAPI;
uint64_t BufferSize, const void* Buffer) EFIAPI;
efi_device_path_protocol* remaining_path) EFIAPI;
efi_device_path_protocol* remaining_path) EFIAPI;
size_t num_children, efi_handle* child_handle_buf) EFIAPI;
uint32_t* attributes, size_t* edidSize, uint8_t** edid) EFIAPI;
const char16_t* filename, uint64_t open_mode, uint64_t attributes) EFIAPI;
efi_status (*Close) (struct efi_file_protocol* self) EFIAPI;
efi_status (*Delete) (struct efi_file_protocol* self) EFIAPI;
efi_status (*Read) (struct efi_file_protocol* self, size_t* len, void* buf) EFIAPI;
efi_status (*Write) (struct efi_file_protocol* self, size_t* len, void* buf) EFIAPI;
efi_status (*GetPosition) (struct efi_file_protocol* self, uint64_t* position) EFIAPI;
efi_status (*SetPosition) (struct efi_file_protocol* self, uint64_t position) EFIAPI;
size_t* buf_size, void* buf) EFIAPI;
size_t buf_size, void* buf) EFIAPI;
efi_status (*Flush) (struct efi_file_protocol* self) EFIAPI;
efi_file_io_token* token) EFIAPI;
efi_status (*ReadEx) (struct efi_file_protocol* self, efi_file_io_token* token) EFIAPI;
efi_status (*WriteEx) (struct efi_file_protocol* self, efi_file_io_token* token) EFIAPI;
efi_status (*FlushEx) (struct efi_file_protocol* self, efi_file_io_token* token) EFIAPI;
efi_graphics_output_mode_information** info) EFIAPI;
uint32_t mode_num) EFIAPI;
size_t width, size_t height, size_t delta) EFIAPI;
efi_status (*Unload) (efi_handle img) EFIAPI;
efi_simple_network_mode* snp_mode_data) EFIAPI;
efi_managed_network_config_data* mnp_config_data) EFIAPI;
bool ipv6_flag, efi_ip_addr* ip_addr, efi_mac_addr* mac_addr) EFIAPI;
efi_mac_addr* mac_addr) EFIAPI;
efi_managed_network_sync_completion_token* token) EFIAPI;
efi_managed_network_sync_completion_token* token) EFIAPI;
efi_managed_network_sync_completion_token* token) EFIAPI;
efi_status (*Poll) (struct efi_managed_network_protocol* self) EFIAPI;
size_t pages, void* host_addr) EFIAPI;
efi_status (*Flush) (struct efi_pci_root_bridge_io_protocol* self) EFIAPI;
uint64_t* supports, uint64_t* attributes) EFIAPI;
uint64_t* resource_len) EFIAPI;
void** resources) EFIAPI;
uint64_t addr, size_t count, void* buffer) EFIAPI;
uint64_t addr, size_t count, void* buffer) EFIAPI;
uint64_t* result) EFIAPI;
uint64_t* result) EFIAPI;
uint64_t dest_addr, uint64_t src_addr, size_t count) EFIAPI;
efi_physical_addr* device_addr, void** mapping) EFIAPI;
void* mapping) EFIAPI;
size_t pages, void** host_addr, uint64_t attributes) EFIAPI;
efi_status (*Reset)(efi_serial_io_protocol* self) EFIAPI;
uint8_t DataBits, efi_stop_bits_type StopBits) EFIAPI;
uint32_t Control) EFIAPI;
uint32_t* Control) EFIAPI;
size_t* BufferSize, void* Buffer) EFIAPI;
size_t* BufferSize, void* Buffer) EFIAPI;
efi_file_protocol** root) EFIAPI;
efi_mac_addr* mcast_filter) EFIAPI;
bool reset, efi_mac_addr* new_addr) EFIAPI;
efi_network_statistics* stats_table) EFIAPI;
bool ipv6, efi_ip_addr* ip, efi_mac_addr* mac) EFIAPI;
bool read_write, size_t offset, size_t buf_size, void* buf) EFIAPI;
uint32_t* interrupt_status, void** tx_buf) EFIAPI;
efi_mac_addr* src, efi_mac_addr* dest, uint16_t* protocol) EFIAPI;
efi_mac_addr* src, efi_mac_addr* dest, uint16_t* protocol) EFIAPI;
efi_status (*Start) (struct efi_simple_network_protocol* self) EFIAPI;
efi_status (*Stop) (struct efi_simple_network_protocol* self) EFIAPI;
size_t extra_rx_buf_size, size_t extra_tx_buf_size) EFIAPI;
bool extended_verification) EFIAPI;
efi_status (*Shutdown) (struct efi_simple_network_protocol* self) EFIAPI;
bool extendend_verification) EFIAPI;
efi_input_key* key) EFIAPI;
bool extended_verification) EFIAPI;
char16_t* string) EFIAPI;
char16_t* string) EFIAPI;
size_t mode_num, size_t* cols, size_t* rows) EFIAPI;
size_t mode_num) EFIAPI;
size_t attribute) EFIAPI;
efi_status (*ClearScreen) (struct efi_simple_text_output_protocol* self) EFIAPI;
size_t col, size_t row) EFIAPI;
bool visible) EFIAPI;
uint32_t* status) EFIAPI;
void* context) EFIAPI;
uint32_t* status) EFIAPI;
uint32_t* status) EFIAPI;
void* context) EFIAPI;
efi_usb_device_descriptor* descriptor) EFIAPI;
efi_usb_config_descriptor* descriptor) EFIAPI;
efi_usb_interface_descriptor* descriptor) EFIAPI;
efi_usb_endpoint_descriptor* descriptor) EFIAPI;
char16_t** str) EFIAPI;
uint16_t* table_size) EFIAPI;
efi_status (*UsbPortReset) (struct efi_usb_io_protocol* self) EFIAPI;
size_t data_len, uint32_t* status) EFIAPI;
efi_status (*GetTime) (efi_time* time, efi_time_capabilities* capabilities) EFIAPI;
efi_status (*SetTime) (efi_time* time) EFIAPI;
efi_status (*GetWakeupTime) (bool* enabled, bool* pending, efi_time* time) EFIAPI;
efi_status (*SetWakeupTime) (bool enable, efi_time* time) EFIAPI;
efi_memory_descriptor* virtual_map) EFIAPI;
efi_status (*ConvertPointer) (size_t debug_disposition, void** addr) EFIAPI;
uint32_t* attributes, size_t* data_size, void* data) EFIAPI;
efi_guid* vendor_guid) EFIAPI;
uint32_t attributes, size_t data_size, void* data) EFIAPI;
efi_status (*GetNextHighMonotonicCount) (uint32_t* high_count) EFIAPI;
size_t data_size, void* reset_data) EFIAPI;
efi_physical_addr scatter_gather_list) EFIAPI;
efi_reset_type* reset_type) EFIAPI;
uint64_t* max_var_size) EFIAPI;