X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/642855f81fd03b9fd6540ac99c665b57b4b38cc8..ec99de19aac85f73b1caff8471e7e9a8c8aea38f:/lunaix-os/kernel/asm/x86/syscall.S diff --git a/lunaix-os/kernel/asm/x86/syscall.S b/lunaix-os/kernel/asm/x86/syscall.S index eb16783..62e0721 100644 --- a/lunaix-os/kernel/asm/x86/syscall.S +++ b/lunaix-os/kernel/asm/x86/syscall.S @@ -61,6 +61,7 @@ .long __lxsys_syslog .long __lxsys_sys_mmap .long __lxsys_munmap + .long __lxsys_execve 2: .rept __SYSCALL_MAX - (2b - 1b)/4 .long 0 @@ -71,10 +72,11 @@ .section .text syscall_hndlr: pushl %ebp - movl 8(%esp), %ebp + movl 8(%esp), %ebp // isr_param* - movl (%ebp), %eax /* eax: call code as well as the return value from syscall */ - cmpl $__SYSCALL_MAX, %eax + addl $4, %ebp + movl (%ebp), %eax /* eax: call code as well as the return value from syscall */ + cmpl $__SYSCALL_MAX, %eax jae 2f shll $2, %eax