在中断处理函数中,首先要保存被中任务的现场,最后要恢复现场。都要用到下面的函数:
static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
{
struct pt_regs *old_regs;
old_regs = __this_cpu_read(__irq_regs); //将一个per-CPU变量__irq_regs保存到old_regs
__this_cpu_write(__irq_regs, new_regs); //将__irq_regs变量赋予一个新值 new_regs,这样在中断处理工程中,系统中的每一个cpu都可以通过__irq_regs来访问系统保存的中断现场
return old_regs;
}
阅读(2225) | 评论(0) | 转发(0) |