📄 misc.s
字号:
/* * Create a kernel thread * kernel_thread(fn, arg, flags) */_GLOBAL(kernel_thread) mr r6,r3 /* function */ ori r3,r5,CLONE_VM /* flags */ li r0,__NR_clone sc cmpi 0,r3,0 /* parent or child? */ bnelr /* return if parent */ li r0,0 /* clear out p->thread.regs */ std r0,THREAD+PT_REGS(r13) /* since we don't have user ctx */ li r0,RUN_FLAG /* Run light on */ std r0,THREAD+THREAD_FLAGS(r13) ld r2,8(r6) ld r6,0(r6) mtlr r6 /* fn addr in lr */ mr r3,r4 /* load arg and call fn */ blrl li r0,__NR_exit /* exit after child exits */ li r3,0 sc#ifdef CONFIG_BINFMT_ELF32/* Why isn't this a) automatic, b) written in 'C'? */ .balign 8_GLOBAL(sys_call_table32) .llong .sys_ni_syscall /* 0 - old "setup()" system call */ .llong .sys32_exit .llong .sys32_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 .sys32_mknod .llong .sys32_chmod /* 15 */ .llong .sys_lchown .llong .sys_ni_syscall /* old break syscall holder */ .llong .sys32_stat .llong .sys32_lseek .llong .sys_getpid /* 20 */ .llong .sys32_mount .llong .sys_oldumount .llong .sys_setuid .llong .sys_getuid .llong .ppc64_sys32_stime /* 25 */ .llong .sys32_ptrace .llong .sys_alarm .llong .sys32_fstat .llong .sys32_pause .llong .sys32_utime /* 30 */ .llong .sys_ni_syscall /* old stty syscall holder */ .llong .sys_ni_syscall /* old gtty syscall holder */ .llong .sys32_access .llong .sys32_nice .llong .sys_ni_syscall /* 35 */ /* old ftime syscall holder */ .llong .sys_sync .llong .sys32_kill .llong .sys_rename .llong .sys32_mkdir .llong .sys_rmdir /* 40 */ .llong .sys_dup .llong .sys_pipe .llong .sys32_times .llong .sys_ni_syscall /* old prof syscall holder */ .llong .sys_brk /* 45 */ .llong .sys_setgid .llong .sys_getgid .llong .sys_signal .llong .sys_geteuid .llong .sys_getegid /* 50 */ .llong .sys_acct .llong .sys32_umount /* recycled never used phys() */ .llong .sys_ni_syscall /* old lock syscall holder */ .llong .sys32_ioctl .llong .sys32_fcntl /* 55 */ .llong .sys_ni_syscall /* old mpx syscall holder */ .llong .sys32_setpgid .llong .sys_ni_syscall /* old ulimit syscall holder */ .llong .sys_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 .sys_sigsuspend .llong .sys32_sigpending .llong .sys32_sethostname .llong .sys32_setrlimit /* 75 */ .llong .sys32_old_getrlimit .llong .sys32_getrusage .llong .sys32_gettimeofday .llong .sys32_settimeofday .llong .sys32_getgroups /* 80 */ .llong .sys32_setgroups .llong .ppc32_select .llong .sys_symlink .llong .sys32_lstat .llong .sys32_readlink /* 85 */ .llong .sys_uselib .llong .sys32_swapon .llong .sys32_reboot .llong .old32_readdir .llong .sys32_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 holder */ .llong .sys32_statfs .llong .sys32_fstatfs /* 100 */ .llong .sys32_ioperm .llong .sys32_socketcall .llong .sys32_syslog .llong .sys32_setitimer .llong .sys32_getitimer /* 105 */ .llong .sys32_newstat .llong .sys32_newlstat .llong .sys32_newfstat .llong .sys_uname .llong .sys32_iopl /* 110 */ .llong .sys_vhangup .llong .sys_ni_syscall /* old 'idle' syscall */ .llong .sys32_vm86 .llong .sys32_wait4 .llong .sys_swapoff /* 115 */ .llong .sys32_sysinfo .llong .sys32_ipc .llong .sys_fsync .llong .ppc32_sigreturn .llong .sys32_clone /* 120 */ .llong .sys32_setdomainname .llong .ppc64_newuname .llong .sys32_modify_ldt .llong .sys32_adjtimex .llong .sys_mprotect /* 125 */ .llong .sys32_sigprocmask .llong .sys32_create_module .llong .sys32_init_module .llong .sys32_delete_module .llong .sys32_get_kernel_syms /* 130 */ .llong .sys32_quotactl .llong .sys32_getpgid .llong .sys_fchdir .llong .sys32_bdflush .llong .sys32_sysfs /* 135 */ .llong .sys32_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 .sys32_msync .llong .sys32_readv /* 145 */ .llong .sys32_writev .llong .sys32_getsid .llong .sys_fdatasync .llong .sys32_sysctl .llong .sys_mlock /* 150 */ .llong .sys_munlock .llong .sys32_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 .sys32_nanosleep .llong .sys32_mremap .llong .sys_setresuid .llong .sys_getresuid /* 165 */ .llong .sys32_query_module .llong .sys_poll .llong .sys32_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 .sys32_rt_sigsuspend .llong .sys32_pread .llong .sys32_pwrite /* 180 */ .llong .sys_chown .llong .sys_getcwd .llong .sys_capget .llong .sys_capset .llong .sys32_sigaltstack /* 185 */ .llong .sys32_sendfile .llong .sys_ni_syscall /* streams1 */ .llong .sys_ni_syscall /* streams2 */ .llong .sys32_vfork .llong .sys32_getrlimit /* 190 */ .llong .sys_ni_syscall /* 191 */ /* Unused */ .llong .sys_ni_syscall /* 192 - reserved - mmap2 */ .llong .sys32_truncate64 /* 193 - truncate64 */ .llong .sys32_ftruncate64 /* 194 - ftruncate64 */ .llong .sys_stat64 /* 195 - stat64 */ .llong .sys_lstat64 /* 196 - lstat64 */ .llong .sys_fstat64 /* 197 - fstat64 */ .llong .sys32_pciconfig_read /* 198 */ .llong .sys32_pciconfig_write /* 199 */ .llong .sys_pciconfig_iobase /* 200 */ .llong .sys_ni_syscall /* 201 - reserved - MacOnLinux - new */ .llong .sys_getdents64 /* 202 */ .llong .sys_pivot_root /* 203 */ .llong .sys32_fcntl64 /* 204 */ .llong .sys_madvise /* 205 */ .llong .sys_mincore /* 206 */ .llong .sys_gettid /* 207 */#if 0 /* Reserved syscalls */ .llong .sys_tkill /* 208 */ .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#endif .llong .sys_perfmonctl /* Put this here for now ... */ .rept NR_syscalls-222 .llong .sys_ni_syscall .endr#endif .balign 8_GLOBAL(sys_call_table) .llong .sys_ni_syscall /* 0 - old "setup()" system call */ .llong .sys_exit .llong .sys_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 holder */ .llong .sys_stat .llong .sys_lseek .llong .sys_getpid /* 20 */ .llong .sys_mount .llong .sys_oldumount .llong .sys_setuid .llong .sys_getuid .llong .ppc64_sys_stime /* 25 */ .llong .sys_ptrace .llong .sys_alarm .llong .sys_fstat .llong .sys_pause .llong .sys_utime /* 30 */ .llong .sys_ni_syscall /* old stty syscall holder */ .llong .sys_ni_syscall /* old gtty syscall holder */ .llong .sys_access .llong .sys_nice .llong .sys_ni_syscall /* 35 */ /* old ftime syscall holder */ .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 holder */ .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 /* recycled never used phys() */ .llong .sys_ni_syscall /* old lock syscall holder */ .llong .sys_ioctl .llong .sys_fcntl /* 55 */ .llong .sys_ni_syscall /* old mpx syscall holder */ .llong .sys_setpgid .llong .sys_ni_syscall /* old ulimit syscall holder */ .llong .sys_olduname .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_sigaction .llong .sys_sgetmask .llong .sys_ssetmask .llong .sys_setreuid /* 70 */ .llong .sys_setregid .llong .sys_sigsuspend .llong .sys_sigpending .llong .sys_sethostname .llong .sys_setrlimit /* 75 */ .llong .sys_old_getrlimit .llong .sys_getrusage .llong .sys_gettimeofday .llong .sys_settimeofday .llong .sys_getgroups /* 80 */ .llong .sys_setgroups .llong .sys_select .llong .sys_symlink .llong .sys_lstat .llong .sys_readlink /* 85 */ .llong .sys_uselib .llong .sys_swapon .llong .sys_reboot .llong .old_readdir .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_ioperm .llong .sys_socketcall .llong .sys_syslog .llong .sys_setitimer .llong .sys_getitimer /* 105 */ .llong .sys_newstat .llong .sys_newlstat .llong .sys_newfstat .llong .sys_uname .llong .sys_iopl /* 110 */ .llong .sys_vhangup .llong .sys_ni_syscall /* old 'idle' syscall */ .llong .sys_vm86 .llong .sys_wait4 .llong .sys_swapoff /* 115 */ .llong .sys_sysinfo .llong .sys_ipc .llong .sys_fsync .llong .ppc64_sigreturn .llong .sys_clone /* 120 */ .llong .sys_setdomainname .llong .ppc64_newuname .llong .sys_modify_ldt .llong .sys_adjtimex .llong .sys_mprotect /* 125 */ .llong .sys_sigprocmask .llong .sys_create_module .llong .sys_init_module .llong .sys_delete_module .llong .sys_get_kernel_syms /* 130 */ .llong .sys_quotactl .llong .sys_getpgid .llong .sys_fchdir .llong .sys_bdflush .llong .sys_sysfs /* 135 */ .llong .sys_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_query_module .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 .sys_rt_sigsuspend .llong .sys_pread .llong .sys_pwrite /* 180 */ .llong .sys_chown .llong .sys_getcwd .llong .sys_capget .llong .sys_capset .llong .sys_sigaltstack /* 185 */ .llong .sys_sendfile .llong .sys_ni_syscall /* streams1 */ .llong .sys_ni_syscall /* streams2 */ .llong .sys_vfork .llong .sys_getrlimit /* 190 */ .llong .sys_ni_syscall /* 191 */ /* Unused */ .llong .sys_ni_syscall /* 192 - reserved - mmap2 */ .llong .sys_ni_syscall /* 193 - reserved - truncate64 */ .llong .sys_ni_syscall /* 194 - reserved - ftruncate64 */ .llong .sys_ni_syscall /* 195 - reserved - stat64 */ .llong .sys_ni_syscall /* 196 - reserved - lstat64 */ .llong .sys_ni_syscall /* 197 - reserved - fstat64 */ .llong .sys_pciconfig_read /* 198 */ .llong .sys_pciconfig_write /* 199 */ .llong .sys_pciconfig_iobase /* 200 */ .llong .sys_ni_syscall /* 201 - reserved - MacOnLinux - new */ .llong .sys_getdents64 /* 202 */ .llong .sys_pivot_root /* 203 */ .llong .sys_ni_syscall /* 204 */ .llong .sys_madvise /* 205 */ .llong .sys_mincore /* 206 */ .llong .sys_gettid /* 207 */#if 0 /* Reserved syscalls */ .llong .sys_tkill /* 208 */ .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#endif .llong .sys_perfmonctl /* Put this here for now ... */ .rept NR_syscalls-222 .llong .sys_ni_syscall .endr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -