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