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

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

?? psc.c

?? 自己根據lkd和情境分析
?? 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一区二区三区免费野_久草精品视频
91官网在线观看| 偷窥少妇高潮呻吟av久久免费| 亚洲电影一级黄| 国产成人免费在线| 8v天堂国产在线一区二区| 亚洲图片另类小说| 国产麻豆精品在线| 日韩一区二区三区视频在线| 亚洲欧美国产高清| 成人精品gif动图一区| 欧美电影免费提供在线观看| 亚洲成人一区在线| 99re亚洲国产精品| 国产免费久久精品| 国产在线视频精品一区| 欧美一区二区久久| 亚洲国产cao| 色综合中文综合网| 欧美激情一区不卡| 极品少妇xxxx精品少妇偷拍| 7777精品伊人久久久大香线蕉完整版| 中文字幕一区二区三中文字幕| 99精品视频一区| 久久―日本道色综合久久| 日韩经典一区二区| 精品国产精品网麻豆系列 | 成人app软件下载大全免费| 国产精品不卡一区二区三区| 91福利国产成人精品照片| 日韩不卡一区二区| 国产清纯美女被跳蛋高潮一区二区久久w| 国产一区二区在线看| 国产精品国产三级国产普通话三级 | 欧美精品一区二区在线播放 | 日本一区二区三区在线不卡| 欧洲精品在线观看| 韩国三级中文字幕hd久久精品| 亚洲嫩草精品久久| 日韩你懂的电影在线观看| av在线播放不卡| 国产综合久久久久久鬼色| 精品一区二区在线播放| 中文字幕日韩精品一区| 日韩视频永久免费| 在线免费视频一区二区| 国产成人精品在线看| 免费成人av在线| 亚洲欧洲精品一区二区三区| 精品噜噜噜噜久久久久久久久试看| 日本久久一区二区| 国产大陆a不卡| 狠狠色丁香久久婷婷综| 亚洲成a人v欧美综合天堂| 国产精品久久久久婷婷二区次| 亚洲精品一区二区三区在线观看 | 亚洲国产精品成人久久综合一区| 91精品国产91久久综合桃花| 91麻豆产精品久久久久久| 国产精品1区二区.| 国产精品自在欧美一区| 免费av网站大全久久| 天天综合网 天天综合色| 亚洲精品精品亚洲| 亚洲欧美一区二区三区孕妇| 中文字幕免费一区| 国产精品女上位| 国产精品久久久久久久久图文区 | 国产精品一区二区在线观看不卡| 免费成人小视频| 韩日欧美一区二区三区| 国产又黄又大久久| 国产精品1区2区3区在线观看| 国产自产高清不卡| 国产精品一线二线三线精华| 国产91丝袜在线播放九色| 成a人片亚洲日本久久| 色婷婷一区二区三区四区| 欧美做爰猛烈大尺度电影无法无天| 日本道色综合久久| 91精品久久久久久久久99蜜臂| 欧美成人一区二区| 中文字幕日韩精品一区| 亚洲主播在线播放| 99久精品国产| 色综合婷婷久久| 精品久久人人做人人爰| 日本一区二区综合亚洲| 亚洲无人区一区| 国产在线一区观看| 91麻豆精品在线观看| 日韩免费一区二区| 亚洲欧美一区二区在线观看| 日日骚欧美日韩| 粉嫩av亚洲一区二区图片| 欧美久久久久久蜜桃| 国产精品盗摄一区二区三区| 亚洲成人精品影院| 国模一区二区三区白浆| 国产91丝袜在线播放| 欧美日韩免费一区二区三区视频| 日韩欧美在线影院| 久久精品视频在线看| 一区二区三区在线看| 六月丁香婷婷色狠狠久久| 麻豆成人综合网| 国产精品三级久久久久三级| 一区二区三区蜜桃网| 国产精品综合网| 91精品久久久久久久久99蜜臂| 亚洲国产电影在线观看| 午夜电影网一区| 国产成人精品免费看| 91麻豆精品久久久久蜜臀| 国产精品久久久久久久久免费桃花 | 成人污污视频在线观看| 这里只有精品免费| 亚洲精品视频在线观看网站| 国内精品伊人久久久久av一坑 | 日韩精品一区二区三区在线播放 | 欧美日韩的一区二区| 一区二区三区在线不卡| www.日韩精品| 精品国产一区二区三区忘忧草| 夜色激情一区二区| 99久久99久久精品免费看蜜桃| 一区二区三区精品| 色综合久久久久久久久| 国产欧美精品一区二区三区四区 | 东方欧美亚洲色图在线| 欧美电视剧在线看免费| 久久精品噜噜噜成人av农村| 欧美日本韩国一区| 亚洲综合一区二区精品导航| 欧美最新大片在线看 | 午夜精品久久久久影视| 日本高清成人免费播放| 一级做a爱片久久| 91网页版在线| 亚洲一区二区黄色| 欧美一卡二卡在线| 日韩av中文字幕一区二区三区| 欧美二区乱c少妇| 九九久久精品视频| 亚洲特级片在线| 欧美日韩在线观看一区二区| 午夜国产精品一区| 日韩欧美成人一区| 成人激情午夜影院| 亚洲精品大片www| 精品99久久久久久| eeuss鲁片一区二区三区在线看| 亚洲天堂免费在线观看视频| 91日韩一区二区三区| 亚洲免费观看高清完整版在线观看 | 国产女主播一区| 99精品视频在线观看免费| 日韩毛片视频在线看| 日韩欧美视频在线| 色婷婷综合久久久中文字幕| 日本免费在线视频不卡一不卡二| 国产欧美一二三区| 色视频欧美一区二区三区| 国产乱子伦一区二区三区国色天香| 国产精品久久久久7777按摩| 51精品秘密在线观看| 99综合电影在线视频| 日本欧美在线观看| 亚洲欧美一区二区在线观看| 欧美一级视频精品观看| 91小视频在线| 国产自产视频一区二区三区| 亚洲成年人网站在线观看| 国产精品网友自拍| 精品国产91久久久久久久妲己| 97国产精品videossex| 久久精品国产99国产| 亚欧色一区w666天堂| 国产精品水嫩水嫩| 久久精品亚洲麻豆av一区二区| 欧美日高清视频| 欧美三级一区二区| 色综合视频在线观看| 成人sese在线| 99这里只有精品| 精品影视av免费| 另类的小说在线视频另类成人小视频在线 | 久久av中文字幕片| 婷婷久久综合九色国产成人| 亚洲欧美激情视频在线观看一区二区三区| 国产日韩精品一区| 日本一区二区视频在线| 亚洲国产高清不卡| 亚洲国产高清aⅴ视频| 国产精品理论片| 加勒比av一区二区| 黄色日韩三级电影| 国产福利一区二区| www.亚洲国产| 91麻豆国产精品久久| 91成人国产精品|