git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: basic elf32 loader (only LOAD segment is supported)
[lunaix-os.git]
/
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 bd51976d64fc2a5f9801dba7e7fde6cb8a3ef44d..bde7f36d9d79b6a0f2e59736be6fd5e4ad191fdc 100644
(file)
--- a/
lunaix-os/kernel/asm/x86/syscall.S
+++ b/
lunaix-os/kernel/asm/x86/syscall.S
@@
-30,7
+30,7
@@
.long __lxsys_close /* 20 */
.long __lxsys_read
.long __lxsys_write
.long __lxsys_close /* 20 */
.long __lxsys_read
.long __lxsys_write
- .long __lxsys_readdir
+ .long __lxsys_
sys_
readdir
.long __lxsys_mkdir
.long __lxsys_lseek /* 25 */
.long __lxsys_geterrno
.long __lxsys_mkdir
.long __lxsys_lseek /* 25 */
.long __lxsys_geterrno
@@
-59,8
+59,9
@@
.long __lxsys_getpgid
.long __lxsys_setpgid /* 50 */
.long __lxsys_syslog
.long __lxsys_getpgid
.long __lxsys_setpgid /* 50 */
.long __lxsys_syslog
- .long __lxsys_mmap
+ .long __lxsys_
sys_
mmap
.long __lxsys_munmap
.long __lxsys_munmap
+ .long __lxsys_execve
2:
.rept __SYSCALL_MAX - (2b - 1b)/4
.long 0
2:
.rept __SYSCALL_MAX - (2b - 1b)/4
.long 0
@@
-86,8
+87,7
@@
popl %ebp
ret
1:
popl %ebp
ret
1:
- pushl 24(%ebp) /* esi - #6 arg */
- pushl 20(%ebp) /* ebp - #5 arg */
+ pushl 24(%ebp) /* esi - #5 arg */
pushl 16(%ebp) /* edi - #4 arg */
pushl 12(%ebp) /* edx - #3 arg */
pushl 8(%ebp) /* ecx - #2 arg */
pushl 16(%ebp) /* edi - #4 arg */
pushl 12(%ebp) /* edx - #3 arg */
pushl 8(%ebp) /* ecx - #2 arg */
@@
-97,7
+97,7
@@
movl %eax, (%ebp) /* save the return value */
movl %eax, (%ebp) /* save the return value */
- addl $2
4
, %esp /* remove the parameters from stack */
+ addl $2
0
, %esp /* remove the parameters from stack */
popl %ebp
popl %ebp