⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entry.s

📁 ARM8008光盘linux-kernel
💻 S
📖 第 1 页 / 共 3 页
字号:
	xc      SP_R2(8,%r15),SP_R2(%r15) # child returns 0#ifdef CONFIG_SMP	larl    %r14,sysc_return        jg      schedule_tail     # return to sysc_return#else        j       sysc_return#endif## clone, fork, vfork, exec and sigreturn need glue,# because they all expect pt_regs as parameter,# but are called with different parameter.# return-address is set up above#sys_clone_glue:         la      %r2,SP_PTREGS(%r15)    # load pt_regs        jg      sys_clone              # branch to sys_clonesys_fork_glue:          la      %r2,SP_PTREGS(%r15)    # load pt_regs        jg      sys_fork               # branch to sys_forksys_vfork_glue:         la      %r2,SP_PTREGS(%r15)    # load pt_regs        jg      sys_vfork              # branch to sys_vforksys_execve_glue:                la      %r2,SP_PTREGS(%r15)   # load pt_regs	lgr     %r12,%r14             # save return address        brasl   %r14,sys_execve       # call sys_execve        ltgr    %r2,%r2               # check if execve failed        bnz     0(%r12)               # it did fail -> store result in gpr2        b       6(%r12)               # SKIP STG 2,SP_R2(15) in                                      # system_call/sysc_tracesys#ifdef CONFIG_S390_SUPPORTsys32_execve_glue:                la      %r2,SP_PTREGS(%r15)   # load pt_regs	lgr     %r12,%r14             # save return address        brasl   %r14,sys32_execve     # call sys32_execve        ltgr    %r2,%r2               # check if execve failed        bnz     0(%r12)               # it did fail -> store result in gpr2        b       6(%r12)               # SKIP STG 2,SP_R2(15) in                                      # system_call/sysc_tracesys#endifsys_sigreturn_glue:             la      %r2,SP_PTREGS(%r15)   # load pt_regs as parameter        jg      sys_sigreturn         # branch to sys_sigreturn#ifdef CONFIG_S390_SUPPORTsys32_sigreturn_glue:             la      %r2,SP_PTREGS(%r15)   # load pt_regs as parameter        jg      sys32_sigreturn       # branch to sys32_sigreturn#endifsys_rt_sigreturn_glue:             la      %r2,SP_PTREGS(%r15)   # load pt_regs as parameter        jg      sys_rt_sigreturn      # branch to sys_sigreturn#ifdef CONFIG_S390_SUPPORTsys32_rt_sigreturn_glue:             la      %r2,SP_PTREGS(%r15)   # load pt_regs as parameter        jg      sys32_rt_sigreturn    # branch to sys32_sigreturn#endif## sigsuspend and rt_sigsuspend need pt_regs as an additional# parameter and they have to skip the store of %r2 into the# user register %r2 because the return value was set in # sigsuspend and rt_sigsuspend already and must not be overwritten!#sys_sigsuspend_glue:            lgr     %r5,%r4               # move mask back        lgr     %r4,%r3               # move history1 parameter        lgr     %r3,%r2               # move history0 parameter        la      %r2,SP_PTREGS(%r15)   # load pt_regs as first parameter	la      %r14,6(%r14)          # skip store of return value        jg      sys_sigsuspend        # branch to sys_sigsuspend#ifdef CONFIG_S390_SUPPORTsys32_sigsuspend_glue:    	llgfr	%r4,%r4               # unsigned long			        lgr     %r5,%r4               # move mask back	lgfr	%r3,%r3               # int			        lgr     %r4,%r3               # move history1 parameter	lgfr	%r2,%r2               # int			        lgr     %r3,%r2               # move history0 parameter        la      %r2,SP_PTREGS(%r15)   # load pt_regs as first parameter	la      %r14,6(%r14)          # skip store of return value        jg      sys32_sigsuspend      # branch to sys32_sigsuspend#endifsys_rt_sigsuspend_glue:         lgr     %r4,%r3               # move sigsetsize parameter        lgr     %r3,%r2               # move unewset parameter        la      %r2,SP_PTREGS(%r15)   # load pt_regs as first parameter	la      %r14,6(%r14)          # skip store of return value        jg      sys_rt_sigsuspend     # branch to sys_rt_sigsuspend#ifdef CONFIG_S390_SUPPORTsys32_rt_sigsuspend_glue: 	llgfr	%r3,%r3               # size_t			        lgr     %r4,%r3               # move sigsetsize parameter	llgtr	%r2,%r2               # sigset_emu31_t *        lgr     %r3,%r2               # move unewset parameter        la      %r2,SP_PTREGS(%r15)   # load pt_regs as first parameter	la      %r14,6(%r14)          # skip store of return value        jg      sys32_rt_sigsuspend   # branch to sys32_rt_sigsuspend#endifsys_sigaltstack_glue:        la      %r4,SP_PTREGS(%r15)   # load pt_regs as parameter        jg      sys_sigaltstack       # branch to sys_sigreturn#ifdef CONFIG_S390_SUPPORTsys32_sigaltstack_glue:        la      %r4,SP_PTREGS(%r15)   # load pt_regs as parameter        jg      sys32_sigaltstack_wrapper # branch to sys_sigreturn#endif#ifdef CONFIG_S390_SUPPORT#define SYSCALL(esame,esa) esame,esa#else#define SYSCALL(esame,esa) esame,sys_ni_syscall#endif	.globl  sys_call_table	sys_call_table:        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 0 */        .long  SYSCALL(sys_exit,sys32_exit_wrapper)        .long  SYSCALL(sys_fork_glue,sys_fork_glue)        .long  SYSCALL(sys_read,sys32_read_wrapper)        .long  SYSCALL(sys_write,sys32_write_wrapper)        .long  SYSCALL(sys_open,sys32_open_wrapper)             /* 5 */        .long  SYSCALL(sys_close,sys32_close_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old waitpid syscall */        .long  SYSCALL(sys_creat,sys32_creat_wrapper)        .long  SYSCALL(sys_link,sys32_link_wrapper)        .long  SYSCALL(sys_unlink,sys32_unlink_wrapper)         /* 10 */        .long  SYSCALL(sys_execve_glue,sys32_execve_glue)        .long  SYSCALL(sys_chdir,sys32_chdir_wrapper)        .long  SYSCALL(sys_ni_syscall,sys32_time_wrapper) /* old time syscall */        .long  SYSCALL(sys_mknod,sys32_mknod_wrapper)        .long  SYSCALL(sys_chmod,sys32_chmod_wrapper)           /* 15 */        .long  SYSCALL(sys_ni_syscall,sys32_lchown16_wrapper)   /* old lchown16 syscall*/        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old break syscall */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old stat syscall */        .long  SYSCALL(sys_lseek,sys32_lseek_wrapper)        .long  SYSCALL(sys_getpid,sys_getpid) /* 20 */        .long  SYSCALL(sys_mount,sys32_mount_wrapper)        .long  SYSCALL(sys_oldumount,sys32_oldumount_wrapper)        .long  SYSCALL(sys_ni_syscall,sys32_setuid16_wrapper)   /* old setuid16 syscall*/        .long  SYSCALL(sys_ni_syscall,sys32_getuid16)   /* old getuid16 syscall*/        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* 25 old stime syscall */        .long  SYSCALL(sys_ptrace,sys32_ptrace_wrapper)        .long  SYSCALL(sys_alarm,sys32_alarm_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old fstat syscall */        .long  SYSCALL(sys_pause,sys32_pause)        .long  SYSCALL(sys_utime,sys32_utime_wrapper)           /* 30 */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old stty syscall */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old gtty syscall */        .long  SYSCALL(sys_access,sys32_access_wrapper)        .long  SYSCALL(sys_nice,sys32_nice_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old ftime syscall */        .long  SYSCALL(sys_sync,sys_sync)        .long  SYSCALL(sys_kill,sys32_kill_wrapper)        .long  SYSCALL(sys_rename,sys32_rename_wrapper)        .long  SYSCALL(sys_mkdir,sys32_mkdir_wrapper)        .long  SYSCALL(sys_rmdir,sys32_rmdir_wrapper)           /* 40 */        .long  SYSCALL(sys_dup,sys32_dup_wrapper)        .long  SYSCALL(sys_pipe,sys32_pipe_wrapper)        .long  SYSCALL(sys_times,sys32_times_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old prof syscall */        .long  SYSCALL(sys_brk,sys32_brk_wrapper)               /* 45 */        .long  SYSCALL(sys_ni_syscall,sys32_setgid16)   /* old setgid16 syscall*/        .long  SYSCALL(sys_ni_syscall,sys32_getgid16)   /* old getgid16 syscall*/        .long  SYSCALL(sys_signal,sys32_signal_wrapper)        .long  SYSCALL(sys_ni_syscall,sys32_geteuid16)  /* old geteuid16 syscall */        .long  SYSCALL(sys_ni_syscall,sys32_getegid16)  /* old getegid16 syscall */        .long  SYSCALL(sys_acct,sys32_acct_wrapper)        .long  SYSCALL(sys_umount,sys32_umount_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old lock syscall */        .long  SYSCALL(sys_ioctl,sys32_ioctl_wrapper)        .long  SYSCALL(sys_fcntl,sys32_fcntl_wrapper)   /* 55 */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* intel mpx syscall */        .long  SYSCALL(sys_setpgid,sys32_setpgid_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old ulimit syscall */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old uname syscall */        .long  SYSCALL(sys_umask,sys32_umask_wrapper)           /* 60 */        .long  SYSCALL(sys_chroot,sys32_chroot_wrapper)        .long  SYSCALL(sys_ustat,sys32_ustat_wrapper)        .long  SYSCALL(sys_dup2,sys32_dup2_wrapper)        .long  SYSCALL(sys_getppid,sys_getppid)        .long  SYSCALL(sys_getpgrp,sys_getpgrp)       /* 65 */        .long  SYSCALL(sys_setsid,sys_setsid)        .long  SYSCALL(sys_sigaction,sys32_sigaction_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old sgetmask syscall*/        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old ssetmask syscall*/        .long  SYSCALL(sys_ni_syscall,sys32_setreuid16_wrapper) /* old setreuid16 syscall */        .long  SYSCALL(sys_ni_syscall,sys32_setregid16_wrapper) /* old setregid16 syscall */        .long  SYSCALL(sys_sigsuspend_glue,sys32_sigsuspend_glue)        .long  SYSCALL(sys_sigpending,sys32_sigpending_wrapper)        .long  SYSCALL(sys_sethostname,sys32_sethostname_wrapper)        .long  SYSCALL(sys_setrlimit,sys32_setrlimit_wrapper)   /* 75 */        .long  SYSCALL(sys_getrlimit,sys32_old_getrlimit_wrapper)         .long  SYSCALL(sys_getrusage,sys32_getrusage_wrapper)        .long  SYSCALL(sys_gettimeofday,sys32_gettimeofday_wrapper)        .long  SYSCALL(sys_settimeofday,sys32_settimeofday_wrapper)        .long  SYSCALL(sys_ni_syscall,sys32_getgroups16_wrapper) /* old getgroups16 syscall */        .long  SYSCALL(sys_ni_syscall,sys32_setgroups16_wrapper) /* old setgroups16 syscall */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old select syscall */        .long  SYSCALL(sys_symlink,sys32_symlink_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old lstat syscall */        .long  SYSCALL(sys_readlink,sys32_readlink_wrapper)     /* 85 */        .long  SYSCALL(sys_uselib,sys32_uselib_wrapper)        .long  SYSCALL(sys_swapon,sys32_swapon_wrapper)        .long  SYSCALL(sys_reboot,sys32_reboot_wrapper)        .long  SYSCALL(sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */        .long  SYSCALL(old_mmap,old32_mmap_wrapper)       /* 90 */        .long  SYSCALL(sys_munmap,sys32_munmap_wrapper)        .long  SYSCALL(sys_truncate,sys32_truncate_wrapper)        .long  SYSCALL(sys_ftruncate,sys32_ftruncate_wrapper)        .long  SYSCALL(sys_fchmod,sys32_fchmod_wrapper)        .long  SYSCALL(sys_ni_syscall,sys32_fchown16_wrapper)   /* old fchown16 syscall*/        .long  SYSCALL(sys_getpriority,sys32_getpriority_wrapper)        .long  SYSCALL(sys_setpriority,sys32_setpriority_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old profil syscall */        .long  SYSCALL(sys_statfs,sys32_statfs_wrapper)        .long  SYSCALL(sys_fstatfs,sys32_fstatfs_wrapper)   /* 100 */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall)        .long  SYSCALL(sys_socketcall,sys32_socketcall_wrapper)        .long  SYSCALL(sys_syslog,sys32_syslog_wrapper)        .long  SYSCALL(sys_setitimer,sys32_setitimer_wrapper)        .long  SYSCALL(sys_getitimer,sys32_getitimer_wrapper)   /* 105 */        .long  SYSCALL(sys_newstat,sys32_newstat_wrapper)        .long  SYSCALL(sys_newlstat,sys32_newlstat_wrapper)        .long  SYSCALL(sys_newfstat,sys32_newfstat_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old uname syscall */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* iopl for i386 */        .long  SYSCALL(sys_vhangup,sys_vhangup)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* old "idle" system call */        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* vm86old for i386 */        .long  SYSCALL(sys_wait4,sys32_wait4_wrapper)        .long  SYSCALL(sys_swapoff,sys32_swapoff_wrapper)       /* 115 */        .long  SYSCALL(sys_sysinfo,sys32_sysinfo_wrapper)        .long  SYSCALL(sys_ipc,sys32_ipc_wrapper)        .long  SYSCALL(sys_fsync,sys32_fsync_wrapper)        .long  SYSCALL(sys_sigreturn_glue,sys32_sigreturn_glue)        .long  SYSCALL(sys_clone_glue,sys_clone_glue) /* 120 */        .long  SYSCALL(sys_setdomainname,sys32_setdomainname_wrapper)        .long  SYSCALL(sys_newuname,sys32_newuname_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* modify_ldt for i386 */        .long  SYSCALL(sys_adjtimex,sys32_adjtimex_wrapper)        .long  SYSCALL(sys_mprotect,sys32_mprotect_wrapper) /* 125 */        .long  SYSCALL(sys_sigprocmask,sys32_sigprocmask_wrapper)        .long  SYSCALL(sys_create_module,sys32_create_module_wrapper)        .long  SYSCALL(sys_init_module,sys32_init_module_wrapper)        .long  SYSCALL(sys_delete_module,sys32_delete_module_wrapper)        .long  SYSCALL(sys_get_kernel_syms,sys32_get_kernel_syms_wrapper) /* 130 */        .long  SYSCALL(sys_quotactl,sys32_quotactl_wrapper)        .long  SYSCALL(sys_getpgid,sys32_getpgid_wrapper)        .long  SYSCALL(sys_fchdir,sys32_fchdir_wrapper)        .long  SYSCALL(sys_bdflush,sys32_bdflush_wrapper)        .long  SYSCALL(sys_sysfs,sys32_sysfs_wrapper)           /* 135 */        .long  SYSCALL(sys_personality,sys32_personality_wrapper)        .long  SYSCALL(sys_ni_syscall,sys_ni_syscall) /* for afs_syscall */        .long  SYSCALL(sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */        .long  SYSCALL(sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */        .long  SYSCALL(sys_llseek,sys32_llseek_wrapper)         /* 140 */        .long  SYSCALL(sys_getdents,sys32_getdents_wrapper)        .long  SYSCALL(sys_select,sys32_select_wrapper)        .long  SYSCALL(sys_flock,sys32_flock_wrapper)        .long  SYSCALL(sys_msync,sys32_msync_wrapper)        .long  SYSCALL(sys_readv,sys32_readv_wrapper)           /* 145 */        .long  SYSCALL(sys_writev,sys32_writev_wrapper)        .long  SYSCALL(sys_getsid,sys32_getsid_wrapper)        .long  SYSCALL(sys_fdatasync,sys32_fdatasync_wrapper)        .long  SYSCALL(sys_sysctl,sys_ni_syscall)        .long  SYSCALL(sys_mlock,sys32_mlock_wrapper)           /* 150 */        .long  SYSCALL(sys_munlock,sys32_munlock_wrapper)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -