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

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

?? traps.c

?? 該文件是rt_linux
?? C
?? 第 1 頁 / 共 2 頁
字號:
}#define DO_ERROR_INFO(signr, str, name, sicode, siaddr) \asmlinkage void name(struct pt_regs * regs, long interruption_code) \{ \        siginfo_t info; \        info.si_signo = signr; \        info.si_errno = 0; \        info.si_code = sicode; \        info.si_addr = (void *)siaddr; \        do_trap(interruption_code, signr, str, regs, &info); \}DO_ERROR(SIGSEGV, "Unknown program exception", default_trap_handler)DO_ERROR_INFO(SIGBUS, "addressing exception", addressing_exception,	      BUS_ADRERR, get_check_address(regs))DO_ERROR_INFO(SIGILL,  "execute exception", execute_exception,	      ILL_ILLOPN, get_check_address(regs))DO_ERROR_INFO(SIGFPE,  "fixpoint divide exception", divide_exception,	      FPE_INTDIV, get_check_address(regs))DO_ERROR_INFO(SIGILL,  "operand exception", operand_exception,	      ILL_ILLOPN, get_check_address(regs))DO_ERROR_INFO(SIGILL,  "privileged operation", privileged_op,	      ILL_PRVOPC, get_check_address(regs))DO_ERROR_INFO(SIGILL,  "special operation exception", special_op_exception,	      ILL_ILLOPN, get_check_address(regs))DO_ERROR_INFO(SIGILL,  "translation exception", translation_exception,	      ILL_ILLOPN, get_check_address(regs))static inline voiddo_fp_trap(struct pt_regs *regs, void *location,           int fpc, long interruption_code){	siginfo_t si;	si.si_signo = SIGFPE;	si.si_errno = 0;	si.si_addr = location;	si.si_code = 0;	/* FPC[2] is Data Exception Code */	if ((fpc & 0x00000300) == 0) {		/* bits 6 and 7 of DXC are 0 iff IEEE exception */		if (fpc & 0x8000) /* invalid fp operation */			si.si_code = FPE_FLTINV;		else if (fpc & 0x4000) /* div by 0 */			si.si_code = FPE_FLTDIV;		else if (fpc & 0x2000) /* overflow */			si.si_code = FPE_FLTOVF;		else if (fpc & 0x1000) /* underflow */			si.si_code = FPE_FLTUND;		else if (fpc & 0x0800) /* inexact */			si.si_code = FPE_FLTRES;	}	current->thread.ieee_instruction_pointer = (addr_t) location;	do_trap(interruption_code, SIGFPE,		"floating point exception", regs, &si);}asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code){        __u8 opcode[6];	__u16 *location;	int signal = 0;	location = (__u16 *)(regs->psw.addr-S390_lowcore.pgm_ilc);	/*	 * We got all needed information from the lowcore and can	 * now safely switch on interrupts.	 */	if (regs->psw.mask & PSW_PROBLEM_STATE)		__sti();	if (regs->psw.mask & PSW_PROBLEM_STATE)		get_user(*((__u16 *) opcode), location);	else		*((__u16 *)opcode)=*((__u16 *)location);	if (*((__u16 *)opcode)==S390_BREAKPOINT_U16)        {		if(do_debugger_trap(regs,SIGTRAP))			signal = SIGILL;	}#ifdef CONFIG_MATHEMU        else if (regs->psw.mask & PSW_PROBLEM_STATE)	{		if (opcode[0] == 0xb3) {			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_b3(opcode, regs);                } else if (opcode[0] == 0xed) {			get_user(*((__u32 *) (opcode+2)),				 (__u32 *)(location+1));			signal = math_emu_ed(opcode, regs);		} else if (*((__u16 *) opcode) == 0xb299) {			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_srnm(opcode, regs);		} else if (*((__u16 *) opcode) == 0xb29c) {			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_stfpc(opcode, regs);		} else if (*((__u16 *) opcode) == 0xb29d) {			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_lfpc(opcode, regs);		} else			signal = SIGILL;        }#endif 	else		signal = SIGILL;        if (signal == SIGFPE)		do_fp_trap(regs, location,                           current->thread.fp_regs.fpc, interruption_code);        else if (signal)		do_trap(interruption_code, signal,			"illegal operation", regs, NULL);}#ifdef CONFIG_MATHEMUasmlinkage void specification_exception(struct pt_regs * regs, long interruption_code){        __u8 opcode[6];	__u16 *location = NULL;	int signal = 0;	location = (__u16 *) get_check_address(regs);	/*	 * We got all needed information from the lowcore and can	 * now safely switch on interrupts.	 */	if (regs->psw.mask & PSW_PROBLEM_STATE)		__sti();		        if (regs->psw.mask & PSW_PROBLEM_STATE) {		get_user(*((__u16 *) opcode), location);		switch (opcode[0]) {		case 0x28: /* LDR Rx,Ry   */			signal = math_emu_ldr(opcode);			break;		case 0x38: /* LER Rx,Ry   */			signal = math_emu_ler(opcode);			break;		case 0x60: /* STD R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_std(opcode, regs);			break;		case 0x68: /* LD R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_ld(opcode, regs);			break;		case 0x70: /* STE R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_ste(opcode, regs);			break;		case 0x78: /* LE R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_le(opcode, regs);			break;		default:			signal = SIGILL;			break;                }        } else		signal = SIGILL;        if (signal == SIGFPE)		do_fp_trap(regs, location,                           current->thread.fp_regs.fpc, interruption_code);        else if (signal) {		siginfo_t info;		info.si_signo = signal;		info.si_errno = 0;		info.si_code = ILL_ILLOPN;		info.si_addr = location;		do_trap(interruption_code, signal, 			"specification exception", regs, &info);	}}#elseDO_ERROR_INFO(SIGILL, "specification exception", specification_exception,	      ILL_ILLOPN, get_check_address(regs));#endifasmlinkage void data_exception(struct pt_regs * regs, long interruption_code){        __u8 opcode[6];	__u16 *location;	int signal = 0;	location = (__u16 *) get_check_address(regs);	/*	 * We got all needed information from the lowcore and can	 * now safely switch on interrupts.	 */	if (regs->psw.mask & PSW_PROBLEM_STATE)		__sti();	if (MACHINE_HAS_IEEE)		__asm__ volatile ("stfpc %0\n\t" 				  : "=m" (current->thread.fp_regs.fpc));#ifdef CONFIG_MATHEMU        else if (regs->psw.mask & PSW_PROBLEM_STATE) {		get_user(*((__u16 *) opcode), location);		switch (opcode[0]) {		case 0x28: /* LDR Rx,Ry   */			signal = math_emu_ldr(opcode);			break;		case 0x38: /* LER Rx,Ry   */			signal = math_emu_ler(opcode);			break;		case 0x60: /* STD R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_std(opcode, regs);			break;		case 0x68: /* LD R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_ld(opcode, regs);			break;		case 0x70: /* STE R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_ste(opcode, regs);			break;		case 0x78: /* LE R,D(X,B) */			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_le(opcode, regs);			break;		case 0xb3:			get_user(*((__u16 *) (opcode+2)), location+1);			signal = math_emu_b3(opcode, regs);			break;                case 0xed:			get_user(*((__u32 *) (opcode+2)),				 (__u32 *)(location+1));			signal = math_emu_ed(opcode, regs);			break;	        case 0xb2:			if (opcode[1] == 0x99) {				get_user(*((__u16 *) (opcode+2)), location+1);				signal = math_emu_srnm(opcode, regs);			} else if (opcode[1] == 0x9c) {				get_user(*((__u16 *) (opcode+2)), location+1);				signal = math_emu_stfpc(opcode, regs);			} else if (opcode[1] == 0x9d) {				get_user(*((__u16 *) (opcode+2)), location+1);				signal = math_emu_lfpc(opcode, regs);			} else				signal = SIGILL;			break;		default:			signal = SIGILL;			break;                }        }#endif 	if (current->thread.fp_regs.fpc & FPC_DXC_MASK)		signal = SIGFPE;	else		signal = SIGILL;        if (signal == SIGFPE)		do_fp_trap(regs, location,                           current->thread.fp_regs.fpc, interruption_code);        else if (signal) {		siginfo_t info;		info.si_signo = signal;		info.si_errno = 0;		info.si_code = ILL_ILLOPN;		info.si_addr = location;		do_trap(interruption_code, signal, 			"data exception", regs, &info);	}}/* init is done in lowcore.S and head.S */void __init trap_init(void){        int i;        for (i = 0; i < 128; i++)          pgm_check_table[i] = &default_trap_handler;        pgm_check_table[1] = &illegal_op;        pgm_check_table[2] = &privileged_op;        pgm_check_table[3] = &execute_exception;        pgm_check_table[4] = &do_protection_exception;        pgm_check_table[5] = &addressing_exception;        pgm_check_table[6] = &specification_exception;        pgm_check_table[7] = &data_exception;        pgm_check_table[9] = &divide_exception;        pgm_check_table[0x10] = &do_segment_exception;        pgm_check_table[0x11] = &do_page_exception;        pgm_check_table[0x12] = &translation_exception;        pgm_check_table[0x13] = &special_op_exception; 	pgm_check_table[0x14] = &do_pseudo_page_fault;        pgm_check_table[0x15] = &operand_exception;        pgm_check_table[0x1C] = &privileged_op;#ifdef CONFIG_PFAULT	if (MACHINE_IS_VM) {		/* request the 0x2603 external interrupt */		if (register_early_external_interrupt(0x2603, pfault_interrupt,						      &ext_int_pfault) != 0)			panic("Couldn't request external interrupt 0x2603");		/*		 * First try to get pfault pseudo page faults going.		 * If this isn't available turn on pagex page faults.		 */		if (pfault_init() != 0) {			/* Tough luck, no pfault. */			unregister_early_external_interrupt(0x2603,							    pfault_interrupt,							    &ext_int_pfault);			cpcmd("SET PAGEX ON", NULL, 0);		}	}#else	if (MACHINE_IS_VM)		cpcmd("SET PAGEX ON", NULL, 0);#endif}void handle_per_exception(struct pt_regs *regs){	if(regs->psw.mask&PSW_PROBLEM_STATE)	{		per_struct *per_info=&current->thread.per_info;		per_info->lowcore.words.perc_atmid=S390_lowcore.per_perc_atmid;		per_info->lowcore.words.address=S390_lowcore.per_address;		per_info->lowcore.words.access_id=S390_lowcore.per_access_id;	}	if(do_debugger_trap(regs,SIGTRAP))	{		/* I've seen this possibly a task structure being reused ? */		printk("Spurious per exception detected\n");		printk("switching off per tracing for this task.\n");		show_regs(regs);		/* Hopefully switching off per tracing will help us survive */		regs->psw.mask &= ~PSW_PER_MASK;	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲gay无套男同| 日韩精品亚洲一区| 久久人人爽爽爽人久久久| 欧美日韩激情一区二区| 91视频观看视频| 91国产免费看| 欧美色区777第一页| 欧美三级三级三级| 制服丝袜亚洲色图| 这里是久久伊人| 日韩欧美高清在线| 精品第一国产综合精品aⅴ| 日韩美女视频一区二区在线观看| 精品少妇一区二区三区免费观看 | 久久综合久久综合久久综合| 久久精品视频免费| 国产日韩精品一区二区三区在线| 亚洲国产精华液网站w| 自拍视频在线观看一区二区| 亚洲成人资源在线| 国产一区二区三区四区五区入口| 国产白丝精品91爽爽久久| 91免费版在线| 精品噜噜噜噜久久久久久久久试看 | 欧美午夜寂寞影院| 日韩美女一区二区三区| 日本一区二区三区四区在线视频| 亚洲欧美区自拍先锋| 男男gaygay亚洲| 成人午夜免费电影| 欧美精品一二三四| 国产精品欧美极品| 日韩精品一二三| av综合在线播放| 欧美一区二区三区视频免费 | 欧美日韩精品免费观看视频 | 亚洲久本草在线中文字幕| 图片区小说区国产精品视频| 国产一区二区三区观看| 日本高清无吗v一区| 日韩欧美成人一区二区| 亚洲女爱视频在线| 黑人巨大精品欧美一区| 欧美少妇bbb| 国产精品青草久久| 精品影视av免费| 欧美性一级生活| 国产精品久久久久影院亚瑟| 日本午夜精品一区二区三区电影| 波多野结衣中文字幕一区二区三区 | 欧美精品一区二区三区在线| 日韩美女精品在线| 国产一区二区三区四区五区美女| 欧美丝袜丝nylons| 亚洲丝袜制服诱惑| 国产不卡视频在线观看| 日韩欧美在线1卡| 午夜成人免费视频| 欧美在线观看一区| 亚洲精品国产精品乱码不99| 国产福利一区在线观看| 精品av久久707| 久久精品av麻豆的观看方式| 在线播放日韩导航| 亚洲国产wwwccc36天堂| 欧美色综合影院| 亚洲品质自拍视频| bt欧美亚洲午夜电影天堂| 久久婷婷色综合| 国产精品一二三四五| 精品电影一区二区三区 | 亚洲午夜在线视频| 欧美日免费三级在线| 亚洲成人福利片| 欧美一区三区四区| 久久av资源站| 久久色在线观看| 成人a区在线观看| 亚洲美女视频在线| 在线看国产日韩| 午夜精品福利一区二区三区蜜桃| 色88888久久久久久影院野外| 亚洲靠逼com| 欧美一个色资源| 久久av资源网| 国产偷国产偷亚洲高清人白洁| 国产乱子伦一区二区三区国色天香| 精品人在线二区三区| 国产99一区视频免费| 中文在线一区二区| 91福利国产精品| 蜜乳av一区二区| 亚洲国产电影在线观看| 91久久免费观看| 日本网站在线观看一区二区三区| 欧美一级免费大片| 成人午夜视频在线| 亚洲大片在线观看| 精品国产伦一区二区三区观看体验 | 久久精品99国产精品日本| 欧美激情一区二区在线| 欧美自拍偷拍午夜视频| 久久99热99| 中文文精品字幕一区二区| 色诱视频网站一区| 麻豆视频观看网址久久| 亚洲欧洲精品成人久久奇米网| 欧洲精品在线观看| 国产一区二区影院| 亚洲综合丝袜美腿| 欧美激情综合网| 欧美精品自拍偷拍动漫精品| 成人性生交大合| 久久精品国产一区二区| 中文字幕综合网| 国产婷婷色一区二区三区| 一本色道a无线码一区v| 麻豆精品一区二区三区| 国产精品久久久久久亚洲毛片| 欧美日韩日日夜夜| 99精品视频一区| 国产河南妇女毛片精品久久久| 亚洲一区二区三区四区五区黄| 久久久蜜桃精品| 欧美日韩和欧美的一区二区| 成人一级视频在线观看| 国产在线一区观看| 蜜桃一区二区三区四区| 亚洲国产va精品久久久不卡综合| 中文在线免费一区三区高中清不卡| 日韩免费视频一区二区| 欧美喷潮久久久xxxxx| 日本乱人伦一区| 91在线一区二区| 成人小视频在线| 国产大陆亚洲精品国产| 国内精品写真在线观看 | 欧美哺乳videos| 在线播放国产精品二区一二区四区| 97se亚洲国产综合自在线观| 国产不卡免费视频| 成人激情av网| 成人动漫一区二区| 99免费精品视频| 色哟哟一区二区三区| 在线中文字幕不卡| 在线免费观看日韩欧美| 日本精品视频一区二区| 日本高清不卡aⅴ免费网站| 91豆麻精品91久久久久久| 色天天综合色天天久久| 99免费精品视频| 欧美亚洲动漫另类| 欧美妇女性影城| 日韩欧美www| 国产日韩欧美制服另类| 欧美韩国日本一区| 亚洲日本在线天堂| 亚洲一区电影777| 三级在线观看一区二区| 蜜桃在线一区二区三区| 国产精选一区二区三区| 丁香网亚洲国际| 日本韩国精品在线| 欧美一区二区三区人| 欧美大尺度电影在线| 国产亚洲一区二区三区| 国产精品国产三级国产a| 亚洲午夜影视影院在线观看| 亚洲靠逼com| 日韩电影一二三区| 国产一区二区免费看| 99精品1区2区| 91精品一区二区三区久久久久久 | 成人一级黄色片| 欧美无乱码久久久免费午夜一区 | 一区二区三区在线观看国产 | 精品国产不卡一区二区三区| 国产调教视频一区| 亚洲va韩国va欧美va精品| 免费高清不卡av| 色综合一个色综合| 日韩欧美123| **欧美大码日韩| 捆绑调教美女网站视频一区| 成人白浆超碰人人人人| 91精品国产综合久久福利| 国产亚洲污的网站| 亚洲va欧美va国产va天堂影院| 精久久久久久久久久久| 欧亚洲嫩模精品一区三区| 精品国产一区二区三区久久久蜜月| 国产精品成人网| 久久99精品久久久久久| 欧美日韩精品一区二区天天拍小说 | 久久99久久精品欧美| 91国模大尺度私拍在线视频| 久久久99久久精品欧美| 亚洲bdsm女犯bdsm网站| 91亚洲国产成人精品一区二区三|