baron · 2020年05月21日

linux kernel中的local_irq_enable/disable只是开关irq对吗?

在linux kernel arm64代码中:local_irq_enable/disable只是开关irq对吗? 只操作了irq的比特位,没有操作serror、fiq、debug比特位

另外,在linux kernel中,找不到操作FIQ,SERROR,DEBUG 比特位的地方, 在linux kernel中是不是不需要FIQ。

SERROR、DEBUG位可能是在bootloader中打开的。

请极术小姐姐来回答,我理解对吗??

static inline void arch_local_irq_enable(void)
{

asm volatile(
    "msr    daifclr, #2        // arch_local_irq_enable"
    :
    :
    : "memory");

}

static inline void arch_local_irq_disable(void)
{

asm volatile(
    "msr    daifset, #2        // arch_local_irq_disable"
    :
    :
    : "memory");

}

你的回答
关注数
0
收藏数
0
浏览数
3110
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息