提交 2992d6fe 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

the use of int for sys_exec was only needed for some intermediate

half-broken implementation of syscall/sysret; exec seems to work fine with syscall/sysret now.
上级 cef3edd9
......@@ -431,7 +431,7 @@ sys_chdir(const char *path)
return 0;
}
//SYSCALL INT
//SYSCALL
int
sys_exec(const char *upath, userptr<userptr<const char> > uargv)
{
......
......@@ -55,13 +55,11 @@ SYS_%(uname)s = %(num)d
.globl %(uname)s
%(uname)s:
movq $%(num)d, %%rax""" % syscall.__dict__
if "INT" in syscall.flags:
print " int $T_SYSCALL"
else:
print " movq %rcx, %r10\n syscall"
print " ret"
print
movq $%(num)d, %%rax
movq %%rcx, %%r10
syscall
ret
""" % syscall.__dict__
if options.udecls:
for syscall in syscalls:
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论