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

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

?? psc.c

?? 《嵌入式系統設計與實例開發實驗教材二源碼》Linux內核移植與編譯實驗
?? C
字號:
/* *	Apple Peripheral System Controller (PSC) * *	The PSC is used on the AV Macs to control IO functions not handled *	by the VIAs (Ethernet, DSP, SCC). * * TO DO: * * Try to figure out what's going on in pIFR5 and pIFR6. There seem to be * persisant interrupt conditions in those registers and I have no idea what * they are. Granted it doesn't affect since we're not enabling any interrupts * on those levels at the moment, but it would be nice to know. I have a feeling * they aren't actually interrupt lines but data lines (to the DSP?) */#include <linux/types.h>#include <linux/kernel.h>#include <linux/mm.h>#include <linux/delay.h>#include <linux/init.h>#include <asm/traps.h>#include <asm/bootinfo.h> #include <asm/macintosh.h> #include <asm/macints.h> #include <asm/mac_psc.h>#define DEBUG_PSCint psc_present;volatile __u8 *psc;void psc_irq(int, void *, struct pt_regs *);/* * Debugging dump, used in various places to see what's going on. */void psc_debug_dump(void){	int	i;	if (!psc_present) return;	for (i = 0x30 ; i < 0x70 ; i += 0x10) {		printk("PSC #%d:  IFR = 0x%02X IER = 0x%02X\n",			i >> 4,			(int) psc_read_byte(pIFRbase + i),			(int) psc_read_byte(pIERbase + i));	}}/* * Try to kill all DMA channels on the PSC. Not sure how this his * supposed to work; this is code lifted from macmace.c and then * expanded to cover what I think are the other 7 channels. */void psc_dma_die_die_die(void){	int i;	printk("Killing all PSC DMA channels...");	for (i = 0 ; i < 9 ; i++) {		psc_write_word(PSC_CTL_BASE + (i << 4), 0x8800);		psc_write_word(PSC_CTL_BASE + (i << 4), 0x1000);		psc_write_word(PSC_CMD_BASE + (i << 5), 0x1100);		psc_write_word(PSC_CMD_BASE + (i << 5) + 0x10, 0x1100);	}	printk("done!\n");}/* * Initialize the PSC. For now this just involves shutting down all * interrupt sources using the IERs. */void __init psc_init(void){	int i;	if (macintosh_config->ident != MAC_MODEL_C660	 && macintosh_config->ident != MAC_MODEL_Q840)	{		psc = NULL;		psc_present = 0;		return;	}	/*	 * The PSC is always at the same spot, but using psc	 * keeps things consisant with the psc_xxxx functions.	 */	psc = (void *) PSC_BASE;	psc_present = 1;	printk("PSC detected at %p\n", psc);	psc_dma_die_die_die();#ifdef DEBUG_PSC	psc_debug_dump();#endif	/*	 * Mask and clear all possible interrupts	 */	for (i = 0x30 ; i < 0x70 ; i += 0x10) {		psc_write_byte(pIERbase + i, 0x0F);		psc_write_byte(pIFRbase + i, 0x0F);	}}/* * Register the PSC interrupt dispatchers for autovector interrupts 3-6. */void __init psc_register_interrupts(void){	sys_request_irq(3, psc_irq, IRQ_FLG_LOCK, "psc3",			(void *) 0x30);	sys_request_irq(4, psc_irq, IRQ_FLG_LOCK, "psc4",			(void *) 0x40);	sys_request_irq(5, psc_irq, IRQ_FLG_LOCK, "psc5",			(void *) 0x50);	sys_request_irq(6, psc_irq, IRQ_FLG_LOCK, "psc6",			(void *) 0x60);}/* * PSC interrupt handler. It's a lot like the VIA interrupt handler. */void psc_irq(int irq, void *dev_id, struct pt_regs *regs){	int pIFR	= pIFRbase + ((int) dev_id);	int pIER	= pIERbase + ((int) dev_id);	int base_irq;	int irq_bit,i;	unsigned char events;	base_irq = irq << 3;#ifdef DEBUG_IRQS	printk("psc_irq: irq %d pIFR = 0x%02X pIER = 0x%02X\n",		irq, (int) psc_read_byte(pIFR), (int) psc_read_byte(pIER));#endif	events = psc_read_byte(pIFR) & psc_read_byte(pIER) & 0xF;	if (!events) return;	for (i = 0, irq_bit = 1 ; i < 4 ; i++, irq_bit <<= 1) {	        if (events & irq_bit) {			psc_write_byte(pIER, irq_bit);			mac_do_irq_list(base_irq + i, regs);			psc_write_byte(pIFR, irq_bit);			psc_write_byte(pIER, irq_bit | 0x80);		}	}}void psc_irq_enable(int irq) {	int irq_src	= IRQ_SRC(irq);	int irq_idx	= IRQ_IDX(irq);	int pIER	= pIERbase + (irq_src << 4);#ifdef DEBUG_IRQUSE	printk("psc_irq_enable(%d)\n", irq);#endif	psc_write_byte(pIER, (1 << irq_idx) | 0x80);}void psc_irq_disable(int irq) {	int irq_src	= IRQ_SRC(irq);	int irq_idx	= IRQ_IDX(irq);	int pIER	= pIERbase + (irq_src << 4);#ifdef DEBUG_IRQUSE	printk("psc_irq_disable(%d)\n", irq);#endif	psc_write_byte(pIER, 1 << irq_idx);}void psc_irq_clear(int irq) {	int irq_src	= IRQ_SRC(irq);	int irq_idx	= IRQ_IDX(irq);	int pIFR	= pIERbase + (irq_src << 4);	psc_write_byte(pIFR, 1 << irq_idx);}int psc_irq_pending(int irq){	int irq_src	= IRQ_SRC(irq);	int irq_idx	= IRQ_IDX(irq);	int pIFR	= pIERbase + (irq_src << 4);	return psc_read_byte(pIFR) & (1 << irq_idx);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清在线视频| 日韩精品中文字幕在线不卡尤物| 久久久久国产精品免费免费搜索| 国产一区欧美二区| 亚洲综合图片区| 99国产精品久久久久| 一区二区激情小说| 精品视频一区 二区 三区| 日韩专区一卡二卡| 欧美岛国在线观看| 成人一区在线看| 亚洲欧美偷拍三级| 欧美日韩亚洲不卡| 久久精品久久久精品美女| 国产色综合久久| 91麻豆免费观看| 日韩中文字幕麻豆| 久久无码av三级| 91美女在线看| 日韩高清不卡一区二区| 久久久久久久久久美女| 91网上在线视频| 另类小说图片综合网| 国产精品久久久久一区| 欧美日韩一区二区三区四区五区| 免费在线观看精品| 1区2区3区精品视频| 欧美人狂配大交3d怪物一区| 韩国理伦片一区二区三区在线播放| 一区在线播放视频| 666欧美在线视频| 成人免费三级在线| 琪琪久久久久日韩精品| 国产精品久久精品日日| 91麻豆精品91久久久久久清纯 | 欧美一级免费大片| 粉嫩aⅴ一区二区三区四区 | 欧美日韩精品三区| 国产盗摄一区二区| 午夜一区二区三区视频| 国产女主播视频一区二区| 欧美精品免费视频| 波多野洁衣一区| 精久久久久久久久久久| 亚洲国产另类av| 中文字幕在线一区二区三区| 日韩女优电影在线观看| 欧美自拍丝袜亚洲| 99精品视频在线观看免费| 精品无人码麻豆乱码1区2区| 香蕉成人伊视频在线观看| 综合自拍亚洲综合图不卡区| 337p日本欧洲亚洲大胆精品 | 美女看a上一区| 亚洲综合av网| 国产精品婷婷午夜在线观看| 欧美精品一区二区三区高清aⅴ | 日韩视频免费直播| 欧美性大战久久久| 92国产精品观看| 国产999精品久久| 国产激情精品久久久第一区二区| 日本欧美一区二区在线观看| 亚洲成av人片在线观看| 亚洲免费观看视频| 中文字幕亚洲成人| 国产精品电影院| 国产网红主播福利一区二区| 久久久精品免费免费| 精品av久久707| 精品国产免费人成在线观看| 日韩欧美中文字幕一区| 日韩免费视频一区| 欧美一区二区三区四区视频| 欧美一区国产二区| 91精品国产入口| 欧美一区二区三区免费在线看| 欧美酷刑日本凌虐凌虐| 欧美群妇大交群中文字幕| 欧美三级三级三级爽爽爽| 欧美三级中文字幕在线观看| 欧美性淫爽ww久久久久无| 欧美午夜精品一区二区三区 | 色香色香欲天天天影视综合网| 国产成人精品1024| 成人夜色视频网站在线观看| 国产成人精品影视| 99久久精品国产观看| 色拍拍在线精品视频8848| 欧洲一区在线电影| 欧美性感一类影片在线播放| 91精品中文字幕一区二区三区| 在线播放视频一区| 日韩免费电影网站| 精品福利一区二区三区| 国产亚洲欧洲997久久综合| 国产日韩欧美在线一区| 国产精品久久久久久久久免费相片 | 综合精品久久久| 一区二区视频在线看| 香蕉久久夜色精品国产使用方法 | a亚洲天堂av| 色婷婷av一区二区| 欧美一三区三区四区免费在线看 | 亚洲三级在线看| 亚洲一区二区黄色| 美腿丝袜亚洲综合| 风流少妇一区二区| 欧美色手机在线观看| 日韩午夜小视频| 中文在线一区二区| 性做久久久久久| 久久精品99国产精品日本| 99久久精品99国产精品| 中文字幕一区在线观看| 亚洲欧美日韩国产成人精品影院 | 日本中文字幕不卡| 国产九九视频一区二区三区| 91小视频免费观看| 日韩欧美中文字幕公布| 18欧美亚洲精品| 美女视频网站久久| 色综合亚洲欧洲| 久久综合色综合88| 亚洲综合一二三区| 国产福利一区在线| 欧美精品色一区二区三区| 国产亚洲欧美在线| 亚洲6080在线| 成人激情午夜影院| 欧美一区二区三区四区高清| 国产精品三级av在线播放| 蜜桃久久精品一区二区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 国内成+人亚洲+欧美+综合在线| 91社区在线播放| 精品国产一区a| 亚洲成人免费看| 99热国产精品| 国产亚洲短视频| 日韩不卡一区二区| 色综合夜色一区| 国产精品拍天天在线| 久久精品国产色蜜蜜麻豆| 欧美性受xxxx| 国产精品久久久久一区二区三区| 国产麻豆视频一区二区| 欧美一级免费大片| 亚洲va国产天堂va久久en| 在线亚洲+欧美+日本专区| 欧美国产一区二区在线观看| 久久99在线观看| 在线综合视频播放| 一区二区三国产精华液| 99久久精品99国产精品| 国产精品乱码久久久久久| 国产精品一区二区无线| 久久久久久免费网| 韩国三级中文字幕hd久久精品| 91麻豆精品国产自产在线观看一区 | 欧美激情综合五月色丁香 | 午夜私人影院久久久久| 91视频国产资源| 亚洲欧美综合网| jizzjizzjizz欧美| 中文字幕欧美国产| 国产夫妻精品视频| 久久精品一区四区| 国产精品综合一区二区| 久久久久久毛片| 国产一区二区三区四区在线观看| 欧美成人性福生活免费看| 美女一区二区三区在线观看| 在线91免费看| 日韩—二三区免费观看av| 在线不卡免费欧美| 日本中文一区二区三区| 日韩欧美的一区二区| 国产一区二区三区最好精华液 | 中文字幕精品一区| 99精品视频一区二区三区| 日韩毛片精品高清免费| 91啪亚洲精品| 午夜精品久久久久久久| 日韩视频一区二区三区在线播放| 国产在线国偷精品产拍免费yy| 久久久久久电影| 99在线精品一区二区三区| 一区二区三区中文字幕| 91精品国产综合久久福利软件| 免费观看日韩电影| 久久久不卡网国产精品二区| 99精品欧美一区| 亚洲午夜在线视频| 宅男在线国产精品| 国产一区二区三区精品欧美日韩一区二区三区 | 国产99久久久国产精品潘金网站| 中文字幕色av一区二区三区| 欧美亚洲一区二区三区四区| 日韩av一级电影|