接下来该函数验证了system table中的signature是否等于uefi specification中定义的signature,以此来判断该次启动是否用的是uefi方式。 然后通过efi_bs_call宏,调用system table中的boot service的handle_protocol方法,该方法指定的protocol为LOADED_IMAGE_PROTOCOL_GUID,即查询handle指向的image的相关信息,并把查询结果返回在im...
接下来该函数验证了system table中的signature是否等于uefi specification中定义的signature,以此来判断该次启动是否用的是uefi方式。 然后通过efi_bs_call宏,调用system table中的boot service的handle_protocol方法,该方法指定的protocol为LOADED_IMAGE_PROTOCOL_GUID,即查询handle指向的image的相关信息,并把查询结果返回在im...
status = efi_bs_call(get_memory_map, &tmp.map_size, NULL, &tmp.map_key, &tmp.desc_size, &tmp.desc_ver); 该函数通过get_memory_map这个efi的boot time service去获取内存映射的描述符表。至此我们算是从kernel层面清楚了efi runtime service调用所需内存上下文的设置。如果想了解uefi是怎么生成memory ...
接下来该函数验证了system table中的signature是否等于uefi specification中定义的signature,以此来判断该次启动是否用的是uefi方式。 然后通过efi_bs_call宏,调用system table中的boot service的handle_protocol方法,该方法指定的protocol为LOADED_IMAGE_PROTOCOL_GUID,即查询handle指向的image的相关信息,并把查询结果返回在im...
static const struct efi_boot_services *bs; static const struct efi_runtime_services *rs; #define LOAD_OPTION_ACTIVE 0x00000001 #define LOAD_OPTION_FORCE_RECONNECT 0x00000002 #define LOAD_OPTION_HIDDEN 0x00000008 /* * bootmgr implements the logic of trying to find a payload to boot * based ...
ret = EFI_CALL(bs->open_protocol(handle, &efi_simple_file_system_protocol_guid, (void **)&file_system, efi_root, NULL, EFI_OPEN_PROTOCOL_GET_PROTOCOL)); if (ret != EFI_SUCCESS) return ret;ret = EFI_CALL(file_system->open_volume(file_system, &root));...
Notice the use of the BS variable to call the HandleProcotol function. This variable is a global variable whose value was previously initialized in the OS loaders main entry point InitializeOSLoader (through a call to the InitializeLib function in the CeLoaderMain.c module) and contains the ...
Workplace by bs one Workplace Chatbot WorkplaceBuddy workway WOX Wrenly AI Wrike Xelion xMatters XNODE Meeting AI Agent Xoxoday Compass XtraMile Yablo YakChat YAROOMS Ybug Yeastar Workplace Yeeflow Yoffix - Desk and Room Booking YouScan Yoxel Signals yuccaHR Zavvy Zeitplan.io ZenAdmin Zen...
#define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ #ifdef CONFIG_EFI /* * Test whether the above EFI_* bits are enabled.*/ static inline bool efi_enabled(int feature) { return test_bit(feature, &efi.flags) != 0; ...
skip_bs = !argc || *argv[0] != 'a'; ret = efi_info_get(EFIET_MEMORY_MAP, (void **)&map, &size); switch (ret) { case -ENOENT: printf("No EFI table available\n"); goto done; case -EPROTONOSUPPORT: printf("Incorrect EFI table version\n"); goto done; if (IS_ENABLED(CON...