efi_status
efi_status (*AllocatePool) (efi_memory_type pool_type, size_t size, void** buf) EFIAPI;
efi_status (*FreePool) (void* buf) EFIAPI;
efi_status (*CreateEvent) (uint32_t type, efi_tpl notify_tpl,
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_status (*InstallProtocolInterface) (efi_handle* handle, efi_guid* protocol,
efi_status (*ReinstallProtocolInterface) (efi_handle hadle, efi_guid* protocol,
efi_status (*UninstallProtocolInterface) (efi_handle handle, efi_guid* protocol,
efi_status (*HandleProtocol) (efi_handle handle, efi_guid* protocol, void** intf) EFIAPI;
efi_status (*RegisterProtocolNotify) (efi_guid* protocol, efi_event event,
efi_status (*LocateHandle) (efi_locate_search_type search_type, efi_guid* protocol,
efi_status (*LocateDevicePath) (efi_guid* protocol, efi_device_path_protocol** path,
efi_status (*InstallConfigurationTable) (efi_guid* guid, void* table) EFIAPI;
efi_status (*LoadImage) (bool boot_policy, efi_handle parent_image_handle,
efi_status (*StartImage) (efi_handle image_handle, size_t* exit_data_size,
efi_status (*Exit) (efi_handle image_handle, efi_status exit_status,
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;
efi_status (*SetWatchdogTimer) (size_t timeout, uint64_t watchdog_code,
efi_status (*ConnectController) (efi_handle controller_handle,
efi_status (*DisconnectController) (efi_handle controller_handle,
efi_status (*OpenProtocol) (efi_handle handle, efi_guid* protocol, void** intf,
efi_status (*CloseProtocol) (efi_handle handle, efi_guid* protocol,
efi_status (*OpenProtocolInformation) (efi_handle handle, efi_guid* protocol,
efi_status (*ProtocolsPerHandle) (efi_handle handle, efi_guid*** protocol_buf,
efi_status (*LocateHandleBuffer) (efi_locate_search_type search_type,
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;
efi_status (*CreateEventEx) (uint32_t type, efi_tpl notify_tpl,
typedef efi_status (*efi_image_entry_point) (efi_handle img, efi_system_table* sys) EFIAPI;
efi_status (*AllocatePages) (efi_allocate_type type, efi_memory_type memory_type,
efi_status (*FreePages) (efi_physical_addr memory, size_t pages) EFIAPI;
efi_status (*GetMemoryMap) (size_t* memory_map_size, efi_memory_descriptor* memory_map,
efi_status (*SetOSVersion) (char* version) EFIAPI;
efi_status (*SetOSVendor) (char* vendor) EFIAPI;
efi_status (*Reset)(efi_block_io_protocol* self,
efi_status (*ReadBlocks)(efi_block_io_protocol* self,
efi_status (*WriteBlocks)(efi_block_io_protocol* self,
efi_status (*FlushBlocks)(efi_block_io_protocol* self);
efi_status (*GetMode) (struct efi_console_control_protocol* self,
efi_status (*SetMode) (struct efi_console_control_protocol* self,
efi_status (*LockStdIn) (struct efi_console_control_protocol* self,
efi_status (*ReadDisk)(efi_disk_io_protocol* self,
efi_status (*WriteDisk)(efi_disk_io_protocol* self,
efi_status (*Supported) (struct efi_driver_binding_protocol* self,
efi_status (*Start) (struct efi_driver_binding_protocol* self,
efi_status (*Stop) (struct efi_driver_binding_protocol* self,
efi_status (*GetEdid) (struct efi_edid_override_protocol* self, efi_handle* child,
efi_status Status;
efi_status (*Open) (struct efi_file_protocol* self, struct efi_file_protocol** new_handle,
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;
efi_status (*GetInfo) (struct efi_file_protocol* self, efi_guid* info_type,
efi_status (*SetInfo) (struct efi_file_protocol* self, efi_guid* info_type,
efi_status (*Flush) (struct efi_file_protocol* self) EFIAPI;
efi_status (*OpenEx) (struct efi_file_protocol* self, struct efi_file_protocol* new_handle,
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_status (*QueryMode) (struct efi_graphics_output_protocol* self,
efi_status (*SetMode) (struct efi_graphics_output_protocol* self,
efi_status (*Blt) (struct efi_graphics_output_protocol* self,
efi_status (*Unload) (efi_handle img) EFIAPI;
efi_status Status;
efi_status (*GetModeData) (struct efi_managed_network_protocol* self,
efi_status (*Configure) (struct efi_managed_network_protocol* self,
efi_status (*McastIpToMac) (struct efi_managed_network_protocol* self,
efi_status (*Groups) (struct efi_managed_network_protocol* self, bool join_flag,
efi_status (*Transmit) (struct efi_managed_network_protocol* self,
efi_status (*Receive) (struct efi_managed_network_protocol* self,
efi_status (*Cancel) (struct efi_managed_network_protocol* self,
efi_status (*Poll) (struct efi_managed_network_protocol* self) EFIAPI;
efi_status (*Flush) (struct efi_pci_root_bridge_io_protocol* self) EFIAPI;
efi_status (*GetAttributes) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*SetAttributes) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*Configuration) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*Read) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*Write) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*PollMem) (struct efi_pci_root_bridge_io_protocol *self,
efi_status (*PollIo) (struct efi_pci_root_bridge_io_protocol *self,
efi_status (*CopyMem) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*Map) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*Unmap) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*AllocateBuffer) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*FreeBuffer) (struct efi_pci_root_bridge_io_protocol* self,
efi_status (*Reset)(efi_serial_io_protocol* self) EFIAPI;
efi_status (*SetAttributes)(efi_serial_io_protocol* self,
efi_status (*SetControl)(efi_serial_io_protocol* self,
efi_status (*GetControl)(efi_serial_io_protocol* self,
efi_status (*Write)(efi_serial_io_protocol* self,
efi_status (*Read)(efi_serial_io_protocol* self,
efi_status (*OpenVolume) (struct efi_simple_file_system_protocol* self,
efi_status (*ReceiveFilters) (struct efi_simple_network_protocol* self,
efi_status (*StationAddress) (struct efi_simple_network_protocol* self,
efi_status (*Statistics) (struct efi_simple_network_protocol* self,
efi_status (*MCastIpToMac) (struct efi_simple_network_protocol* self,
efi_status (*NvData) (struct efi_simple_network_protocol* self,
efi_status (*GetStatus) (struct efi_simple_network_protocol* self,
efi_status (*Transmit) (struct efi_simple_network_protocol* self,
efi_status (*Receive) (struct efi_simple_network_protocol* self,
efi_status (*Start) (struct efi_simple_network_protocol* self) EFIAPI;
efi_status (*Stop) (struct efi_simple_network_protocol* self) EFIAPI;
efi_status (*Initialize) (struct efi_simple_network_protocol* self,
efi_status (*Reset) (struct efi_simple_network_protocol* self,
efi_status (*Shutdown) (struct efi_simple_network_protocol* self) EFIAPI;
efi_status (*Reset) (struct efi_simple_text_input_protocol* self,
efi_status (*ReadKeyStroke) (struct efi_simple_text_input_protocol* self,
efi_status (*Reset) (struct efi_simple_text_output_protocol* self,
efi_status (*OutputString) (struct efi_simple_text_output_protocol* self,
efi_status (*TestString) (struct efi_simple_text_output_protocol* self,
efi_status (*QueryMode) (struct efi_simple_text_output_protocol* self,
efi_status (*SetMode) (struct efi_simple_text_output_protocol* self,
efi_status (*SetAttribute) (struct efi_simple_text_output_protocol* self,
efi_status (*ClearScreen) (struct efi_simple_text_output_protocol* self) EFIAPI;
efi_status (*SetCursorPosition) (struct efi_simple_text_output_protocol* self,
efi_status (*EnableCursor) (struct efi_simple_text_output_protocol* self,
efi_status (*UsbAsyncInterruptTransfer) (struct efi_usb_io_protocol* self,
efi_status (*UsbSyncInterruptTransfer) (struct efi_usb_io_protocol* self,
efi_status (*UsbIsochronousTransfer) (struct efi_usb_io_protocol* self,
efi_status (*UsbAsyncIsochronousTransfer) (struct efi_usb_io_protocol* self,
efi_status (*UsbGetDeviceDescriptor) (struct efi_usb_io_protocol* self,
efi_status (*UsbGetConfigDescriptor) (struct efi_usb_io_protocol* self,
efi_status (*UsbGetInterfaceDescriptor) (struct efi_usb_io_protocol* self,
efi_status (*UsbGetEndpointDescriptor) (struct efi_usb_io_protocol* self,
efi_status (*UsbGetStringDescriptor) (struct efi_usb_io_protocol* self,
efi_status (*UsbGetSupportedLanguages) (struct efi_usb_io_protocol* self,
efi_status (*UsbPortReset) (struct efi_usb_io_protocol* self) EFIAPI;
typedef efi_status (*efi_async_usb_transfer_callback) (
efi_status (*UsbControlTransfer) (struct efi_usb_io_protocol* self,
efi_status (*UsbBulkTransfer) (struct efi_usb_io_protocol* self,
efi_status CapsuleStatus;
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_status (*SetVirtualAddressMap) (size_t memory_map_size, size_t desc_size,
efi_status (*ConvertPointer) (size_t debug_disposition, void** addr) EFIAPI;
efi_status (*GetVariable) (char16_t* var_name, efi_guid* vendor_guid,
efi_status (*GetNextVariableName) (size_t* var_name_size, char16_t* var_name,
efi_status (*SetVariable) (char16_t* var_name, efi_guid* vendor_guid,
efi_status (*GetNextHighMonotonicCount) (uint32_t* high_count) EFIAPI;
efi_status (*ResetSystem) (efi_reset_type reset_type, efi_status reset_status,
efi_status (*UpdateCapsule) (efi_capsule_header** capsule_header_array,
efi_status (*QueryCapsuleCapabilities) (efi_capsule_header** capsule_header_array,
efi_status (*QueryVariableInfo) (uint32_t attributes,
extern "C" efi_status _relocate(long ldbase, Elf32_Dyn *dyn,
extern "C" efi_status _relocate (long ldbase, Elf64_Dyn *dyn,
extern "C" efi_status _relocate(long ldbase, Elf_Dyn *dyn,
extern "C" efi_status _relocate (long ldbase, Elf32_Dyn *dyn,
extern "C" efi_status _relocate (long ldbase, Elf64_Dyn *dyn,
efi_status status;
efi_status status = kSystemTable->ConIn->ReadKeyStroke(
efi_status status = kBootServices->AllocatePages(AllocateAnyPages,
efi_status status = kBootServices->AllocatePages(AllocateMaxAddress,
efi_status status;
efi_status s = kBootServices->AllocatePages(AllocateAnyPages,
efi_status status = kSystemTable->BootServices->LocateProtocol(
efi_status status = fNetwork->Transmit(fNetwork, 0, size,
efi_status status = fNetwork->Receive(fNetwork, NULL, &size, buffer,
efi_status status = kSystemTable->BootServices->LocateProtocol(
efi_status status = kSystemTable->BootServices->LocateProtocol(
extern "C" efi_status
efi_status status = kBootServices->LocateProtocol(&sGraphicsOutputGuid, NULL,