我正在处理Linux UEFI技术。 我想通过我的驱动程序代码访问efi变量。 目前,我正在查看类似efi.get_variable()的linux/efi.h API。 但是,我不知道如何从我的驱动程序代码中调用这些API。
struct efi efi1;
efi_init();
efi_char16_t *name = (efi_char16_t *)"Boot001";
efi_guid_t *vendor = (efi_guid_t *)"8be4df61-93ca-11d2-aa0d-00e098032b8c";
u32 *attr = (u32 *)0x7;
unsigned long data_size = 1024;
void *data = NULL;
printk("\n Showing efi info \n");
stat = efi1.get_variable(name,vendor,attr,&data_size,data);
使用此代码时,我得到了数据的NULL值。您能建议我应该怎么做吗?或者有什么修改建议吗?
char *
强制转换为efi_guid_t *
吗?而且u32 *attr = (u32 *)0x7;
看起来非常、非常不对。你还在efi1
初始化之前使用它。 - tangrsefi_init
- 这是在启动时完成的。 - tangrs