设为首页 加入收藏

TOP

对entry-common.S和call.S的部分理解1 - 摩斯电码(九)
2015-02-13 18:24:18 来源: 作者: 【 】 浏览:137
Tags:entry-common.S call.S 部分 理解 电码
? ? syscall_trace
? 307:? ? b? ? ret_slow_syscall
? 308:?
? 309:? ? .align? ? 5
? 310: #ifdef CONFIG_ALIGNMENT_TRAP
? 311:? ? .type? ? __cr_alignment, #object
? 312: __cr_alignment:
? 313:? ? .word? ? cr_alignment
? 314: #endif
? 315:? ? .ltorg
? 316:?
? 317: /*
? 318:? * This is the syscall table declaration for native ABI syscalls.
? 319:? * With EABI a couple syscalls are obsolete and defined as sys_ni_syscall.
? 320:? */
? 321: #define ABI(native, compat) native
? 322: #ifdef CONFIG_AEABI
? 323: #define OBSOLETE(syscall) sys_ni_syscall
? 324: #else
? 325: #define OBSOLETE(syscall) syscall
? 326: #endif
? 327:?
? 328:? ? .type? ? sys_call_table, #object
? 329: ENTRY(sys_call_table)
? 330: #include "calls.S"
? 331: #undef ABI
? 332: #undef OBSOLETE
? 333:?
? 334: /*============================================================================
? 335:? * Special system call wrappers
? 336:? */
? 337: @ r0 = syscall number
? 338: @ r8 = syscall table
? 339: sys_syscall:
? 340:? ? ? ? bic? ? scno, r0, #__NR_OABI_SYSCALL_BASE
? 341:? ? ? ? cmp? ? scno, #__NR_syscall - __NR_SYSCALL_BASE
? 342:? ? ? ? cmpne? ? scno, #NR_syscalls? ? @ check range
? 343:? ? ? ? stmloia? ? sp, {r5, r6}? ? ? ? @ shuffle args
? 344:? ? ? ? movlo? ? r0, r1
? 345:? ? ? ? movlo? ? r1, r2
? 346:? ? ? ? movlo? ? r2, r3
? 347:? ? ? ? movlo? ? r3, r4
? 348:? ? ? ? ldrlo? ? pc, [tbl, scno, lsl #2]
? 349:? ? ? ? b? ? sys_ni_syscall
? 350: ENDPROC(sys_syscall)
? 351:?
? 352: sys_fork_wrapper:
? 353:? ? ? ? add? ? r0, sp, #S_OFF
? 354:? ? ? ? b? ? sys_fork
? 355: ENDPROC(sys_fork_wrapper)
? 356:?
? 357: sys_vfork_wrapper:
? 358:? ? ? ? add? ? r0, sp, #S_OFF
? 359:? ? ? ? b? ? sys_vfork
? 360: ENDPROC(sys_vfork_wrapper)
? 361:?
? 362: sys_execve_wrapper:
? 363:? ? ? ? add? ? r3, sp, #S_OFF
? 364:? ? ? ? b? ? sys_execve
? 365: ENDPROC(sys_execve_wrapper)
? 366:?
? 367: sys_clone_wrapper:
? 368:? ? ? ? add? ? ip, sp, #S_OFF
? 369:? ? ? ? str? ? ip, [sp, #4]
? 370:? ? ? ? b? ? sys_clone
? 371: ENDPROC(sys_clone_wrapper)
? 372:?
? 373: sys_sigsuspend_wrapper:
? 374:? ? ? ? add? ? r3, sp, #S_OFF
? 375:? ? ? ? b? ? sys_sigsuspend
? 376: ENDPROC(sys_sigsuspend_wrapper)
? 377:?
? 378: sys_rt_sigsuspend_wrapper:
? 379:? ? ? ? add? ? r2, sp, #S_OFF
? 380:? ? ? ? b? ? sys_rt_sigsuspend
? 381: ENDPROC(sys_rt_sigsuspend_wrapper)
? 382:?
? 383: sys_sigreturn_wrapper:
? 384:? ? ? ? add? ? r0, sp, #S_OFF
? 385:? ? ? ? b? ? sys_sigreturn
? 386: ENDPROC(sys_sigreturn_wrapper)
? 387:?
? 388: sys_rt_sigreturn_wrapper:
? 389:? ? ? ? add? ? r0, sp, #S_OFF
? 390:? ? ? ? b? ? sys_rt_sigreturn
? 391: ENDPROC(sys_rt_sigreturn_wrapper)
? 392:?
? 393: sys_sigaltstack_wrapper:
? 394:? ? ? ? ldr? ? r2, [sp, #S_OFF + S_SP]
? 395:? ? ? ? b? ? do_sigaltstack
? 396: ENDPROC(sys_sigaltstack_wrapper)
? 397:?
? 398: sys_statfs64_wrapper:
? 399:? ? ? ? teq? ? r1, #88
? 400:? ? ? ? moveq? ? r1, #84
? 401:? ? ? ? b? ? sys_statfs64
? 402: ENDPROC(sys_statfs64_wrapper)
? 403:?
? 404: sys_fstatfs64_wrapper:
? 405:? ? ? ? teq? ? r1, #88
? 406:? ? ? ? moveq? ? r1, #84
? 407:? ? ? ? b? ? sys_fstatfs64
? 408: ENDPROC(sys_fstatfs64_wrapper)
? 409:?
? 410: /*
? 411:? * Note: off_4k (r5) is always units of 4K.? If we can't do the requested
? 412:? * offset, we return EINVAL.
? 413:? */
? 414: sys_mmap2:
? 415: #if PAGE_SHIFT > 12
? 416:? ? ? ? tst? ? r5, #PGOFF_MASK
? 417:? ? ? ? moveq? ? r5, r5, lsr #PAGE_SHIFT - 12
? 418:? ? ? ? streq? ? r5, [sp, #4]
? 419:? ? ? ? beq? ? do_mmap2
? 420:? ? ? ? mov? ? r0, #-EINVAL
? 421:? ? ? ? mov? ? pc, lr
? 422: #else
? 423:? ? ? ? str? ? r5, [sp, #4]
? 424:? ? ? ? b? ? do_mmap2
? 425: #endif
? 426: ENDPROC(sys_mmap2)
? 427:?
? 428: ENTRY(pabort_ifar)
? 429:? ? ? ? mrc? ? p15, 0, r0, cr6, cr0, 2
? 430: ENTRY(pabor
首页 上一页 6 7 8 9 10 下一页 尾页 9/10/10
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇关于Linux系统如何实现fork的研究 下一篇Linux-2.6.21 pi futex关键数据结..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: