gpt4 book ai didi

c++ - "save_and_cli(flag)"是如何工作的?

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:20 25 4
gpt4 key购买 nike

我在跟踪一段在嵌入式 Linux 中运行的程序的代码时遇到了这个问题。我无法用谷歌搜索出有用的信息来告诉我它是如何工作的。

这段代码是这样写的:

unsigned char foo(*someaddress){
unsigned long flags = 0; //why use a long?
flags = save_and_cli(); //what is this?
spin_lock_irqsave(&someaddress, flags);//ok, this is a spin lock

...do something...

restore_flags(flags); //release something?
spin_unlock_irqrestore(&someaddress, flags);//release lock
}

这个 LONG 标志的值似乎永远不会改变,什么是 save_and_cli() 函数?

感谢您阅读本文。

最佳答案

IIRC save_and_clilocal_irq_save 的“古老”版本

它保存本地中断传递的当前状态,然后禁用它。

函数local_irq_restore用于恢复local_irq_save保存的irq状态

Here for reference

关于c++ - "save_and_cli(flag)"是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40459471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com