common.S和call.S的部分理解1(8)


  1: .type    sys_call_table, #object
    2: ENTRY(sys_call_table)
    3: #include "calls.S"
    4: #undef ABI
    5: #undef OBSOLETE
    6: 
    7: 
    8: @r0 = syscall number
    9: @r8 = syscall table
  10: sys_syscall:
  11:    bic    scno, r0, #__NR_OABI_SYSCALL_BASE
  12:    cmp    scno, #__NR_syscall - __NR_SYSCALL_BASE
  13:    cmpne    scno, #NR_syscalls    @ check range
  14:    stmloia    sp, {r5, r6}        @ shuffle args
  15:    movlo    r0, r1
  16:    movlo    r1, r2
  17:    movlo    r2, r3
  18:    movlo    r3, r4
  19:    ldrlo    pc, [tbl, scno, lsl #2]
  20:    b    sys_ni_syscall
  21: ENDPROC(sys_syscall)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/55ed6c6fe9c780ca1b111aa019ccd733.html