首页 > 其他 > 详细

系统调用下

时间:2016-05-09 18:47:30      阅读:206      评论:0      收藏:0      [点我收藏+]

1.系统调用简易的伪代码

#systme call
#asm pseudo code
#系统调用处理过程的伪代码
.macro INTERRUPT_RETURN
    iret
.endm
.macro SAVE_ALL
    ...
.endm
.macro RESTORE_INT_REGS
    ...
.endm
ENTRY(system_call)
    SAVE_ALL
system_call:
    call *sys_call_table(,%eax,4)
    movl %eax,PT_EAX(%esp)    #store the return value
syscall_exit:
    testl $_TIF_ALLWORK_MASK,%ecx    #current->work
    jne syscall_exit_work
restall_all:
    RESTORE_INT_REGS
irq_return:
    INTERRUPT_RETURN
ENDPROC(system_call)
syscall_exit_work:
    testl $_TIF_WORK_SYSCALL_EXIT,%ecx
    jz work_pending
END(syscall_exit_work)
work_pending:
    testb $_TIF_NEED_RESCHED,%c1
    jz work_notifysig
work_resched:
    call schedule
    jz restall_all
work_notifysig:
    ...
END(work_pending)

2.系统调用简易的流程图

技术分享

 

系统调用下

原文:http://www.cnblogs.com/boyiliushui/p/5474894.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!