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

📄 trap.s

📁 操作系统SunOS 4.1.3版本的源码
💻 S
字号:
/* *	.seg	"data" *	.asciz	"@(#)trap.s 1.1 92/07/30 SMI" *	Copyright (c) 1988 by Sun Microsystems, Inc. */#include <sun4/asm_linkage.h>#define	SAVE_ARGS	BRELOC-ARGPUSHSIZE#define	SAVE_RESULTS	BRELOC-8#define	TRAP_VECTOR_BASE	0xffe810d8	.data	.align	4_save_args:	.skip	4*4_save_sp:	.skip	4/* * Make sure the vector for 'trap #0' */	.globl	_set_vec_set_vec:	set	TRAP_VECTOR_BASE, %l0	ld	[%l0], %l0	set	systrap, %o0	st	%o0, [%l0 + 0x200]	! write new vector	nop	nop	retl				! done, leaf routine return	nop/* * System call handler. */systrap:	save	%sp,-WINDOWSIZE,%sp	! This lunacy is to get around the window being lost	! in the PROM on trap..	set	SAVE_ARGS, %o0	ld	[%o0+0x0], %i0	ld	[%o0+0x4], %i1	ld	[%o0+0x8], %i2	ld	[%o0+0xc], %i3	! End of lunacy	set	_save_args, %o1	st	%i1, [%o1+0]	st	%i2, [%o1+4]	st	%i3, [%o1+8]	mov	%i0, %o0		! which syscall	nop	nop	call	_syscall		! syscall(rp)	! add	%sp, MINFRAME, %o0	! ptr to reg struct	nop	set	SAVE_RESULTS, %o1	st	%o0, [%o1]	mov	%o0, %i0	ret	restore	nop	/* end syscall */

⌨️ 快捷键说明

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