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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? psc.c

?? 嵌入式系統(tǒng)設(shè)計與實例開發(fā)源碼
?? 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);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产乱码最新视频| 3751色影院一区二区三区| 男人的j进女人的j一区| 久久精品一区蜜桃臀影院| 国产一区视频在线看| 亚洲一区二区三区在线看| 国产日韩一级二级三级| 久久综合资源网| 精品久久久久香蕉网| 欧美日韩中文精品| 欧美三级日韩三级国产三级| 成人一区二区三区中文字幕| 亚洲高清一区二区三区| 日本一二三不卡| 久久先锋资源网| 日韩欧美123| 日韩一区二区三| 欧美日韩高清在线| 色综合久久88色综合天天免费| 懂色av一区二区三区免费看| 韩国精品免费视频| 美国毛片一区二区| 蜜桃传媒麻豆第一区在线观看| 亚洲日本va在线观看| 国产精品成人在线观看| 久久精品视频在线免费观看| 国产欧美精品一区二区三区四区 | 欧美性受xxxx黑人xyx| 色94色欧美sute亚洲13| 色美美综合视频| 91精品国产综合久久小美女| 日韩欧美高清dvd碟片| www一区二区| 亚洲风情在线资源站| 捆绑调教一区二区三区| av成人老司机| 日韩欧美国产一二三区| 国产精品久久久久aaaa樱花| 亚洲愉拍自拍另类高清精品| 国产综合久久久久久久久久久久| 成人av在线看| 久久先锋影音av鲁色资源网| 蜜桃av一区二区三区| 欧美精品一二三| 国产精品嫩草影院av蜜臀| 奇米色一区二区| 欧美肥大bbwbbw高潮| 亚洲一区在线视频| 成人国产精品免费观看视频| 丁香婷婷深情五月亚洲| 国产亚洲一区二区三区四区| 日韩电影在线一区二区三区| 天天影视色香欲综合网老头| 欧美视频在线播放| 久久精品国产99国产| 日韩美女在线视频| 亚洲成a人片综合在线| 99久久免费国产| 成人免费一区二区三区视频 | 亚洲国产日产av| 成人黄色av电影| 国产亚洲一二三区| 国模冰冰炮一区二区| 国产欧美日韩麻豆91| 99久久国产综合色|国产精品| 久久亚洲综合av| 韩国女主播成人在线| www日韩大片| 成人一级视频在线观看| 日本一区二区三区在线不卡| 国产99久久久国产精品| 2020国产成人综合网| 国产成人免费9x9x人网站视频| 欧美成人精精品一区二区频| 秋霞国产午夜精品免费视频| 欧美一区二区视频观看视频| 奇米888四色在线精品| 91精品欧美久久久久久动漫| 人人精品人人爱| 久久噜噜亚洲综合| 99久久免费国产| 裸体歌舞表演一区二区| 国产日产欧美一区二区三区| 99久久99久久免费精品蜜臀| 亚洲自拍偷拍图区| 久久亚洲一区二区三区四区| 成人性生交大片免费| 中文字幕一区二区三区不卡| 欧美剧在线免费观看网站| 经典三级在线一区| 一区二区三区日韩欧美精品| 91精品国产91综合久久蜜臀| 制服.丝袜.亚洲.中文.综合| 国产999精品久久久久久绿帽| 一区二区三区四区蜜桃 | 国产精品久久久久久久久久久免费看| 91视频在线观看| 欧美群妇大交群中文字幕| 成人aaaa免费全部观看| 精品一区二区三区在线播放视频| 亚洲精品国产一区二区精华液 | 日本一区二区成人在线| 欧美一区二区三区视频在线观看| 99re这里只有精品6| 国产成人精品免费一区二区| 免费国产亚洲视频| 亚洲成人综合在线| 亚洲精品久久久蜜桃| 中文字幕一区二| 久久网站最新地址| 色综合久久综合网欧美综合网| 激情综合五月天| 精品一区在线看| 免费精品视频最新在线| 亚洲国产精品麻豆| 亚洲国产综合91精品麻豆| 亚洲欧洲成人精品av97| 综合av第一页| 国产精品久久久久久久久快鸭| 日韩美女视频在线| 精品国产麻豆免费人成网站| 欧美xxxxxxxx| 国产精品三级视频| 亚洲天堂网中文字| 一区二区三区电影在线播| 亚洲一二三区在线观看| 天堂av在线一区| 国产在线不卡一卡二卡三卡四卡| 国产一区免费电影| 成人动漫一区二区| 欧美日韩亚洲综合一区| 欧美电影精品一区二区| 久久人人爽人人爽| 日韩美女精品在线| 日本最新不卡在线| 成人免费电影视频| 911国产精品| 国产亚洲精品7777| 亚洲午夜三级在线| 国内精品国产成人国产三级粉色 | 亚洲特级片在线| 青青草一区二区三区| 99热99精品| 日韩欧美电影一区| 亚洲综合视频网| 国产一区二区免费看| 欧美无人高清视频在线观看| 亚洲精品在线电影| 亚洲va国产va欧美va观看| 国产91富婆露脸刺激对白| 欧美日韩一区三区四区| 久久久久一区二区三区四区| 亚洲国产成人va在线观看天堂| 国产精品自在欧美一区| 欧美另类高清zo欧美| 1区2区3区精品视频| 青青草97国产精品免费观看 | 中文字幕色av一区二区三区| 免费精品视频在线| 欧美日韩电影一区| 一级日本不卡的影视| 99久久久免费精品国产一区二区| 精品处破学生在线二十三| 裸体一区二区三区| 8x8x8国产精品| 婷婷成人激情在线网| 欧美性猛交xxxxxx富婆| 亚洲免费观看在线观看| 99精品视频在线免费观看| 国产丝袜欧美中文另类| 国产成人免费av在线| 国产精品视频一二三区| 成人性生交大片免费看在线播放| 国产欧美日韩另类一区| 国产99久久久国产精品潘金网站| 久久久久久免费网| 风流少妇一区二区| 国产精品电影一区二区| 91国模大尺度私拍在线视频| 一区二区三区日韩| 欧美一区二区在线视频| 日韩av中文字幕一区二区三区| 日韩一级黄色片| 国产最新精品免费| 国产精品国产精品国产专区不片| 高清av一区二区| 亚洲天堂av老司机| 日韩欧美综合在线| 国产在线精品免费av| 亚洲欧洲av色图| 欧美麻豆精品久久久久久| 国产精品18久久久久久vr| 亚洲欧洲综合另类| 欧美一区二区三区视频在线 | 国产专区欧美精品| 亚洲欧美日韩中文播放| 精品少妇一区二区三区在线播放 | 麻豆91精品视频| 亚洲小少妇裸体bbw| 国产色一区二区|