Dovetail相关的原子操作

Legonext 2023-09-25 09:09:36

对于原子操作助手说,虚拟化中断保护的效果必须还原回来。无论调用程序处于哪个阶段,只要需要禁用中断来序列化调用程序,就必须禁用中断保护。通常,会涉及以下文件:

  • include/asm general/atomic.h
  • include/asm general/cmpxchg local.h
  • include/asm general/cmpxchg.h

同样,在体系结构特定代码中:

  • arch/arm/include/asm/atomic.h
  • arch/arm/include/ams/bitops.h
  • arch/arm-include/asm/cmpxchg.h

这是保证这些助手可用于从两个阶段访问数据是所必需的。恢复这种虚拟化的一种常见方法是用它们的硬的、非虚拟化的对应API调用替换对虚拟化的local_irq_save(), local_irq_restore() API的调用。

譬如:

恢复通用原子计数器上操作的严格序列化:

同样,这样的操作可能存在于体系结构特定的代码中,覆盖它们的通用定义。例如,ARM端口定义了它自己的原子操作版本,对于这些操作,必须恢复真正的中断保护:

恢复ARM原子计数器上操作的严格序列化

...全文
177 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

131

社区成员

发帖
与我相关
我的任务
社区描述
Xenomai中文社区。 Upstream - xenomai.org Mirror - gitee.com/Xenomai CSDN - bbs.csdn.net/forums/Xenomai
社区管理员
  • Xenomai
  • legonext
  • Cajb
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧