任务优先级简述
典型的优先级有四种
/** MdePkg/Include/Uefi/UefiSpec.h **/
585 //
586 // Task priority level
587 //
588 #define TPL_APPLICATION 4
589 #define TPL_CALLBACK 8
590 #define TPL_NOTIFY 16
591 #define TPL_HIGH_LEVEL 31
在Event.h中还提供了一个宏来判断合法
20 #define VALID_TPL(a) ((a) <= TPL_HIGH_LEVEL)
第一部分中的gEventPending则是一个UINTN类型的变量
21 extern UINTN gEventPending;
对于UINTN的定义,依赖于体系结构
MdePkg/Include/X64/ProcessorBind.h:237:typedef UINT64 <

本文深入分析了UEFI源码中的DXE阶段异步事件服务,重点探讨了任务优先级的提升和恢复。介绍了如何确保优先级不降低并检查其合法性,以及如何在恢复优先级时根据当前优先级执行回调函数。总结指出,在优先级提升到某一阈值时会关闭中断,而降低优先级时会调度执行相应优先级的事件回调函数。
最低0.47元/天 解锁文章
4907

被折叠的 条评论
为什么被折叠?



