UEFI.源码分析.DXE的异步事件服务.第二部分.任务优先级

本文深入分析了UEFI源码中的DXE阶段异步事件服务,重点探讨了任务优先级的提升和恢复。介绍了如何确保优先级不降低并检查其合法性,以及如何在恢复优先级时根据当前优先级执行回调函数。总结指出,在优先级提升到某一阈值时会关闭中断,而降低优先级时会调度执行相应优先级的事件回调函数。
摘要由CSDN通过智能技术生成
  • 源代码:EDK2
  • 版本:UDK2017
  • UEFI源码分析第二篇,异步事件服务
  • 第二部分,任务优先级
  • 第一部分,事件驱动
  • 定时器类型EVT_TIMER将在第三部分

任务优先级简述

典型的优先级有四种

/** 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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值