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

📄 entry.s

📁 Linux内核源代码 为压缩文件 是<<Linux内核>>一书中的源代码
💻 S
📖 第 1 页 / 共 3 页
字号:
	mov.l	$r11, @-$r15	mov.l	$r10, @-$r15	mov.l	$r9, @-$r15	mov.l	$r8, @-$r15	!	stc	$sr, $r8	! Back to normal register bank, and	or	$k1, $r8	! Block all interrupts, may release FPU	mov.l	5f, $k1	and	$k1, $r8	! ...	ldc	$r8, $sr	! ...changed here.	!	mov.l	$r7, @-$r15	mov.l	$r6, @-$r15	mov.l	$r5, @-$r15	mov.l	$r4, @-$r15	mov.l	$r3, @-$r15	mov.l	$r2, @-$r15	mov.l	$r1, @-$r15	mov.l	$r0, @-$r15	! Then, dispatch to the handler, according to the exception code.	stc	$k_ex_code, $r8	shlr2	$r8	shlr	$r8	mov.l	1f, $r9	add	$r8, $r9	mov.l	@$r9, $r9	jmp	@$r9	 nop	.align	21:	.long	SYMBOL_NAME(exception_handling_table)2:	.long	0x00008000	! FD=13:	.long	0x000000f0	! FD=0, IMASK=154:	.long	0x000080f0	! FD=1, IMASK=155:	.long	0xcfffffff	! RB=0, BL=06:	.long	0x00080000	! SZ=0, PR=1none:	rts	 nop.dataENTRY(exception_handling_table)	.long	error	.long	error	.long	tlb_miss_load	.long	tlb_miss_store	.long	initial_page_write	.long	tlb_protection_violation_load	.long	tlb_protection_violation_store	.long	error	! address_error_load        (filled by trap_init)	.long	error	! address_error_store       (filled by trap_init)#if defined(__SH4__)	.long	SYMBOL_NAME(do_fpu_error)#else	.long	error	! fpu_exception#endif	.long	error	.long	system_call			! Unconditional Trap	.long	error	! reserved_instruction      (filled by trap_init)	.long	error	! illegal_slot_instruction  (filled by trap_init)ENTRY(nmi_slot)	.long	none				! Not implemented yetENTRY(user_break_point_trap)	.long	break_point_trapENTRY(interrupt_table)	! external hardware	.long	SYMBOL_NAME(do_IRQ)	! 0000	.long	SYMBOL_NAME(do_IRQ)	! 0001	.long	SYMBOL_NAME(do_IRQ)	! 0010	.long	SYMBOL_NAME(do_IRQ)	! 0011	.long	SYMBOL_NAME(do_IRQ)	! 0100	.long	SYMBOL_NAME(do_IRQ)	! 0101	.long	SYMBOL_NAME(do_IRQ)	! 0110	.long	SYMBOL_NAME(do_IRQ)	! 0111	.long	SYMBOL_NAME(do_IRQ)	! 1000	.long	SYMBOL_NAME(do_IRQ)	! 1001	.long	SYMBOL_NAME(do_IRQ)	! 1010	.long	SYMBOL_NAME(do_IRQ)	! 1011	.long	SYMBOL_NAME(do_IRQ)	! 1100	.long	SYMBOL_NAME(do_IRQ)	! 1101	.long	SYMBOL_NAME(do_IRQ)	! 1110	.long	error	! Internal hardware	.long	SYMBOL_NAME(do_IRQ)	! TMU0 tuni0	.long	SYMBOL_NAME(do_IRQ)	! TMU1 tuni1	.long	SYMBOL_NAME(do_IRQ)	! TMU2 tuni2	.long	SYMBOL_NAME(do_IRQ)	!      ticpi2	.long	SYMBOL_NAME(do_IRQ)	! RTC  ati	.long	SYMBOL_NAME(do_IRQ)	!      pri	.long	SYMBOL_NAME(do_IRQ)	!      cui	.long	SYMBOL_NAME(do_IRQ)	! SCI  eri	.long	SYMBOL_NAME(do_IRQ)	!      rxi	.long	SYMBOL_NAME(do_IRQ)	!      txi	.long	SYMBOL_NAME(do_IRQ)	!      tei	.long	SYMBOL_NAME(do_IRQ)	! WDT  iti	.long	SYMBOL_NAME(do_IRQ)	! REF  rcmi	.long	SYMBOL_NAME(do_IRQ)	!      rovi	.long	SYMBOL_NAME(do_IRQ)	.long	SYMBOL_NAME(do_IRQ)#if  defined(CONFIG_CPU_SUBTYPE_SH7707) || defined(CONFIG_CPU_SUBTYPE_SH7709)	.long	SYMBOL_NAME(do_IRQ)	! 32 IRQ  irq0	.long	SYMBOL_NAME(do_IRQ)	! 33      irq1	.long	SYMBOL_NAME(do_IRQ)	! 34      irq2	.long	SYMBOL_NAME(do_IRQ)	! 35      irq3	.long	SYMBOL_NAME(do_IRQ)	! 36      irq4	.long	SYMBOL_NAME(do_IRQ)	! 37      irq5	.long	SYMBOL_NAME(do_IRQ)	! 38	.long	SYMBOL_NAME(do_IRQ)	! 39	.long	SYMBOL_NAME(do_IRQ)	! 40 PINT pint0-7	.long	SYMBOL_NAME(do_IRQ)	! 41      pint8-15	.long	SYMBOL_NAME(do_IRQ)	! 42	.long	SYMBOL_NAME(do_IRQ)	! 43	.long	SYMBOL_NAME(do_IRQ)	! 44	.long	SYMBOL_NAME(do_IRQ)	! 45	.long	SYMBOL_NAME(do_IRQ)	! 46	.long	SYMBOL_NAME(do_IRQ)	! 47	.long	SYMBOL_NAME(do_IRQ)	! 48 DMAC dei0	.long	SYMBOL_NAME(do_IRQ)	! 49      dei1	.long	SYMBOL_NAME(do_IRQ)	! 50      dei2	.long	SYMBOL_NAME(do_IRQ)	! 51      dei3	.long	SYMBOL_NAME(do_IRQ)	! 52 IrDA eri1	.long	SYMBOL_NAME(do_IRQ)	! 53      rxi1	.long	SYMBOL_NAME(do_IRQ)	! 54      bri1	.long	SYMBOL_NAME(do_IRQ)	! 55      txi1	.long	SYMBOL_NAME(do_IRQ)	! 56 SCIF eri2	.long	SYMBOL_NAME(do_IRQ)	! 57      rxi2	.long	SYMBOL_NAME(do_IRQ)	! 58      bri2	.long	SYMBOL_NAME(do_IRQ)	! 59      txi2	.long	SYMBOL_NAME(do_IRQ)	! 60 ADC  adi#if defined(CONFIG_CPU_SUBTYPE_SH7707)	.long   SYMBOL_NAME(do_IRQ)	! 61 LCDC lcdi	.long   SYMBOL_NAME(do_IRQ)	! 62 PCC  pcc0i	.long   SYMBOL_NAME(do_IRQ)	! 63      pcc1i#endif#elif defined(__SH4__)	.long	SYMBOL_NAME(do_IRQ)	! Hitachi UDI	.long	SYMBOL_NAME(do_IRQ)	! GPIO	.long	SYMBOL_NAME(do_IRQ)	! DMAC dmte0	.long	SYMBOL_NAME(do_IRQ)	!      dmte1	.long	SYMBOL_NAME(do_IRQ)	!      dmte2	.long	SYMBOL_NAME(do_IRQ)	!      dmte3	.long	SYMBOL_NAME(do_IRQ)	!      dmae	.long	SYMBOL_NAME(do_IRQ)	.long	SYMBOL_NAME(do_IRQ)	! SCIF eri	.long	SYMBOL_NAME(do_IRQ)	!      rxi	.long	SYMBOL_NAME(do_IRQ)	!      bri	.long	SYMBOL_NAME(do_IRQ)	!      txi	.long	error	.long	error	.long	error	.long	error	.long	SYMBOL_NAME(do_fpu_state_restore)	.long	SYMBOL_NAME(do_fpu_state_restore)#endifENTRY(sys_call_table)	.long SYMBOL_NAME(sys_ni_syscall)	/* 0  -  old "setup()" system call*/	.long SYMBOL_NAME(sys_exit)	.long SYMBOL_NAME(sys_fork)	.long SYMBOL_NAME(sys_read)	.long SYMBOL_NAME(sys_write)	.long SYMBOL_NAME(sys_open)		/* 5 */	.long SYMBOL_NAME(sys_close)	.long SYMBOL_NAME(sys_waitpid)	.long SYMBOL_NAME(sys_creat)	.long SYMBOL_NAME(sys_link)	.long SYMBOL_NAME(sys_unlink)		/* 10 */	.long SYMBOL_NAME(sys_execve)	.long SYMBOL_NAME(sys_chdir)	.long SYMBOL_NAME(sys_time)	.long SYMBOL_NAME(sys_mknod)	.long SYMBOL_NAME(sys_chmod)		/* 15 */	.long SYMBOL_NAME(sys_lchown16)	.long SYMBOL_NAME(sys_ni_syscall)	/* old break syscall holder */	.long SYMBOL_NAME(sys_stat)	.long SYMBOL_NAME(sys_lseek)	.long SYMBOL_NAME(sys_getpid)		/* 20 */	.long SYMBOL_NAME(sys_mount)	.long SYMBOL_NAME(sys_oldumount)	.long SYMBOL_NAME(sys_setuid16)	.long SYMBOL_NAME(sys_getuid16)	.long SYMBOL_NAME(sys_stime)		/* 25 */	.long SYMBOL_NAME(sys_ptrace)	.long SYMBOL_NAME(sys_alarm)	.long SYMBOL_NAME(sys_fstat)	.long SYMBOL_NAME(sys_pause)	.long SYMBOL_NAME(sys_utime)		/* 30 */	.long SYMBOL_NAME(sys_ni_syscall)	/* old stty syscall holder */	.long SYMBOL_NAME(sys_ni_syscall)	/* old gtty syscall holder */	.long SYMBOL_NAME(sys_access)	.long SYMBOL_NAME(sys_nice)	.long SYMBOL_NAME(sys_ni_syscall)	/* 35 */		/* old ftime syscall holder */	.long SYMBOL_NAME(sys_sync)	.long SYMBOL_NAME(sys_kill)	.long SYMBOL_NAME(sys_rename)	.long SYMBOL_NAME(sys_mkdir)	.long SYMBOL_NAME(sys_rmdir)		/* 40 */	.long SYMBOL_NAME(sys_dup)	.long SYMBOL_NAME(sys_pipe)	.long SYMBOL_NAME(sys_times)	.long SYMBOL_NAME(sys_ni_syscall)	/* old prof syscall holder */	.long SYMBOL_NAME(sys_brk)		/* 45 */	.long SYMBOL_NAME(sys_setgid16)	.long SYMBOL_NAME(sys_getgid16)	.long SYMBOL_NAME(sys_signal)	.long SYMBOL_NAME(sys_geteuid16)	.long SYMBOL_NAME(sys_getegid16)	/* 50 */	.long SYMBOL_NAME(sys_acct)	.long SYMBOL_NAME(sys_umount)		/* recycled never used phys() */	.long SYMBOL_NAME(sys_ni_syscall)	/* old lock syscall holder */	.long SYMBOL_NAME(sys_ioctl)	.long SYMBOL_NAME(sys_fcntl)		/* 55 */	.long SYMBOL_NAME(sys_ni_syscall)	/* old mpx syscall holder */	.long SYMBOL_NAME(sys_setpgid)	.long SYMBOL_NAME(sys_ni_syscall)	/* old ulimit syscall holder */	.long SYMBOL_NAME(sys_ni_syscall)	/* sys_olduname */	.long SYMBOL_NAME(sys_umask)		/* 60 */	.long SYMBOL_NAME(sys_chroot)	.long SYMBOL_NAME(sys_ustat)	.long SYMBOL_NAME(sys_dup2)	.long SYMBOL_NAME(sys_getppid)	.long SYMBOL_NAME(sys_getpgrp)		/* 65 */	.long SYMBOL_NAME(sys_setsid)	.long SYMBOL_NAME(sys_sigaction)	.long SYMBOL_NAME(sys_sgetmask)	.long SYMBOL_NAME(sys_ssetmask)	.long SYMBOL_NAME(sys_setreuid16)	/* 70 */	.long SYMBOL_NAME(sys_setregid16)	.long SYMBOL_NAME(sys_sigsuspend)	.long SYMBOL_NAME(sys_sigpending)	.long SYMBOL_NAME(sys_sethostname)	.long SYMBOL_NAME(sys_setrlimit)	/* 75 */	.long SYMBOL_NAME(sys_old_getrlimit)	.long SYMBOL_NAME(sys_getrusage)	.long SYMBOL_NAME(sys_gettimeofday)	.long SYMBOL_NAME(sys_settimeofday)	.long SYMBOL_NAME(sys_getgroups16)	/* 80 */	.long SYMBOL_NAME(sys_setgroups16)	.long SYMBOL_NAME(sys_ni_syscall)	/* sys_oldselect */	.long SYMBOL_NAME(sys_symlink)	.long SYMBOL_NAME(sys_lstat)	.long SYMBOL_NAME(sys_readlink)		/* 85 */	.long SYMBOL_NAME(sys_uselib)	.long SYMBOL_NAME(sys_swapon)	.long SYMBOL_NAME(sys_reboot)	.long SYMBOL_NAME(old_readdir)	.long SYMBOL_NAME(old_mmap)		/* 90 */	.long SYMBOL_NAME(sys_munmap)	.long SYMBOL_NAME(sys_truncate)	.long SYMBOL_NAME(sys_ftruncate)	.long SYMBOL_NAME(sys_fchmod)	.long SYMBOL_NAME(sys_fchown16)		/* 95 */	.long SYMBOL_NAME(sys_getpriority)	.long SYMBOL_NAME(sys_setpriority)	.long SYMBOL_NAME(sys_ni_syscall)	/* old profil syscall holder */	.long SYMBOL_NAME(sys_statfs)	.long SYMBOL_NAME(sys_fstatfs)		/* 100 */	.long SYMBOL_NAME(sys_ni_syscall)	/* ioperm */	.long SYMBOL_NAME(sys_socketcall)	.long SYMBOL_NAME(sys_syslog)	.long SYMBOL_NAME(sys_setitimer)	.long SYMBOL_NAME(sys_getitimer)	/* 105 */	.long SYMBOL_NAME(sys_newstat)	.long SYMBOL_NAME(sys_newlstat)	.long SYMBOL_NAME(sys_newfstat)	.long SYMBOL_NAME(sys_uname)	.long SYMBOL_NAME(sys_ni_syscall)	/* 110 */ /* iopl */	.long SYMBOL_NAME(sys_vhangup)	.long SYMBOL_NAME(sys_ni_syscall)	/* idle */	.long SYMBOL_NAME(sys_ni_syscall)	/* vm86old */	.long SYMBOL_NAME(sys_wait4)	.long SYMBOL_NAME(sys_swapoff)		/* 115 */	.long SYMBOL_NAME(sys_sysinfo)	.long SYMBOL_NAME(sys_ipc)	.long SYMBOL_NAME(sys_fsync)	.long SYMBOL_NAME(sys_sigreturn)	.long SYMBOL_NAME(sys_clone)		/* 120 */	.long SYMBOL_NAME(sys_setdomainname)	.long SYMBOL_NAME(sys_newuname)	.long SYMBOL_NAME(sys_ni_syscall)	/* sys_modify_ldt */	.long SYMBOL_NAME(sys_adjtimex)	.long SYMBOL_NAME(sys_mprotect)		/* 125 */	.long SYMBOL_NAME(sys_sigprocmask)	.long SYMBOL_NAME(sys_create_module)	.long SYMBOL_NAME(sys_init_module)	.long SYMBOL_NAME(sys_delete_module)	.long SYMBOL_NAME(sys_get_kernel_syms)	/* 130 */	.long SYMBOL_NAME(sys_quotactl)	.long SYMBOL_NAME(sys_getpgid)	.long SYMBOL_NAME(sys_fchdir)	.long SYMBOL_NAME(sys_bdflush)	.long SYMBOL_NAME(sys_sysfs)		/* 135 */	.long SYMBOL_NAME(sys_personality)	.long SYMBOL_NAME(sys_ni_syscall)	/* for afs_syscall */	.long SYMBOL_NAME(sys_setfsuid16)	.long SYMBOL_NAME(sys_setfsgid16)	.long SYMBOL_NAME(sys_llseek)		/* 140 */	.long SYMBOL_NAME(sys_getdents)	.long SYMBOL_NAME(sys_select)	.long SYMBOL_NAME(sys_flock)	.long SYMBOL_NAME(sys_msync)	.long SYMBOL_NAME(sys_readv)		/* 145 */	.long SYMBOL_NAME(sys_writev)	.long SYMBOL_NAME(sys_getsid)	.long SYMBOL_NAME(sys_fdatasync)	.long SYMBOL_NAME(sys_sysctl)	.long SYMBOL_NAME(sys_mlock)		/* 150 */	.long SYMBOL_NAME(sys_munlock)	.long SYMBOL_NAME(sys_mlockall)	.long SYMBOL_NAME(sys_munlockall)	.long SYMBOL_NAME(sys_sched_setparam)	.long SYMBOL_NAME(sys_sched_getparam)   /* 155 */	.long SYMBOL_NAME(sys_sched_setscheduler)	.long SYMBOL_NAME(sys_sched_getscheduler)	.long SYMBOL_NAME(sys_sched_yield)	.long SYMBOL_NAME(sys_sched_get_priority_max)	.long SYMBOL_NAME(sys_sched_get_priority_min)  /* 160 */	.long SYMBOL_NAME(sys_sched_rr_get_interval)	.long SYMBOL_NAME(sys_nanosleep)	.long SYMBOL_NAME(sys_mremap)	.long SYMBOL_NAME(sys_setresuid16)	.long SYMBOL_NAME(sys_getresuid16)	/* 165 */	.long SYMBOL_NAME(sys_ni_syscall)	/* vm86 */	.long SYMBOL_NAME(sys_query_module)	.long SYMBOL_NAME(sys_poll)	.long SYMBOL_NAME(sys_nfsservctl)	.long SYMBOL_NAME(sys_setresgid16)	/* 170 */	.long SYMBOL_NAME(sys_getresgid16)	.long SYMBOL_NAME(sys_prctl)	.long SYMBOL_NAME(sys_rt_sigreturn)	.long SYMBOL_NAME(sys_rt_sigaction)	.long SYMBOL_NAME(sys_rt_sigprocmask)	/* 175 */	.long SYMBOL_NAME(sys_rt_sigpending)	.long SYMBOL_NAME(sys_rt_sigtimedwait)	.long SYMBOL_NAME(sys_rt_sigqueueinfo)	.long SYMBOL_NAME(sys_rt_sigsuspend)	.long SYMBOL_NAME(sys_pread)		/* 180 */	.long SYMBOL_NAME(sys_pwrite)	.long SYMBOL_NAME(sys_chown16)	.long SYMBOL_NAME(sys_getcwd)	.long SYMBOL_NAME(sys_capget)	.long SYMBOL_NAME(sys_capset)           /* 185 */	.long SYMBOL_NAME(sys_sigaltstack)	.long SYMBOL_NAME(sys_sendfile)	.long SYMBOL_NAME(sys_ni_syscall)	/* streams1 */	.long SYMBOL_NAME(sys_ni_syscall)	/* streams2 */	.long SYMBOL_NAME(sys_vfork)            /* 190 */	.long SYMBOL_NAME(sys_getrlimit)	.long SYMBOL_NAME(sys_mmap2)	.long SYMBOL_NAME(sys_truncate64)	.long SYMBOL_NAME(sys_ftruncate64)	.long SYMBOL_NAME(sys_stat64)		/* 195 */	.long SYMBOL_NAME(sys_lstat64)	.long SYMBOL_NAME(sys_fstat64)	.long SYMBOL_NAME(sys_lchown)	.long SYMBOL_NAME(sys_getuid)	.long SYMBOL_NAME(sys_getgid)		/* 200 */	.long SYMBOL_NAME(sys_geteuid)	.long SYMBOL_NAME(sys_getegid)	.long SYMBOL_NAME(sys_setreuid)	.long SYMBOL_NAME(sys_setregid)	.long SYMBOL_NAME(sys_getgroups)	/* 205 */	.long SYMBOL_NAME(sys_setgroups)	.long SYMBOL_NAME(sys_fchown)	.long SYMBOL_NAME(sys_setresuid)	.long SYMBOL_NAME(sys_getresuid)	.long SYMBOL_NAME(sys_setresgid)	/* 210 */	.long SYMBOL_NAME(sys_getresgid)	.long SYMBOL_NAME(sys_chown)	.long SYMBOL_NAME(sys_setuid)	.long SYMBOL_NAME(sys_setgid)	.long SYMBOL_NAME(sys_setfsuid)		/* 215 */	.long SYMBOL_NAME(sys_setfsgid)	.long SYMBOL_NAME(sys_pivot_root)	.long SYMBOL_NAME(sys_mincore)	.long SYMBOL_NAME(sys_madvise)	.long SYMBOL_NAME(sys_getdents64)	/* 220 */	.long SYMBOL_NAME(sys_fcntl64)	/*	 * NOTE!! This doesn't have to be exact - we just have	 * to make sure we have _enough_ of the "sys_ni_syscall"	 * entries. Don't panic if you notice that this hasn't	 * been shrunk every time we add a new system call.	 */	.rept NR_syscalls-221		.long SYMBOL_NAME(sys_ni_syscall)	.endr/* End of entry.S */

⌨️ 快捷键说明

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