UEFI Driver编写

最近有想在UEFI SHELL下实现所有设备的测试和访问,而且要做的平台通用性,UEFI的protocol很好支持,但是很多硬件的驱动是在PEI阶段或者没有加入规范,于是按照driver的形式写这些驱动,需要调用的时候去找这些driver的GUID来调用,这样整个调用框架不变,只要每次加载不同平台的driver就可以。有点类似linux的思路,下面代码均载录EDK SHELL。


1、首先,定义一个GUID,这个GUID是唯一的,并且不能重复,以后就是通过GUID来找这个Driver。

#define EFI_CPU_ARCH_PROTOCOL_GUID \
  { 0x26baccb1, 0x6f42, 0x11d4, {0xbc, 0xe7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } }

2、然后定义一个方法的集合,比如EnableInterrupt、DisableInterrupt。这里的EnableInterrupt、DisableInterrupt是函数指针,具体的实现后面会讲到

typedef struct _EFI_CPU_ARCH_PROTOCOL   EFI_CPU_ARCH_PROTOCOL;

///
/// The EFI_CPU_ARCH_PROTOCOL is used to abstract processor-specific functions from the DXE
/// Founda
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值