linux arm 异常及中断处理过程 2 --- entry-common.S / entry-header.S (注释)

内核版本(3.10.90)

1.  arch\arm\kernel\entry-common.S  

/*
 * "slow" syscall return path.  "why" tells us if this was a real syscall.
 */
ENTRY(ret_to_user)  /* 执行路径 : 
                                 * __dabt_usr --> ret_from_exception --> ret_to_user 
                                 * __pabt_usr --> ret_from_exception --> ret_to_user 
                                 */
ret_slow_syscall:
    disable_irq             @ disable interrupts
                            /* 这里为什么要 disable_irq 呢 ???  r0 表示的就是中断号 ???
                             * 在 kernel\irq\manage.c 里定义了:
                             * void disable_irq(unsigned int irq)
                             */
ENTRY(ret_to_user_from_irq)  /* 执行路径: __irq_usr --> ret_to_user_from_irq */
    ldr    r1, [tsk, #TI_FLAGS] /* arch\arm\kernel\entry-header.S 里定义了 
                                            * tsk    .req    r9        @ current thread_info
                                            * 在 __irq_usr 里通过 get_thread_info tsk 得到值
                                            */
    tst    r1, #_TIF_WORK_MASK
    bne    work_pending
no_work_pending:
    asm_trace_hardirqs_on

    /* perform architecture specific actions before user return */
    arch

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值