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

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

?? io_se.c

?? 該文件是rt_linux
?? C
字號:
/* $Id: io_se.c,v 1.12 2001/08/11 01:23:28 jzs Exp $ * * linux/arch/sh/kernel/io_se.c * * Copyright (C) 2000  Kazumoto Kojima * * I/O routine for Hitachi SolutionEngine. * */#include <linux/kernel.h>#include <linux/types.h>#include <asm/io.h>#include <asm/hitachi_se.h>/* SH pcmcia io window base, start and end.  */int sh_pcic_io_wbase = 0xb8400000;int sh_pcic_io_start;int sh_pcic_io_stop;int sh_pcic_io_type;int sh_pcic_io_dummy;static inline void delay(void){	ctrl_inw(0xa0000000);}/* MS7750 requires special versions of in*, out* routines, since   PC-like io ports are located at upper half byte of 16-bit word which   can be accessed only with 16-bit wide.  */static inline volatile __u16 *port2adr(unsigned int port){	if (port >= 0x2000)		return (volatile __u16 *) (PA_MRSHPC + (port - 0x2000));	else if (port >= 0x1000)		return (volatile __u16 *) (PA_83902 + (port << 1));	else if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)		return (volatile __u16 *) (sh_pcic_io_wbase + (port &~ 1));	else		return (volatile __u16 *) (PA_SUPERIO + (port << 1));}static inline intshifted_port(unsigned long port){	/* For IDE registers, value is not shifted */	if ((0x1f0 <= port && port < 0x1f8) || port == 0x3f6)		return 0;	else		return 1;}#define maybebadio(name,port) \  printk("bad PC-like io %s for port 0x%lx at 0x%08x\n", \	 #name, (port), (__u32) __builtin_return_address(0))unsigned char se_inb(unsigned long port){	if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)		return *(__u8 *) (sh_pcic_io_wbase + 0x40000 + port); 	else if (shifted_port(port))		return (*port2adr(port) >> 8); 	else		return (*port2adr(port))&0xff; }unsigned char se_inb_p(unsigned long port){	unsigned long v;	if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)		v = *(__u8 *) (sh_pcic_io_wbase + 0x40000 + port); 	else if (shifted_port(port))		v = (*port2adr(port) >> 8); 	else		v = (*port2adr(port))&0xff; 	delay();	return v;}unsigned short se_inw(unsigned long port){	if (port >= 0x2000 ||	    (sh_pcic_io_start <= port && port <= sh_pcic_io_stop))		return *port2adr(port);	else		maybebadio(inw, port);	return 0;}unsigned int se_inl(unsigned long port){	maybebadio(inl, port);	return 0;}void se_outb(unsigned char value, unsigned long port){	if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)		*(__u8 *)(sh_pcic_io_wbase + port) = value; 	else if (shifted_port(port))		*(port2adr(port)) = value << 8;	else		*(port2adr(port)) = value;}void se_outb_p(unsigned char value, unsigned long port){	if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop)		*(__u8 *)(sh_pcic_io_wbase + port) = value; 	else if (shifted_port(port))		*(port2adr(port)) = value << 8;	else		*(port2adr(port)) = value;	delay();}void se_outw(unsigned short value, unsigned long port){	if (port >= 0x2000 ||	    (sh_pcic_io_start <= port && port <= sh_pcic_io_stop))		*port2adr(port) = value;	else		maybebadio(outw, port);}void se_outl(unsigned int value, unsigned long port){	maybebadio(outl, port);}void se_insb(unsigned long port, void *addr, unsigned long count){	volatile __u16 *p = port2adr(port);	if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop) {		volatile __u8 *bp = (__u8 *) (sh_pcic_io_wbase + 0x40000 + port); 		while (count--)			*((__u8 *) addr)++ = *bp;	} else if (shifted_port(port)) {		while (count--)			*((__u8 *) addr)++ = *p >> 8;	} else {		while (count--)			*((__u8 *) addr)++ = *p;	}}void se_insw(unsigned long port, void *addr, unsigned long count){	volatile __u16 *p = port2adr(port);	while (count--)		*((__u16 *) addr)++ = *p;}void se_insl(unsigned long port, void *addr, unsigned long count){	maybebadio(insl, port);}void se_outsb(unsigned long port, const void *addr, unsigned long count){	volatile __u16 *p = port2adr(port);	if (sh_pcic_io_start <= port && port <= sh_pcic_io_stop) {		volatile __u8 *bp = (__u8 *) (sh_pcic_io_wbase + port); 		while (count--)			*bp = *((__u8 *) addr)++;	} else if (shifted_port(port)) {		while (count--)			*p = *((__u8 *) addr)++ << 8;	} else {		while (count--)			*p = *((__u8 *) addr)++;	}}void se_outsw(unsigned long port, const void *addr, unsigned long count){	volatile __u16 *p = port2adr(port);	while (count--)		*p = *((__u16 *) addr)++;}void se_outsl(unsigned long port, const void *addr, unsigned long count){	maybebadio(outsw, port);}unsigned char se_readb(unsigned long addr){	return *(volatile unsigned char*)addr;}unsigned short se_readw(unsigned long addr){	return *(volatile unsigned short*)addr;}unsigned int se_readl(unsigned long addr){	return *(volatile unsigned long*)addr;}void se_writeb(unsigned char b, unsigned long addr){	*(volatile unsigned char*)addr = b;}void se_writew(unsigned short b, unsigned long addr){	*(volatile unsigned short*)addr = b;}void se_writel(unsigned int b, unsigned long addr){        *(volatile unsigned long*)addr = b;}/* Map ISA bus address to the real address. Only for PCMCIA.  *//* ISA page descriptor.  */static __u32 sh_isa_memmap[256];static intsh_isa_mmap(__u32 start, __u32 length, __u32 offset){	int idx;	if (start >= 0x100000 || (start & 0xfff) || (length != 0x1000))		return -1;	idx = start >> 12;	sh_isa_memmap[idx] = 0xb8000000 + (offset &~ 0xfff);#if 0	printk("sh_isa_mmap: start %x len %x offset %x (idx %x paddr %x)\n",	       start, length, offset, idx, sh_isa_memmap[idx]);#endif	return 0;}unsigned longse_isa_port2addr(unsigned long offset){	int idx;	idx = (offset >> 12) & 0xff;	offset &= 0xfff;	return sh_isa_memmap[idx] + offset;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产精品网麻豆系列 | 欧美日韩中文字幕一区| 久久精品国产色蜜蜜麻豆| 亚洲一区二区三区在线看| 成人免费视频在线观看| 亚洲天堂精品在线观看| 一区二区三区欧美在线观看| 一区二区三区中文免费| 天堂蜜桃91精品| 久久国产精品露脸对白| 国产麻豆视频精品| 波多野结衣一区二区三区| 色婷婷久久99综合精品jk白丝| av电影天堂一区二区在线| 色狠狠一区二区| 制服丝袜激情欧洲亚洲| 久久综合成人精品亚洲另类欧美 | 成人免费观看视频| 色网站国产精品| 欧美一级精品在线| 国产香蕉久久精品综合网| 国产精品不卡一区| 日韩主播视频在线| 成人小视频在线观看| 欧洲生活片亚洲生活在线观看| 欧美一级淫片007| 国产精品视频你懂的| 亚洲黄网站在线观看| 久久国内精品视频| 91影视在线播放| 欧美电影免费观看高清完整版| 中国色在线观看另类| 亚洲成av人片在线观看无码| 国产精品伊人色| 3atv一区二区三区| 亚洲免费观看高清完整版在线| 久久99精品久久久| 欧美亚洲动漫制服丝袜| 国产偷国产偷亚洲高清人白洁| 狠狠色2019综合网| 在线精品亚洲一区二区不卡| 精品乱人伦小说| 亚洲一区在线观看免费| 国内精品视频666| 欧美日韩不卡视频| 最新国产の精品合集bt伙计| 久久福利视频一区二区| 欧美性生交片4| 亚洲天堂中文字幕| 高清beeg欧美| 国产亚洲精品aa| 韩国精品一区二区| 3d动漫精品啪啪一区二区竹菊| 亚洲欧美色综合| 99精品视频一区二区三区| 久久午夜免费电影| 九九视频精品免费| 91麻豆精品国产91久久久久久久久 | 91色.com| 国产精品美女久久久久av爽李琼| 国内精品不卡在线| 精品免费日韩av| 九一久久久久久| www国产成人免费观看视频 深夜成人网| 亚洲午夜激情网站| 欧美在线播放高清精品| 亚洲国产精品一区二区www| 91久久一区二区| 一区二区三国产精华液| 欧美亚洲禁片免费| 午夜激情综合网| 欧美日韩和欧美的一区二区| 亚洲国产精品麻豆| 911国产精品| 麻豆精品国产91久久久久久| 欧美一级国产精品| 国产综合久久久久久久久久久久| 26uuu亚洲| 成人涩涩免费视频| 中文字幕一区二区三区在线观看| 高清久久久久久| 亚洲色图都市小说| 欧美日韩精品一区二区三区蜜桃 | 欧美精品一区二区久久婷婷| 久久精品国产网站| 欧美高清在线一区| 99久久国产免费看| 亚洲一区av在线| 日韩三级电影网址| 国产成人精品1024| 亚洲欧美一区二区三区久本道91 | 99久久99久久精品免费看蜜桃| 国产精品国产三级国产| 欧美性受xxxx黑人xyx| 奇米一区二区三区| 国产日韩av一区| 欧美自拍偷拍一区| 麻豆91在线播放| 国产精品三级久久久久三级| 精品视频一区二区三区免费| 免费精品视频最新在线| 国产欧美一区二区三区在线老狼| 91亚洲精品久久久蜜桃网站| 视频一区在线视频| 丝袜诱惑亚洲看片| 国产欧美日韩视频一区二区| 日本韩国欧美在线| 国产一区二区三区四区五区美女 | 久久久电影一区二区三区| 成人丝袜高跟foot| 日韩电影免费在线| 国产色一区二区| 欧美久久久久久久久| 国产精选一区二区三区| 亚洲一区二区黄色| 国产免费成人在线视频| 欧美日韩久久久| 91在线精品一区二区三区| 青青草国产成人av片免费| 欧美激情一区二区| 日韩一区二区三区视频在线| 99久久免费精品高清特色大片| 奇米精品一区二区三区在线观看 | 久久成人免费网站| 一区二区在线电影| 中文字幕av在线一区二区三区| 欧美久久久久久久久| 91电影在线观看| jizz一区二区| 国产成人精品www牛牛影视| 蜜桃精品视频在线观看| 亚洲成精国产精品女| 亚洲精品大片www| 《视频一区视频二区| 中文字幕av在线一区二区三区| 欧美变态口味重另类| 日韩一区二区精品葵司在线| 欧美最猛性xxxxx直播| 97se亚洲国产综合自在线| 国产一区二区三区av电影| 久久99精品久久久久久动态图 | 欧美精品一区二区三区视频| 7777精品伊人久久久大香线蕉超级流畅 | 粗大黑人巨茎大战欧美成人| 激情文学综合丁香| 精品一区二区影视| 美女精品一区二区| 美女视频网站久久| 黑人精品欧美一区二区蜜桃| 久热成人在线视频| 免费成人av在线| 九一九一国产精品| 国产乱色国产精品免费视频| 激情综合网激情| 黄色资源网久久资源365| 精东粉嫩av免费一区二区三区| 另类综合日韩欧美亚洲| 狠狠色丁香婷婷综合久久片| 国产一区二区三区四区五区美女| 国产精品一区二区果冻传媒| 国产精品 欧美精品| av不卡在线播放| 欧美三级韩国三级日本一级| 欧美精品丝袜久久久中文字幕| **性色生活片久久毛片| **性色生活片久久毛片| 亚洲国产sm捆绑调教视频| 天堂蜜桃91精品| 国模冰冰炮一区二区| www.亚洲精品| 欧美日韩不卡一区| 精品国产一区二区三区av性色| 国产亚洲精品免费| 一区二区三区视频在线观看| 亚洲成a人片综合在线| 精品亚洲成a人在线观看| 不卡一区二区三区四区| 欧美日韩国产综合视频在线观看 | 成人一二三区视频| 色噜噜狠狠色综合中国| 8x8x8国产精品| 国产亚洲一二三区| 亚洲一区在线看| 国产91在线|亚洲| 欧美三级视频在线观看| 久久综合中文字幕| 一区二区三区在线观看网站| 久久99蜜桃精品| 欧美综合亚洲图片综合区| 2024国产精品| 亚洲一二三四在线观看| 国产成人h网站| 日韩三级精品电影久久久 | 青草国产精品久久久久久| 国产·精品毛片| 91精品国模一区二区三区| 中文在线免费一区三区高中清不卡| 天堂在线亚洲视频| 91国偷自产一区二区三区成为亚洲经典| 欧美成人高清电影在线|