typedef EFI_STATUS (EFIAPI *EFI_TREE_GET_CAPABILITY) ( IN EFI_TREE_PROTOCOL *This, IN OUT TREE_BOOT_SERVICE_CAPABILITY*ProtocolCapability, ); 参数 This 指示调用上下文。 ProtocolCapability 调用方为 TREE_BOOT_SERVICE_CAPABILITY 结构分配内存,并将 size 字段设置为所分配的结构的大小。 被调用方中使用...
typedefEFI_STATUS(EFIAPI * EFI_DISPLAY_POWER_GETDISPLAYPOWERSTATE)( IN EFI_DISPLAY_POWER_PROTOCOL *This, OUT EFI_DISPLAY_POWER_STATE *PowerState ); 参数 This [in] 指向EFI_DISPLAY_POWER_PROTOCOL实例的指针。 PowerState [out] 指向接收当前电源状态的EFI_DISPLAY_POWER_STATE值的指针。
EFI_STATUSentryPoint(EFI_HANDLEImageHandle,EFI_SYSTEM_TABLE*SystemTable); 其中的IN、OUT和EFIAPI这些记号全部都消失了,因为它们只作标识作用。这个原型,和我们上文的那个efi_main基本没什么差别。 那么EFI_STATUS和EFI_HANDLE又是怎么定义的呢?在UEFI标准中,有一整张表来描述比较基础的UEFI标准类型如下: 看起来,...
status = efi_get_memory_map(&map);//将通过uefi申请空间,并将map.map指向那段内存地址,其中的内容为efi_memory_desc_t。这个地址在函数exit_boot_func填入到fdt中 //更新fdt文件 status = update_fdt((void *)fdt_addr, fdt_size, (void *)*new_fdt_addr, MAX_FDT_SIZE, cmdline_ptr, initrd_addr,...
#include<efi.h>#include<efilib.h>EFI_STATUS EFIAPIefi_main(EFI_HANDLE ImageHandle,EFI_SYSTEM_TABLE*SystemTable){// 初始化EFI库InitializeLib(ImageHandle,SystemTable);// 在屏幕上打印一行文本Print(L"Hello, EFI UEFI!\n");// 等待用户按下任意键WaitForSingleEvent(ST->ConIn->WaitForKey,0);ret...
#include<efi.h>#include<efilib.h>EFI_STATUSEFIAPIefi_main(EFI_HANDLEImageHandle,EFI_SYSTEM_TABLE*SystemTable){InitializeLib(ImageHandle,SystemTable);Print(L"Hello, world!\n");Print(L"wyh\n");returnEFI_SUCCESS;} Makefile,我用的是wsl debian。(tab变成空格了,复制的话注意必须都用tab): ...
typedefEFI_STATUS(EFIAPI * EFI_USBFN_IO_CONFIGURE_ENABLE_ENDPOINTS_EX)( IN EFI_USBFN_IO_PROTOCOL *This, IN EFI_USB_DEVICE_INFO *DeviceInfo, IN EFI_USB_SUPERSPEED_DEVICE_INFO *SSDeviceInfo ); 参数 This 指向EFI_USBFN_IO_PROTOCOL 实例的指针。
EFI_STATUS EFIAPI MyProtocolDriverBindingSupport ( IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath, IN BOOLEAN *IsControllerStartRequest ) { EFI_STATUS Status; EFI_HANDLE ChildHandle; Status = gBS->LocateProtocol (&MyProtocol...
typedef EFI_STATUS (EFIAPI * EFI_BATTERY_CHARGING_GET_BATTERY_STATUS) ( IN EFI_BATTERY_CHARGING_PROTOCOL *This, OUT UINT32 *StateOfCharge, OUT UINT32 *RatedCapacity, OUT INT32 *ChargeCurrent ); 参数This [in] 指向 EFI_BATTERY_CHARGING_PROTOCOL 实例的指针。State...
EFI_STATUS EFIAPI UefiMain(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable) { EFI_STATUS Status; EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; UINTN Width, Height; EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info; // 初始化 UEFI 环境 InitializeLib(ImageHandle, SystemTable); // 获取 Graphics...