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

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

?? irq_i8259.c

?? 嵌入式系統設計與實驗教材二源碼linux內核移植與編譯
?? C
字號:
/* *      linux/arch/alpha/kernel/irq_i8259.c * * This is the 'legacy' 8259A Programmable Interrupt Controller, * present in the majority of PC/AT boxes. * * Started hacking from linux-2.3.30pre6/arch/i386/kernel/i8259.c. */#include <linux/config.h>#include <linux/init.h>#include <linux/cache.h>#include <linux/sched.h>#include <linux/irq.h>#include <linux/interrupt.h>#include <asm/io.h>#include "proto.h"#include "irq_impl.h"/* Note mask bit is true for DISABLED irqs.  */static unsigned int cached_irq_mask = 0xffff;static spinlock_t i8259_irq_lock = SPIN_LOCK_UNLOCKED;static inline voidi8259_update_irq_hw(unsigned int irq, unsigned long mask){	int port = 0x21;	if (irq & 8) mask >>= 8;	if (irq & 8) port = 0xA1;	outb(mask, port);}inline voidi8259a_enable_irq(unsigned int irq){	spin_lock(&i8259_irq_lock);	i8259_update_irq_hw(irq, cached_irq_mask &= ~(1 << irq));	spin_unlock(&i8259_irq_lock);}static inline void__i8259a_disable_irq(unsigned int irq){	i8259_update_irq_hw(irq, cached_irq_mask |= 1 << irq);}voidi8259a_disable_irq(unsigned int irq){	spin_lock(&i8259_irq_lock);	__i8259a_disable_irq(irq);	spin_unlock(&i8259_irq_lock);}voidi8259a_mask_and_ack_irq(unsigned int irq){	spin_lock(&i8259_irq_lock);	__i8259a_disable_irq(irq);	/* Ack the interrupt making it the lowest priority.  */	if (irq >= 8) {		outb(0xE0 | (irq - 8), 0xa0);   /* ack the slave */		irq = 2;	}	outb(0xE0 | irq, 0x20);			/* ack the master */	spin_unlock(&i8259_irq_lock);}unsigned inti8259a_startup_irq(unsigned int irq){	i8259a_enable_irq(irq);	return 0; /* never anything pending */}voidi8259a_end_irq(unsigned int irq){	if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))		i8259a_enable_irq(irq);}struct hw_interrupt_type i8259a_irq_type = {	typename:	"XT-PIC",	startup:	i8259a_startup_irq,	shutdown:	i8259a_disable_irq,	enable:		i8259a_enable_irq,	disable:	i8259a_disable_irq,	ack:		i8259a_mask_and_ack_irq,	end:		i8259a_end_irq,};void __initinit_i8259a_irqs(void){	static struct irqaction cascade = {		handler:	no_action,		name:		"cascade",	};	long i;	outb(0xff, 0x21);	/* mask all of 8259A-1 */	outb(0xff, 0xA1);	/* mask all of 8259A-2 */	for (i = 0; i < 16; i++) {		irq_desc[i].status = IRQ_DISABLED;		irq_desc[i].handler = &i8259a_irq_type;	}	setup_irq(2, &cascade);}#if defined(CONFIG_ALPHA_GENERIC)# define IACK_SC	alpha_mv.iack_sc#elif defined(CONFIG_ALPHA_APECS)# define IACK_SC	APECS_IACK_SC#elif defined(CONFIG_ALPHA_LCA)# define IACK_SC	LCA_IACK_SC#elif defined(CONFIG_ALPHA_CIA)# define IACK_SC	CIA_IACK_SC#elif defined(CONFIG_ALPHA_PYXIS)# define IACK_SC	PYXIS_IACK_SC#elif defined(CONFIG_ALPHA_TITAN)# define IACK_SC	TITAN_IACK_SC#elif defined(CONFIG_ALPHA_TSUNAMI)# define IACK_SC	TSUNAMI_IACK_SC#elif defined(CONFIG_ALPHA_POLARIS)# define IACK_SC	POLARIS_IACK_SC#elif defined(CONFIG_ALPHA_IRONGATE)# define IACK_SC        IRONGATE_IACK_SC#endif#if defined(IACK_SC)voidisa_device_interrupt(unsigned long vector, struct pt_regs *regs){	/*	 * Generate a PCI interrupt acknowledge cycle.  The PIC will	 * respond with the interrupt vector of the highest priority	 * interrupt that is pending.  The PALcode sets up the	 * interrupts vectors such that irq level L generates vector L.	 */	int j = *(vuip) IACK_SC;	j &= 0xff;	handle_irq(j, regs);}#endif#if defined(CONFIG_ALPHA_GENERIC) || !defined(IACK_SC)voidisa_no_iack_sc_device_interrupt(unsigned long vector, struct pt_regs *regs){	unsigned long pic;	/*	 * It seems to me that the probability of two or more *device*	 * interrupts occurring at almost exactly the same time is	 * pretty low.  So why pay the price of checking for	 * additional interrupts here if the common case can be	 * handled so much easier?	 */	/* 	 *  The first read of gives you *all* interrupting lines.	 *  Therefore, read the mask register and and out those lines	 *  not enabled.  Note that some documentation has 21 and a1 	 *  write only.  This is not true.	 */	pic = inb(0x20) | (inb(0xA0) << 8);	/* read isr */	pic &= 0xFFFB;				/* mask out cascade & hibits */	while (pic) {		int j = ffz(~pic);		pic &= pic - 1;		handle_irq(j, regs);	}}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久不卡网国产精品一区| 欧美色手机在线观看| 91一区二区在线| 欧美精品一区二区在线播放| 亚洲美女一区二区三区| 国产精品一区二区三区99| 欧美精品乱码久久久久久按摩| 国产日韩成人精品| 激情久久五月天| 91精品国产综合久久久久| 亚洲精品欧美在线| 成人激情免费电影网址| 国产欧美日本一区视频| 精品一区二区在线观看| 91精品国产综合久久婷婷香蕉| 亚洲三级免费观看| 99久久久久久| 亚洲视频每日更新| 91福利社在线观看| 午夜av一区二区| 国产一区二区免费视频| 成人app网站| 666欧美在线视频| 国产午夜亚洲精品不卡| 99riav久久精品riav| 精品欧美一区二区三区精品久久 | 亚洲日本电影在线| 国产91在线观看丝袜| 精品国产欧美一区二区| 日本特黄久久久高潮| 欧亚洲嫩模精品一区三区| 亚洲欧美一区二区三区久本道91 | 国产精品国产三级国产aⅴ无密码| 国产一区二区三区在线看麻豆| 在线这里只有精品| 亚洲国产日日夜夜| 91麻豆精品国产91久久久久久久久 | 色久优优欧美色久优优| 亚洲精品成人少妇| 99精品视频一区| 亚洲精品日产精品乱码不卡| 色婷婷久久综合| 亚洲成人www| 久久色.com| 成人高清在线视频| 亚洲动漫第一页| 在线不卡中文字幕播放| 麻豆国产精品一区二区三区 | 丁香激情综合国产| 亚洲婷婷综合久久一本伊一区| 欧美在线免费观看亚洲| 免费观看成人鲁鲁鲁鲁鲁视频| 26uuu欧美| 欧美日韩精品电影| 成人小视频免费在线观看| 一区二区三区日韩在线观看| 日韩三级伦理片妻子的秘密按摩| 美女一区二区视频| 一区二区激情视频| www精品美女久久久tv| 色婷婷av一区二区三区之一色屋| 日韩av成人高清| 亚洲乱码精品一二三四区日韩在线| 欧美日韩小视频| 91成人网在线| 精彩视频一区二区三区| 亚洲国产精品久久不卡毛片| 国产日韩高清在线| 欧美精品一区二区在线观看| 欧美丰满嫩嫩电影| 欧美日韩在线三区| 91丨porny丨国产| av激情亚洲男人天堂| 国产成人综合在线| 欧美三级视频在线播放| 久久精品国产亚洲5555| 午夜精品福利一区二区三区av | 亚洲人成网站色在线观看| 久久先锋资源网| 日韩免费在线观看| 久久在线观看免费| 亚洲欧洲99久久| 亚洲裸体xxx| 日韩激情中文字幕| 日本成人超碰在线观看| 国产一区二区精品久久99| jlzzjlzz亚洲女人18| 日本精品视频一区二区三区| 日韩视频一区二区在线观看| 国产拍揄自揄精品视频麻豆| 亚洲精品国产高清久久伦理二区 | 色婷婷久久99综合精品jk白丝| 欧美伊人久久大香线蕉综合69| 91麻豆精品国产91久久久久 | 日韩三级电影网址| 亚洲黄色尤物视频| 国内精品伊人久久久久av一坑| 一本大道av伊人久久综合| 欧美日韩日日摸| 国产蜜臀av在线一区二区三区| 亚洲免费电影在线| 国产福利一区在线观看| 欧美一级精品在线| 亚洲欧美一区二区久久| 成人av手机在线观看| 欧美大尺度电影在线| 国产日韩精品久久久| 国产美女视频91| 欧美变态口味重另类| 日韩av电影一区| 欧美一级理论片| 亚洲福中文字幕伊人影院| 91在线视频18| 最新不卡av在线| 国产99久久久久久免费看农村| 久久久一区二区三区捆绑**| 亚洲精品乱码久久久久久| 成人97人人超碰人人99| 欧美xfplay| 成人一区在线看| 亚洲欧洲在线观看av| 99精品国产热久久91蜜凸| 亚洲一区二区高清| 99精品欧美一区| 亚洲精品一二三四区| 在线看国产一区| 美女mm1313爽爽久久久蜜臀| 欧美大片拔萝卜| 国产aⅴ精品一区二区三区色成熟| 欧美成人a视频| 成人av在线观| 一区二区在线观看av| 91麻豆免费在线观看| 丝袜美腿一区二区三区| 26uuu国产一区二区三区| 99精品视频在线观看免费| 亚洲超碰精品一区二区| 久久九九99视频| 色呦呦国产精品| 国产精品亚洲а∨天堂免在线| 久久久99精品久久| 99re热视频精品| 美日韩一区二区| 亚洲成人av一区二区三区| 国产日韩在线不卡| 欧美一级欧美三级在线观看| 成人高清视频在线观看| 蜜桃在线一区二区三区| 国产精品不卡一区二区三区| 欧美精品v国产精品v日韩精品 | 欧美乱妇15p| 国内精品写真在线观看| 亚洲欧洲综合另类| 日韩美女在线视频| 国产激情一区二区三区| 亚洲国产一二三| 亚洲色图欧洲色图| 国产精品女主播av| ww久久中文字幕| 日韩欧美在线综合网| 欧美日韩国产欧美日美国产精品| 成人综合在线网站| av亚洲精华国产精华精华| 国产成人在线观看| 午夜国产不卡在线观看视频| 亚洲欧美偷拍另类a∨色屁股| 中文字幕第一区综合| 国产精品久久久久婷婷二区次| 久久精品一区蜜桃臀影院| 欧美一区二区在线视频| 日韩一级精品视频在线观看| 欧美午夜精品理论片a级按摩| 理论电影国产精品| 成人激情小说网站| 91免费国产视频网站| 在线观看亚洲a| 欧美丰满少妇xxxxx高潮对白| 日韩一区二区高清| 久久久亚洲午夜电影| 日本一区二区三区国色天香| 中文字幕一区二区三| 国产精品免费视频观看| 肉色丝袜一区二区| 韩国视频一区二区| 99精品视频一区二区| 欧美一区二区三区视频免费播放| 欧美xingq一区二区| 亚洲婷婷在线视频| 久久成人久久爱| 91亚洲男人天堂| 欧美一区二区三区喷汁尤物| 依依成人综合视频| 另类成人小视频在线| 成人av动漫在线| 日韩一区二区免费电影| 洋洋av久久久久久久一区| 老司机精品视频导航| 欧美最新大片在线看| 国产精品乱码一区二三区小蝌蚪| 一区二区三区在线观看动漫|