亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trap.c

?? unix v7是最后一個廣泛發布的研究型UNIX版本
?? C
字號:
#include "../h/param.h"#include "../h/systm.h"#include "../h/dir.h"#include "../h/user.h"#include "../h/proc.h"#include "../h/reg.h"#include "../h/seg.h"#define	EBIT	1		/* user error bit in PS: C-bit */#define	SETD	0170011		/* SETD instruction */#define	SYS	0104400		/* sys (trap) instruction */#define	USER	020		/* user-mode flag added to dev */#define	MEMORY	((physadr)0177740) /* 11/70 "memory" subsystem *//* * Offsets of the user's registers relative to * the saved r0. See reg.h */char	regloc[9] ={	R0, R1, R2, R3, R4, R5, R6, R7, RPS};/* * Called from l40.s or l45.s when a processor trap occurs. * The arguments are the words saved on the system stack * by the hardware and software during the trap processing. * Their order is dictated by the hardware and the details * of C's calling sequence. They are peculiar in that * this call is not 'by value' and changed user registers * get copied back on return. * dev is the kind of trap that occurred. */trap(dev, sp, r1, nps, r0, pc, ps)int *pc;dev_t dev;{	register i;	register *a;	register struct sysent *callp;	int (*fetch)();	time_t syst;	syst = u.u_stime;	u.u_fpsaved = 0;	if ((ps&UMODE) == UMODE)		dev |= USER;	u.u_ar0 = &r0;	switch(minor(dev)) {	/*	 * Trap not expected.	 * Usually a kernel mode bus error.	 * The numbers printed are used to	 * find the hardware PS/PC as follows.	 * (all numbers in octal 18 bits)	 *	address_of_saved_ps =	 *		(ka6*0100) + aps - 0140000;	 *	address_of_saved_pc =	 *		address_of_saved_ps - 2;	 */	default:		printf("ka6 = %o\n", ka6->r[0]);		printf("aps = %o\n", &ps);		printf("pc = %o ps = %o\n", pc, ps);		printf("trap type %o\n", dev);		panic("trap");	case 0+USER: /* bus error */		i = SIGBUS;		break;	/*	 * If illegal instructions are not	 * being caught and the offending instruction	 * is a SETD, the trap is ignored.	 * This is because C produces a SETD at	 * the beginning of every program which	 * will trap on CPUs without 11/45 FPU.	 */	case 1+USER: /* illegal instruction */		if(fuiword((caddr_t)(pc-1)) == SETD && u.u_signal[SIGINS] == 0)			goto out;		i = SIGINS;		break;	case 2+USER: /* bpt or trace */		i = SIGTRC;		ps &= ~TBIT;		break;	case 3+USER: /* iot */		i = SIGIOT;		break;	case 5+USER: /* emt */		i = SIGEMT;		break;	case 6+USER: /* sys call */		u.u_error = 0;		ps &= ~EBIT;		a = pc;		callp = &sysent[fuiword((caddr_t)(a-1))&077];		if (callp == sysent) { /* indirect */			a = (int *)fuiword((caddr_t)(a));			pc++;			i = fuword((caddr_t)a);			a++;			if ((i & ~077) != SYS)				i = 077;	/* illegal */			callp = &sysent[i&077];			fetch = fuword;		} else {			pc += callp->sy_narg - callp->sy_nrarg;			fetch = fuiword;		}		for (i=0; i<callp->sy_nrarg; i++)			u.u_arg[i] = u.u_ar0[regloc[i]];		for(; i<callp->sy_narg; i++)			u.u_arg[i] = (*fetch)((caddr_t)a++);		u.u_dirp = (caddr_t)u.u_arg[0];		u.u_r.r_val1 = u.u_ar0[R0];		u.u_r.r_val2 = u.u_ar0[R1];		u.u_ap = u.u_arg;		if (save(u.u_qsav)) {			if (u.u_error==0)				u.u_error = EINTR;		} else {			(*callp->sy_call)();		}		if(u.u_error) {			ps |= EBIT;			u.u_ar0[R0] = u.u_error;		} else {			u.u_ar0[R0] = u.u_r.r_val1;			u.u_ar0[R1] = u.u_r.r_val2;		}		goto out;	/*	 * Since the floating exception is an	 * imprecise trap, a user generated	 * trap may actually come from kernel	 * mode. In this case, a signal is sent	 * to the current process to be picked	 * up later.	 */	case 8: /* floating exception */		stst(&u.u_fper);	/* save error code */		psignal(u.u_procp, SIGFPT);		return;	case 8+USER:		i = SIGFPT;		stst(&u.u_fper);		break;	/*	 * If the user SP is below the stack segment,	 * grow the stack automatically.	 * This relies on the ability of the hardware	 * to restart a half executed instruction.	 * On the 11/40 this is not the case and	 * the routine backup/l40.s may fail.	 * The classic example is on the instruction	 *	cmp	-(sp),-(sp)	 */	case 9+USER: /* segmentation exception */	{	int	osp;		osp = sp;		if(backup(u.u_ar0) == 0)			if(grow((unsigned)osp))				goto out;		i = SIGSEG;		break;	}	/*	 * The code here is a half-hearted	 * attempt to do something with all	 * of the 11/70 parity registers.	 * In fact, there is little that	 * can be done.	 */	case 10:	case 10+USER:		printf("parity\n");		if(cputype == 70) {			for(i=0; i<4; i++)				printf("%o ", MEMORY->r[i]);			printf("\n");			MEMORY->r[2] = -1;			if(dev & USER) {				i = SIGBUS;				break;			}		}		panic("parity");	/*	 * Allow process switch	 */	case USER+12:		goto out;	/*	 * Locations 0-2 specify this style trap, since	 * DEC hardware often generates spurious	 * traps through location 0.  This is a	 * symptom of hardware problems and may	 * represent a real interrupt that got	 * sent to the wrong place.  Watch out	 * for hangs on disk completion if this message appears.	 */	case 15:	case 15+USER:		printf("Random interrupt ignored\n");		return;	}	psignal(u.u_procp, i);out:	if(issig()) {		psig();	}	curpri = setpri(u.u_procp);	if (runrun)		qswtch();	if(u.u_prof.pr_scale)		addupc((caddr_t)pc, &u.u_prof, (int)(u.u_stime-syst));	if (u.u_fpsaved)		restfp(&u.u_fps);}/* * nonexistent system call-- set fatal error code. */nosys(){	u.u_error = EINVAL;}/* * Ignored system call */nullsys(){}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费版在线| 亚洲国产成人av| 日韩三级高清在线| 欧美日本一道本| 欧美美女一区二区在线观看| 91国产视频在线观看| 色噜噜狠狠色综合欧洲selulu| 99久久综合国产精品| 99视频有精品| 欧美综合色免费| 欧美日韩另类一区| 欧美一级理论片| www国产亚洲精品久久麻豆| 久久婷婷色综合| 欧美国产日本视频| 有坂深雪av一区二区精品| 香蕉加勒比综合久久| 青草国产精品久久久久久| 看片的网站亚洲| 成人精品国产福利| 欧美性大战久久久久久久| 91精品欧美久久久久久动漫| 日韩精品一区二区三区老鸭窝| 国产视频在线观看一区二区三区| 最新高清无码专区| 日韩精品一二三四| 成人免费视频app| 欧美日韩精品二区第二页| 精品国产91乱码一区二区三区 | 风流少妇一区二区| 色吧成人激情小说| 日韩午夜在线观看| 亚洲欧美激情小说另类| 免费观看30秒视频久久| 97精品国产露脸对白| 欧美一级二级在线观看| 亚洲色图欧洲色图婷婷| 奇米影视一区二区三区小说| 成人丝袜高跟foot| 欧美人体做爰大胆视频| 国产日韩精品一区二区三区在线| 亚洲自拍偷拍图区| 高清不卡在线观看av| 日韩一区二区免费在线电影| 18成人在线观看| 国产一区三区三区| 欧美片在线播放| 国产精品电影一区二区| 精品一区二区日韩| 欧美精品在线一区二区| 亚洲乱码国产乱码精品精98午夜| 狠狠色丁香婷综合久久| 日韩网站在线看片你懂的| 亚洲国产精品一区二区www| 国产成人一区在线| 久久综合五月天婷婷伊人| 日本中文字幕一区二区有限公司| 一本色道亚洲精品aⅴ| 国产亚洲精品免费| 捆绑变态av一区二区三区| 欧美日韩国产小视频在线观看| 国产精品伦一区二区三级视频| 狠狠色伊人亚洲综合成人| 日韩午夜电影av| 奇米一区二区三区av| 欧美精品三级在线观看| 一区二区高清在线| 91蜜桃网址入口| 亚洲人一二三区| 一本大道av伊人久久综合| 国产精品免费视频一区| 成人h动漫精品一区二区| 国产亚洲一区二区三区| 国产盗摄女厕一区二区三区| 精品少妇一区二区三区| 国产主播一区二区| 久久精品欧美一区二区三区不卡| 国产精品中文字幕日韩精品 | 在线亚洲高清视频| 中文字幕日韩精品一区| av一本久道久久综合久久鬼色| 国产精品久久久久国产精品日日| 成人黄页毛片网站| 亚洲午夜羞羞片| 欧美麻豆精品久久久久久| 秋霞电影网一区二区| 日韩欧美一区在线| 国产一区二三区| 综合久久国产九一剧情麻豆| 色综合久久天天综合网| 五月天一区二区三区| 日韩欧美一级片| 成人美女视频在线观看18| 成人免费在线播放视频| 欧美午夜精品久久久久久孕妇| 亚洲国产精品一区二区久久恐怖片| 欧美精品在线一区二区三区| 久久福利资源站| 国产精品乱人伦中文| 欧美日韩国产经典色站一区二区三区| 亚洲大型综合色站| 久久久精品免费观看| 色香色香欲天天天影视综合网| 五月天激情小说综合| www一区二区| 欧美性猛片aaaaaaa做受| 另类小说综合欧美亚洲| 亚洲欧美成aⅴ人在线观看| 在线观看视频一区二区欧美日韩| 精品在线你懂的| 亚洲精品成a人| 亚洲精品一区二区在线观看| 91在线免费播放| 精品在线一区二区三区| 亚洲一线二线三线视频| 精品国产一区二区三区av性色| 99久久精品99国产精品| 久久99热狠狠色一区二区| 一区二区三区美女视频| 国产欧美精品一区aⅴ影院 | 色综合激情五月| 国产一区二区电影| 日日摸夜夜添夜夜添精品视频| 久久欧美一区二区| 欧美一区二区三区视频免费播放| 99精品欧美一区| 久久99这里只有精品| 午夜精品久久久久久| 亚洲男人的天堂一区二区| 2023国产精品自拍| 91精品一区二区三区在线观看| 色欧美88888久久久久久影院| 国产激情一区二区三区四区 | 国产精品乱码一区二区三区软件 | 亚洲综合色视频| 国产精品国产a级| 国产欧美视频一区二区| 精品sm在线观看| 欧美高清性hdvideosex| 欧美一a一片一级一片| 91丨porny丨首页| av中文字幕亚洲| 国产 欧美在线| 欧美午夜视频网站| 91麻豆文化传媒在线观看| jvid福利写真一区二区三区| 国产成人亚洲综合a∨婷婷图片| 激情综合色丁香一区二区| 日日夜夜精品免费视频| 日日夜夜一区二区| 亚洲444eee在线观看| 亚洲综合清纯丝袜自拍| 一区二区三区久久| 亚洲夂夂婷婷色拍ww47| 婷婷国产在线综合| 天天色天天爱天天射综合| 天堂va蜜桃一区二区三区漫画版| 亚洲国产成人av| 蜜臀久久久99精品久久久久久| 麻豆精品一区二区综合av| 久久国内精品自在自线400部| 激情亚洲综合在线| 国产高清精品网站| 99综合影院在线| 欧美日韩国产影片| 欧美一级xxx| 国产日产欧美一区二区视频| 国产精品理论片| 亚洲资源中文字幕| 美国十次综合导航| 懂色av中文字幕一区二区三区| 成人av在线网站| 欧美乱熟臀69xxxxxx| 久久精品欧美日韩精品| 亚洲欧洲日韩av| 亚洲18色成人| 国产一区二区视频在线播放| 成人黄色在线视频| 91精品国产综合久久久蜜臀粉嫩 | 国产精品久久久久久久久免费丝袜 | 成人蜜臀av电影| 欧美三级一区二区| 久久综合久色欧美综合狠狠| 亚洲欧美在线aaa| 日产国产欧美视频一区精品| 成人一区二区三区中文字幕| 欧美色图天堂网| 国产日韩欧美a| 日韩成人免费看| 91免费版在线| 国产亚洲精品aa午夜观看| 亚洲资源在线观看| 国产999精品久久久久久 | 香蕉成人伊视频在线观看| 国模冰冰炮一区二区| 欧美自拍偷拍一区| 中文在线一区二区| 免费一级片91| 欧美日韩在线播放一区| 中文一区在线播放|