misc.s

来自「优龙2410linux2.6.8内核源代码」· S 代码 · 共 1,151 行 · 第 1/2 页

S
1,151
字号
	std	r30,-16(r1)	stdu	r1,-STACK_FRAME_OVERHEAD(r1)	mr	r29,r3	mr	r30,r4	ori	r3,r5,CLONE_VM	/* flags */	oris	r3,r3,(CLONE_UNTRACED>>16)	li	r4,0		/* new sp (unused) */	li	r0,__NR_clone	sc	cmpi	0,r3,0		/* parent or child? */	bne	1f		/* return if parent */	li	r0,0	stdu	r0,-STACK_FRAME_OVERHEAD(r1)	ld	r2,8(r29)	ld	r29,0(r29)	mtlr	r29              /* fn addr in lr */	mr	r3,r30	        /* load arg and call fn */	blrl	li	r0,__NR_exit	/* exit after child exits */        li	r3,0	sc1:	addi	r1,r1,STACK_FRAME_OVERHEAD		ld	r29,-24(r1)	ld	r30,-16(r1)	blr#ifdef CONFIG_PPC_ISERIES	/* hack hack hack */#define ppc_rtas	sys_ni_syscall#endif/* Why isn't this a) automatic, b) written in 'C'? */		.balign 8_GLOBAL(sys_call_table32)	.llong .sys_restart_syscall	/* 0 */	.llong .sys_exit	.llong .ppc_fork	.llong .sys_read	.llong .sys_write	.llong .sys32_open		/* 5 */	.llong .sys_close	.llong .sys32_waitpid	.llong .sys32_creat	.llong .sys_link	.llong .sys_unlink      	/* 10 */	.llong .sys32_execve	.llong .sys_chdir	.llong .sys32_time	.llong .sys_mknod	.llong .sys_chmod		/* 15 */	.llong .sys_lchown	.llong .sys_ni_syscall		/* old break syscall */	.llong .sys_ni_syscall		/* old stat syscall */	.llong .ppc32_lseek	.llong .sys_getpid              /* 20 */	.llong .compat_sys_mount	.llong .sys_oldumount	.llong .sys_setuid	.llong .sys_getuid	.llong .ppc64_sys32_stime       /* 25 */	.llong .sys32_ptrace	.llong .sys_alarm	.llong .sys_ni_syscall		/* old fstat syscall */	.llong .sys32_pause	.llong .compat_sys_utime		/* 30 */	.llong .sys_ni_syscall		/* old stty syscall */	.llong .sys_ni_syscall		/* old gtty syscall */	.llong .sys32_access	.llong .sys32_nice	.llong .sys_ni_syscall		/* 35 - old ftime syscall */	.llong .sys_sync	.llong .sys32_kill	.llong .sys_rename	.llong .sys32_mkdir	.llong .sys_rmdir		/* 40 */	.llong .sys_dup	.llong .sys_pipe	.llong .compat_sys_times	.llong .sys_ni_syscall		/* old prof syscall */	.llong .sys_brk			/* 45 */	.llong .sys_setgid	.llong .sys_getgid	.llong .sys_signal	.llong .sys_geteuid	.llong .sys_getegid		/* 50 */	.llong .sys_acct	.llong .sys_umount	.llong .sys_ni_syscall		/* old lock syscall */	.llong .compat_sys_ioctl	.llong .compat_sys_fcntl		/* 55 */	.llong .sys_ni_syscall		/* old mpx syscall */	.llong .sys32_setpgid	.llong .sys_ni_syscall		/* old ulimit syscall */	.llong .sys32_olduname	.llong .sys32_umask		/* 60 */	.llong .sys_chroot	.llong .sys_ustat	.llong .sys_dup2	.llong .sys_getppid	.llong .sys_getpgrp	        /* 65 */	.llong .sys_setsid	.llong .sys32_sigaction	.llong .sys_sgetmask	.llong .sys32_ssetmask	.llong .sys_setreuid	        /* 70 */	.llong .sys_setregid	.llong .ppc32_sigsuspend	.llong .compat_sys_sigpending	.llong .sys32_sethostname	.llong .compat_sys_setrlimit	        /* 75 */	.llong .compat_sys_old_getrlimit	.llong .compat_sys_getrusage	.llong .sys32_gettimeofday	.llong .sys32_settimeofday	.llong .sys32_getgroups	        /* 80 */	.llong .sys32_setgroups	.llong .sys_ni_syscall		/* old select syscall */	.llong .sys_symlink	.llong .sys_ni_syscall		/* old lstat syscall */	.llong .sys32_readlink	        /* 85 */	.llong .sys_uselib	.llong .sys_swapon	.llong .sys_reboot	.llong .old32_readdir	.llong .sys_mmap		/* 90 */	.llong .sys_munmap	.llong .sys_truncate	.llong .sys_ftruncate	.llong .sys_fchmod	.llong .sys_fchown              /* 95 */	.llong .sys32_getpriority	.llong .sys32_setpriority	.llong .sys_ni_syscall		/* old profil syscall */	.llong .compat_sys_statfs	.llong .compat_sys_fstatfs		/* 100 */	.llong .sys_ni_syscall		/* old ioperm syscall */	.llong .compat_sys_socketcall	.llong .sys32_syslog	.llong .compat_sys_setitimer	.llong .compat_sys_getitimer		/* 105 */	.llong .compat_sys_newstat	.llong .compat_sys_newlstat	.llong .compat_sys_newfstat	.llong .sys_uname	.llong .sys_ni_syscall		/* 110 old iopl syscall */	.llong .sys_vhangup	.llong .sys_ni_syscall		/* old idle syscall */	.llong .sys_ni_syscall		/* old vm86 syscall */	.llong .compat_sys_wait4	.llong .sys_swapoff		/* 115 */	.llong .sys32_sysinfo	.llong .sys32_ipc	.llong .sys_fsync	.llong .ppc32_sigreturn	.llong .ppc_clone		/* 120 */	.llong .sys32_setdomainname	.llong .ppc64_newuname	.llong .sys_ni_syscall		/* old modify_ldt syscall */	.llong .sys32_adjtimex	.llong .sys_mprotect		/* 125 */	.llong .compat_sys_sigprocmask	.llong .sys_ni_syscall		/* old create_module syscall */	.llong .sys_init_module	.llong .sys_delete_module	.llong .sys_ni_syscall		/* 130 old get_kernel_syms syscall */	.llong .sys_quotactl	.llong .sys32_getpgid	.llong .sys_fchdir	.llong .sys_bdflush	.llong .sys32_sysfs		/* 135 */	.llong .ppc64_personality	.llong .sys_ni_syscall	        /* for afs_syscall */	.llong .sys_setfsuid	.llong .sys_setfsgid	.llong .sys_llseek	        /* 140 */        .llong .sys32_getdents	.llong .ppc32_select	.llong .sys_flock	.llong .sys_msync	.llong .compat_sys_readv	/* 145 */	.llong .compat_sys_writev	.llong .sys32_getsid	.llong .sys_fdatasync	.llong .sys32_sysctl	.llong .sys_mlock		/* 150 */	.llong .sys_munlock	.llong .sys_mlockall	.llong .sys_munlockall	.llong .sys32_sched_setparam	.llong .sys32_sched_getparam	/* 155 */	.llong .sys32_sched_setscheduler	.llong .sys32_sched_getscheduler	.llong .sys_sched_yield	.llong .sys32_sched_get_priority_max	.llong .sys32_sched_get_priority_min  /* 160 */	.llong .sys32_sched_rr_get_interval	.llong .compat_sys_nanosleep	.llong .sys_mremap	.llong .sys_setresuid	.llong .sys_getresuid	        /* 165 */	.llong .sys_ni_syscall		/* old query_module syscall */	.llong .sys_poll	.llong .compat_sys_nfsservctl	.llong .sys_setresgid	.llong .sys_getresgid	        /* 170 */	.llong .sys32_prctl	.llong .ppc32_rt_sigreturn	.llong .sys32_rt_sigaction	.llong .sys32_rt_sigprocmask	.llong .sys32_rt_sigpending     /* 175 */	.llong .sys32_rt_sigtimedwait	.llong .sys32_rt_sigqueueinfo	.llong .ppc32_rt_sigsuspend	.llong .sys32_pread64	.llong .sys32_pwrite64	        /* 180 */	.llong .sys_chown	.llong .sys_getcwd	.llong .sys_capget	.llong .sys_capset	.llong .sys32_sigaltstack	/* 185 */	.llong .sys32_sendfile	.llong .sys_ni_syscall		/* reserved for streams1 */	.llong .sys_ni_syscall		/* reserved for streams2 */	.llong .ppc_vfork	.llong .compat_sys_getrlimit	        /* 190 */	.llong .sys32_readahead	.llong .sys32_mmap2	.llong .sys32_truncate64	.llong .sys32_ftruncate64	.llong .sys_stat64      	/* 195 */	.llong .sys_lstat64	.llong .sys_fstat64	.llong .sys32_pciconfig_read	.llong .sys32_pciconfig_write	.llong .sys32_pciconfig_iobase	/* 200 - pciconfig_iobase */	.llong .sys_ni_syscall		/* reserved for MacOnLinux */	.llong .sys_getdents64	.llong .sys_pivot_root	.llong .compat_sys_fcntl64	.llong .sys_madvise		/* 205 */	.llong .sys_mincore	.llong .sys_gettid	.llong .sys_tkill	.llong .sys_setxattr	.llong .sys_lsetxattr		/* 210 */	.llong .sys_fsetxattr	.llong .sys_getxattr	.llong .sys_lgetxattr	.llong .sys_fgetxattr	.llong .sys_listxattr		/* 215 */	.llong .sys_llistxattr	.llong .sys_flistxattr	.llong .sys_removexattr	.llong .sys_lremovexattr	.llong .sys_fremovexattr	/* 220 */	.llong .compat_sys_futex	.llong .compat_sys_sched_setaffinity	.llong .compat_sys_sched_getaffinity	.llong .sys_ni_syscall	.llong .sys_ni_syscall		/* 225 - reserved for tux */	.llong .sys32_sendfile64	.llong .compat_sys_io_setup	.llong .sys_io_destroy	.llong .compat_sys_io_getevents	.llong .compat_sys_io_submit	.llong .sys_io_cancel	.llong .sys_set_tid_address	.llong .ppc32_fadvise64	.llong .sys_exit_group	.llong .ppc32_lookup_dcookie	/* 235 */	.llong .sys_epoll_create	.llong .sys_epoll_ctl	.llong .sys_epoll_wait	.llong .sys_remap_file_pages	.llong .ppc32_timer_create	/* 240 */	.llong .compat_timer_settime	.llong .compat_timer_gettime	.llong .sys_timer_getoverrun	.llong .sys_timer_delete	.llong .compat_clock_settime	/* 245 */	.llong .compat_clock_gettime	.llong .compat_clock_getres	.llong .compat_clock_nanosleep	.llong .ppc32_swapcontext	.llong .sys32_tgkill		/* 250 */	.llong .sys32_utimes	.llong .compat_statfs64	.llong .compat_fstatfs64	.llong .ppc32_fadvise64_64	/* 32bit only fadvise64_64 */	.llong .ppc_rtas		/* 255 */	.llong .sys_ni_syscall		/* 256 reserved for sys_debug_setcontext */	.llong .sys_ni_syscall		/* 257 reserved for vserver */	.llong .sys_ni_syscall		/* 258 reserved for new sys_remap_file_pages */	.llong .sys_ni_syscall		/* 259 reserved for new sys_mbind */	.llong .sys_ni_syscall		/* 260 reserved for new sys_get_mempolicy */	.llong .sys_ni_syscall		/* 261 reserved for new sys_set_mempolicy */	.llong .compat_sys_mq_open	.llong .sys_mq_unlink	.llong .compat_sys_mq_timedsend	.llong .compat_sys_mq_timedreceive /* 265 */	.llong .compat_sys_mq_notify	.llong .compat_sys_mq_getsetattr	.llong .sys_ni_syscall		/* 268 reserved for sys_kexec_load */	.balign 8_GLOBAL(sys_call_table)	.llong .sys_restart_syscall	/* 0 */	.llong .sys_exit	.llong .ppc_fork	.llong .sys_read	.llong .sys_write	.llong .sys_open		/* 5 */	.llong .sys_close	.llong .sys_waitpid	.llong .sys_creat	.llong .sys_link	.llong .sys_unlink		/* 10 */	.llong .sys_execve	.llong .sys_chdir	.llong .sys64_time	.llong .sys_mknod	.llong .sys_chmod		/* 15 */	.llong .sys_lchown	.llong .sys_ni_syscall		/* old break syscall */	.llong .sys_ni_syscall		/* old stat syscall */	.llong .sys_lseek	.llong .sys_getpid		/* 20 */	.llong .sys_mount	.llong .sys_ni_syscall		/* old umount syscall */	.llong .sys_setuid	.llong .sys_getuid	.llong .ppc64_sys_stime		/* 25 */	.llong .sys_ptrace	.llong .sys_alarm	.llong .sys_ni_syscall		/* old fstat syscall */	.llong .sys_pause	.llong .sys_utime		/* 30 */	.llong .sys_ni_syscall		/* old stty syscall */	.llong .sys_ni_syscall		/* old gtty syscall */	.llong .sys_access	.llong .sys_nice	.llong .sys_ni_syscall		/* 35 - old ftime syscall */	.llong .sys_sync	.llong .sys_kill	.llong .sys_rename	.llong .sys_mkdir	.llong .sys_rmdir		/* 40 */	.llong .sys_dup	.llong .sys_pipe	.llong .sys_times	.llong .sys_ni_syscall		/* old prof syscall */	.llong .sys_brk			/* 45 */	.llong .sys_setgid	.llong .sys_getgid	.llong .sys_signal	.llong .sys_geteuid	.llong .sys_getegid		/* 50 */	.llong .sys_acct	.llong .sys_umount	.llong .sys_ni_syscall		/* old lock syscall */	.llong .sys_ioctl	.llong .sys_fcntl		/* 55 */	.llong .sys_ni_syscall		/* old mpx syscall */	.llong .sys_setpgid	.llong .sys_ni_syscall		/* old ulimit syscall */	.llong .sys_ni_syscall		/* old uname syscall */	.llong .sys_umask		/* 60 */	.llong .sys_chroot	.llong .sys_ustat	.llong .sys_dup2	.llong .sys_getppid	.llong .sys_getpgrp		/* 65 */	.llong .sys_setsid	.llong .sys_ni_syscall	.llong .sys_sgetmask	.llong .sys_ssetmask	.llong .sys_setreuid		/* 70 */	.llong .sys_setregid	.llong .sys_ni_syscall	.llong .sys_ni_syscall	.llong .sys_sethostname	.llong .sys_setrlimit		/* 75 */	.llong .sys_ni_syscall		/* old getrlimit syscall */	.llong .sys_getrusage	.llong .sys_gettimeofday	.llong .sys_settimeofday	.llong .sys_getgroups		/* 80 */	.llong .sys_setgroups	.llong .sys_ni_syscall		/* old select syscall */	.llong .sys_symlink	.llong .sys_ni_syscall		/* old lstat syscall */	.llong .sys_readlink		/* 85 */	.llong .sys_uselib	.llong .sys_swapon	.llong .sys_reboot	.llong .sys_ni_syscall		/* old readdir syscall */	.llong .sys_mmap		/* 90 */	.llong .sys_munmap	.llong .sys_truncate	.llong .sys_ftruncate	.llong .sys_fchmod	.llong .sys_fchown		/* 95 */	.llong .sys_getpriority	.llong .sys_setpriority	.llong .sys_ni_syscall		/* old profil syscall holder */	.llong .sys_statfs	.llong .sys_fstatfs		/* 100 */	.llong .sys_ni_syscall		/* old ioperm syscall */	.llong .sys_socketcall	.llong .sys_syslog	.llong .sys_setitimer	.llong .sys_getitimer		/* 105 */	.llong .sys_newstat	.llong .sys_newlstat	.llong .sys_newfstat	.llong .sys_ni_syscall		/* old uname syscall */	.llong .sys_ni_syscall		/* 110 old iopl syscall */	.llong .sys_vhangup	.llong .sys_ni_syscall		/* old idle syscall */	.llong .sys_ni_syscall		/* old vm86 syscall */	.llong .sys_wait4	.llong .sys_swapoff		/* 115 */	.llong .sys_sysinfo	.llong .sys_ipc	.llong .sys_fsync	.llong .sys_ni_syscall	.llong .ppc_clone		/* 120 */	.llong .sys_setdomainname	.llong .ppc64_newuname	.llong .sys_ni_syscall		/* old modify_ldt syscall */	.llong .sys_adjtimex	.llong .sys_mprotect		/* 125 */	.llong .sys_ni_syscall	.llong .sys_ni_syscall		/* old create_module syscall */	.llong .sys_init_module	.llong .sys_delete_module	.llong .sys_ni_syscall		/* 130 old get_kernel_syms syscall */	.llong .sys_quotactl	.llong .sys_getpgid	.llong .sys_fchdir	.llong .sys_bdflush	.llong .sys_sysfs		/* 135 */	.llong .ppc64_personality	.llong .sys_ni_syscall	        /* for afs_syscall */	.llong .sys_setfsuid	.llong .sys_setfsgid	.llong .sys_llseek	        /* 140 */        .llong .sys_getdents	.llong .sys_select	.llong .sys_flock	.llong .sys_msync	.llong .sys_readv		/* 145 */	.llong .sys_writev	.llong .sys_getsid	.llong .sys_fdatasync	.llong .sys_sysctl	.llong .sys_mlock		/* 150 */	.llong .sys_munlock	.llong .sys_mlockall	.llong .sys_munlockall	.llong .sys_sched_setparam	.llong .sys_sched_getparam	/* 155 */	.llong .sys_sched_setscheduler	.llong .sys_sched_getscheduler	.llong .sys_sched_yield	.llong .sys_sched_get_priority_max	.llong .sys_sched_get_priority_min  /* 160 */	.llong .sys_sched_rr_get_interval	.llong .sys_nanosleep	.llong .sys_mremap	.llong .sys_setresuid	.llong .sys_getresuid	        /* 165 */	.llong .sys_ni_syscall		/* old query_module syscall */	.llong .sys_poll	.llong .sys_nfsservctl	.llong .sys_setresgid	.llong .sys_getresgid	        /* 170 */	.llong .sys_prctl	.llong .ppc64_rt_sigreturn	.llong .sys_rt_sigaction	.llong .sys_rt_sigprocmask		.llong .sys_rt_sigpending	/* 175 */	.llong .sys_rt_sigtimedwait	.llong .sys_rt_sigqueueinfo	.llong .ppc64_rt_sigsuspend	.llong .sys_pread64	.llong .sys_pwrite64	        /* 180 */	.llong .sys_chown	.llong .sys_getcwd	.llong .sys_capget	.llong .sys_capset	.llong .sys_sigaltstack	        /* 185 */	.llong .sys_sendfile64	.llong .sys_ni_syscall		/* reserved for streams1 */	.llong .sys_ni_syscall		/* reserved for streams2 */	.llong .ppc_vfork	.llong .sys_getrlimit	        /* 190 */	.llong .sys_readahead	.llong .sys_ni_syscall		/* 32bit only mmap2 */	.llong .sys_ni_syscall		/* 32bit only truncate64 */	.llong .sys_ni_syscall		/* 32bit only ftruncate64 */	.llong .sys_ni_syscall		/* 195 - 32bit only stat64 */	.llong .sys_ni_syscall		/* 32bit only lstat64 */	.llong .sys_ni_syscall		/* 32bit only fstat64 */	.llong .sys_ni_syscall		/* 32bit only pciconfig_read */	.llong .sys_ni_syscall		/* 32bit only pciconfig_write */	.llong .sys_ni_syscall		/* 32bit only pciconfig_iobase */	.llong .sys_ni_syscall		/* reserved for MacOnLinux */	.llong .sys_getdents64	.llong .sys_pivot_root	.llong .sys_ni_syscall		/* 32bit only fcntl64 */	.llong .sys_madvise		/* 205 */	.llong .sys_mincore	.llong .sys_gettid	.llong .sys_tkill	.llong .sys_setxattr	.llong .sys_lsetxattr		/* 210 */	.llong .sys_fsetxattr	.llong .sys_getxattr	.llong .sys_lgetxattr	.llong .sys_fgetxattr	.llong .sys_listxattr		/* 215 */	.llong .sys_llistxattr	.llong .sys_flistxattr	.llong .sys_removexattr	.llong .sys_lremovexattr	.llong .sys_fremovexattr	/* 220 */	.llong .sys_futex	.llong .sys_sched_setaffinity	.llong .sys_sched_getaffinity	.llong .sys_ni_syscall	.llong .sys_ni_syscall		/* 225 - reserved for tux */	.llong .sys_ni_syscall		/* 32bit only sendfile64 */	.llong .sys_io_setup	.llong .sys_io_destroy	.llong .sys_io_getevents	.llong .sys_io_submit		/* 230 */	.llong .sys_io_cancel	.llong .sys_set_tid_address	.llong .sys_fadvise64	.llong .sys_exit_group	.llong .sys_lookup_dcookie	/* 235 */	.llong .sys_epoll_create	.llong .sys_epoll_ctl	.llong .sys_epoll_wait	.llong .sys_remap_file_pages	.llong .sys_timer_create	/* 240 */	.llong .sys_timer_settime	.llong .sys_timer_gettime	.llong .sys_timer_getoverrun	.llong .sys_timer_delete	.llong .sys_clock_settime	/* 245 */	.llong .sys_clock_gettime	.llong .sys_clock_getres	.llong .sys_clock_nanosleep	.llong .ppc64_swapcontext	.llong .sys_tgkill		/* 250 */	.llong .sys_utimes	.llong .sys_statfs64	.llong .sys_fstatfs64	.llong .sys_ni_syscall		/* 32bit only fadvise64_64 */	.llong .ppc_rtas		/* 255 */	.llong .sys_ni_syscall		/* 256 reserved for sys_debug_setcontext */	.llong .sys_ni_syscall		/* 257 reserved for vserver */	.llong .sys_ni_syscall		/* 258 reserved for new sys_remap_file_pages */	.llong .sys_ni_syscall		/* 259 reserved for new sys_mbind */	.llong .sys_ni_syscall		/* 260 reserved for new sys_get_mempolicy */	.llong .sys_ni_syscall		/* 261 reserved for new sys_set_mempolicy */	.llong .sys_mq_open	.llong .sys_mq_unlink	.llong .sys_mq_timedsend	.llong .sys_mq_timedreceive	/* 265 */	.llong .sys_mq_notify	.llong .sys_mq_getsetattr	.llong .sys_ni_syscall		/* 268 reserved for sys_kexec_load */

⌨️ 快捷键说明

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