Legacy post is Interrupt, EFI post is Event.
Events 是UEFI Service管理的另一个类型的对像。一个Event可以被创建,也可以被销毁:它可以处在Waiting状态,也可以处在Signaled状态。
一个UEFI Image可以对Event做以下的事情:
1). 创建一个Event //CreateEvent()
2). 销毁一个Event //CloseEvent()
3). 查看一个Event是否处在Signaled状态 //CheckEvent()
4). 等待一个Event进入Signaled状态 //WaitForEvent()
5). 请求一个Event从Waiting状态进入到Signaled状态 //SignalEvent()
UEFI不Support Interrupt(UEFI唯一一个中断int 0,timer),除了timer中断,主机不能使用硬件中断和外部设备通信。所以,只能使用polling方式来访问设备。UEFI目前不支持多线程,是单线程环境,但是它必须提供一种异步机制来支持有限多任务,这就是引入EVENT的原因。
UEFI Driver经常使用Timer Events来允许Driver周期性的轮询Device。
二、UEFI Events的类型及相互之间的关系