refactor: organize all arch related files together.
[lunaix-os.git] / lunaix-os / kernel / asm / i386 / syscall.S
diff --git a/lunaix-os/kernel/asm/i386/syscall.S b/lunaix-os/kernel/asm/i386/syscall.S
deleted file mode 100644 (file)
index ac3fe80..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-#define __ASM__
-#include <lunaix/syscall.h>
-
-.section .data
-    /*
-        注意,这里的顺序非常重要。每个系统调用在这个地址表里的索引等于其调用号。
-    */
-    syscall_table:
-        1:
-        .long 0
-        .long __lxsys_fork          /* 1 */
-        .long __lxsys_yield
-        .long __lxsys_sbrk
-        .long __lxsys_brk
-        .long __lxsys_getpid        /* 5 */
-        .long __lxsys_getppid
-        .long __lxsys_sleep
-        .long __lxsys_exit
-        .long __lxsys_wait          
-        .long __lxsys_waitpid       /* 10 */
-        .long __lxsys_sigreturn
-        .long __lxsys_sigprocmask
-        .long __lxsys_sys_sigaction
-        .long __lxsys_pause
-        .long __lxsys_kill          /* 15 */
-        .long __lxsys_alarm
-        .long __lxsys_sigpending
-        .long __lxsys_sigsuspend
-        .long __lxsys_open
-        .long __lxsys_close         /* 20 */
-        .long __lxsys_read
-        .long __lxsys_write
-        .long __lxsys_sys_readdir
-        .long __lxsys_mkdir
-        .long __lxsys_lseek         /* 25 */
-        .long __lxsys_geterrno
-        .long __lxsys_readlink
-        .long __lxsys_readlinkat
-        .long __lxsys_rmdir
-        .long __lxsys_unlink        /* 30 */
-        .long __lxsys_unlinkat
-        .long __lxsys_link
-        .long __lxsys_fsync
-        .long __lxsys_dup
-        .long __lxsys_dup2          /* 35 */
-        .long __lxsys_realpathat
-        .long __lxsys_symlink
-        .long __lxsys_chdir
-        .long __lxsys_fchdir
-        .long __lxsys_getcwd        /* 40 */
-        .long __lxsys_rename
-        .long __lxsys_mount
-        .long __lxsys_unmount
-        .long __lxsys_getxattr
-        .long __lxsys_setxattr      /* 45 */
-        .long __lxsys_fgetxattr
-        .long __lxsys_fsetxattr
-        .long __lxsys_ioctl
-        .long __lxsys_getpgid
-        .long __lxsys_setpgid       /* 50 */
-        .long __lxsys_syslog
-        .long __lxsys_sys_mmap
-        .long __lxsys_munmap
-        .long __lxsys_execve
-        2:
-        .rept __SYSCALL_MAX - (2b - 1b)/4
-            .long 0
-        .endr
-
-.global syscall_hndlr
-
-.section .text
-    syscall_hndlr:
-        pushl %ebp
-        movl 8(%esp), %ebp          // isr_param*
-
-        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
-        addl $syscall_table, %eax
-        cmpl $0, (%eax)
-        jne 1f
-    2:    
-        neg   %eax
-        popl  %ebp
-        ret
-    1:
-        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 4(%ebp)       /* ebx - #1 arg */
-        
-        call *(%eax)
-
-        movl %eax, (%ebp)    /* save the return value */
-
-        addl $20, %esp      /* remove the parameters from stack */
-
-        popl %ebp
-        
-        ret
\ No newline at end of file