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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? jensen.h

?? 《嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開(kāi)發(fā)實(shí)驗(yàn)教材二源碼》Linux內(nèi)核移植與編譯實(shí)驗(yàn)
?? H
字號(hào):
#ifndef __ALPHA_JENSEN_H#define __ALPHA_JENSEN_H#include <asm/compiler.h>/* * Defines for the AlphaPC EISA IO and memory address space. *//* The Jensen is strange */#define AUX_IRQ (9)/* * NOTE! The memory operations do not set any memory barriers, as it's * not needed for cases like a frame buffer that is essentially memory-like. * You need to do them by hand if the operations depend on ordering. * * Similarly, the port IO operations do a "mb" only after a write operation: * if an mb is needed before (as in the case of doing memory mapped IO * first, and then a port IO operation to the same device), it needs to be * done by hand. * * After the above has bitten me 100 times, I'll give up and just do the * mb all the time, but right now I'm hoping this will work out.  Avoiding * mb's may potentially be a noticeable speed improvement, but I can't * honestly say I've tested it. * * Handling interrupts that need to do mb's to synchronize to non-interrupts * is another fun race area.  Don't do it (because if you do, I'll have to * do *everything* with interrupts disabled, ugh). *//* * EISA Interrupt Acknowledge address */#define EISA_INTA		(IDENT_ADDR + 0x100000000UL)/* * FEPROM addresses */#define EISA_FEPROM0		(IDENT_ADDR + 0x180000000UL)#define EISA_FEPROM1		(IDENT_ADDR + 0x1A0000000UL)/* * VL82C106 base address */#define EISA_VL82C106		(IDENT_ADDR + 0x1C0000000UL)/* * EISA "Host Address Extension" address (bits 25-31 of the EISA address) */#define EISA_HAE		(IDENT_ADDR + 0x1D0000000UL)/* * "SYSCTL" register address */#define EISA_SYSCTL		(IDENT_ADDR + 0x1E0000000UL)/* * "spare" register address */#define EISA_SPARE		(IDENT_ADDR + 0x1F0000000UL)/* * EISA memory address offset */#define EISA_MEM		(IDENT_ADDR + 0x200000000UL)/* * EISA IO address offset */#define EISA_IO			(IDENT_ADDR + 0x300000000UL)#ifdef __KERNEL__#ifndef __EXTERN_INLINE#define __EXTERN_INLINE extern inline#define __IO_EXTERN_INLINE#endif/* * Handle the "host address register". This needs to be set * to the high 7 bits of the EISA address.  This is also needed * for EISA IO addresses, which are only 16 bits wide (the * hae needs to be set to 0). * * HAE isn't needed for the local IO operations, though. */#define JENSEN_HAE_ADDRESS	EISA_HAE#define JENSEN_HAE_MASK		0x1ffffff__EXTERN_INLINE void jensen_set_hae(unsigned long addr){	/* hae on the Jensen is bits 31:25 shifted right */	addr >>= 25;	if (addr != alpha_mv.hae_cache)		set_hae(addr);}#define vuip	volatile unsigned int */* * IO functions * * The "local" functions are those that don't go out to the EISA bus, * but instead act on the VL82C106 chip directly.. This is mainly the * keyboard, RTC,  printer and first two serial lines.. * * The local stuff makes for some complications, but it seems to be * gone in the PCI version. I hope I can get DEC suckered^H^H^H^H^H^H^H^H * convinced that I need one of the newer machines. */static inline unsigned int jensen_local_inb(unsigned long addr){	return 0xff & *(vuip)((addr << 9) + EISA_VL82C106);}static inline void jensen_local_outb(u8 b, unsigned long addr){	*(vuip)((addr << 9) + EISA_VL82C106) = b;	mb();}static inline unsigned int jensen_bus_inb(unsigned long addr){	long result;	jensen_set_hae(0);	result = *(volatile int *)((addr << 7) + EISA_IO + 0x00);	return __kernel_extbl(result, addr & 3);}static inline void jensen_bus_outb(u8 b, unsigned long addr){	jensen_set_hae(0);	*(vuip)((addr << 7) + EISA_IO + 0x00) = b * 0x01010101;	mb();}/* * It seems gcc is not very good at optimizing away logical * operations that result in operations across inline functions. * Which is why this is a macro. */#define jensen_is_local(addr) ( \/* keyboard */	(addr == 0x60 || addr == 0x64) || \/* RTC */	(addr == 0x170 || addr == 0x171) || \/* mb COM2 */	(addr >= 0x2f8 && addr <= 0x2ff) || \/* mb LPT1 */	(addr >= 0x3bc && addr <= 0x3be) || \/* mb COM2 */	(addr >= 0x3f8 && addr <= 0x3ff))__EXTERN_INLINE u8 jensen_inb(unsigned long addr){	if (jensen_is_local(addr))		return jensen_local_inb(addr);	else		return jensen_bus_inb(addr);}__EXTERN_INLINE void jensen_outb(u8 b, unsigned long addr){	if (jensen_is_local(addr))		jensen_local_outb(b, addr);	else		jensen_bus_outb(b, addr);}__EXTERN_INLINE u16 jensen_inw(unsigned long addr){	long result;	jensen_set_hae(0);	result = *(volatile int *) ((addr << 7) + EISA_IO + 0x20);	result >>= (addr & 3) * 8;	return 0xffffUL & result;}__EXTERN_INLINE u32 jensen_inl(unsigned long addr){	jensen_set_hae(0);	return *(vuip) ((addr << 7) + EISA_IO + 0x60);}__EXTERN_INLINE void jensen_outw(u16 b, unsigned long addr){	jensen_set_hae(0);	*(vuip) ((addr << 7) + EISA_IO + 0x20) = b * 0x00010001;	mb();}__EXTERN_INLINE void jensen_outl(u32 b, unsigned long addr){	jensen_set_hae(0);	*(vuip) ((addr << 7) + EISA_IO + 0x60) = b;	mb();}/* * Memory functions. */__EXTERN_INLINE u8 jensen_readb(unsigned long addr){	long result;	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	result = *(volatile int *) ((addr << 7) + EISA_MEM + 0x00);	result >>= (addr & 3) * 8;	return 0xffUL & result;}__EXTERN_INLINE u16 jensen_readw(unsigned long addr){	long result;	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	result = *(volatile int *) ((addr << 7) + EISA_MEM + 0x20);	result >>= (addr & 3) * 8;	return 0xffffUL & result;}__EXTERN_INLINE u32 jensen_readl(unsigned long addr){	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	return *(vuip) ((addr << 7) + EISA_MEM + 0x60);}__EXTERN_INLINE u64 jensen_readq(unsigned long addr){	unsigned long r0, r1;	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	addr = (addr << 7) + EISA_MEM + 0x60;	r0 = *(vuip) (addr);	r1 = *(vuip) (addr + (4 << 7));	return r1 << 32 | r0;}__EXTERN_INLINE void jensen_writeb(u8 b, unsigned long addr){	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	*(vuip) ((addr << 7) + EISA_MEM + 0x00) = b * 0x01010101;}__EXTERN_INLINE void jensen_writew(u16 b, unsigned long addr){	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	*(vuip) ((addr << 7) + EISA_MEM + 0x20) = b * 0x00010001;}__EXTERN_INLINE void jensen_writel(u32 b, unsigned long addr){	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	*(vuip) ((addr << 7) + EISA_MEM + 0x60) = b;}__EXTERN_INLINE void jensen_writeq(u64 b, unsigned long addr){	jensen_set_hae(addr);	addr &= JENSEN_HAE_MASK;	addr = (addr << 7) + EISA_MEM + 0x60;	*(vuip) (addr) = b;	*(vuip) (addr + (4 << 7)) = b >> 32;}__EXTERN_INLINE unsigned long jensen_ioremap(unsigned long addr, 					     unsigned long size){	return addr;}__EXTERN_INLINE void jensen_iounmap(unsigned long addr){	return;}__EXTERN_INLINE int jensen_is_ioaddr(unsigned long addr){	return (long)addr >= 0;}#undef vuip#ifdef __WANT_IO_DEF#define __inb		jensen_inb#define __inw		jensen_inw#define __inl		jensen_inl#define __outb		jensen_outb#define __outw		jensen_outw#define __outl		jensen_outl#define __readb		jensen_readb#define __readw		jensen_readw#define __writeb	jensen_writeb#define __writew	jensen_writew#define __readl		jensen_readl#define __readq		jensen_readq#define __writel	jensen_writel#define __writeq	jensen_writeq#define __ioremap	jensen_ioremap#define __iounmap(a)	jensen_iounmap((unsigned long)a)#define __is_ioaddr	jensen_is_ioaddr/* * The above have so much overhead that it probably doesn't make * sense to have them inlined (better icache behaviour). */#define inb(port) \(__builtin_constant_p((port))?__inb(port):_inb(port))#define outb(x, port) \(__builtin_constant_p((port))?__outb((x),(port)):_outb((x),(port)))#endif /* __WANT_IO_DEF */#ifdef __IO_EXTERN_INLINE#undef __EXTERN_INLINE#undef __IO_EXTERN_INLINE#endif#endif /* __KERNEL__ */#endif /* __ALPHA_JENSEN_H */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩美女视频一区二区在线观看| 日韩国产在线观看一区| 午夜精品123| 成人高清免费在线播放| 欧美一区二区免费观在线| 亚洲品质自拍视频网站| 国产一区二区电影| 欧美日韩午夜精品| 国产精品久久久久9999吃药| 久久99九九99精品| 在线不卡中文字幕播放| 一区二区三区四区不卡视频| 岛国精品一区二区| 精品国免费一区二区三区| 亚洲地区一二三色| 91国偷自产一区二区使用方法| 久久精品男人的天堂| 秋霞电影一区二区| 欧美老人xxxx18| 一级中文字幕一区二区| 99精品热视频| 中文字幕国产一区二区| 国产乱子伦视频一区二区三区| 在线不卡中文字幕| 亚洲一区二区视频在线| 色综合久久久久综合体| 中文文精品字幕一区二区| 激情国产一区二区 | 日本欧美大码aⅴ在线播放| 色综合中文字幕国产| 久久久精品免费观看| 国产麻豆精品在线观看| 亚洲精品一区二区三区影院| 美女一区二区在线观看| 欧美一区二区三区在| 日韩电影网1区2区| 欧美一区二区国产| 蜜臀91精品一区二区三区| 制服.丝袜.亚洲.另类.中文| 日本伊人午夜精品| 日韩一区二区三区在线观看| 日本特黄久久久高潮| 日韩色在线观看| 久热成人在线视频| 久久综合九色综合欧美98| 精品一区二区三区香蕉蜜桃| 欧美成人一区二区三区在线观看| 蜜乳av一区二区三区| 日韩欧美国产精品| 国产一区二区女| 久久久精品免费网站| 国产91丝袜在线播放| 欧美激情资源网| 成人晚上爱看视频| 中文字幕五月欧美| 色综合久久六月婷婷中文字幕| 亚洲精品成人a在线观看| 欧美性生交片4| 日韩影院免费视频| 精品国产1区2区3区| 国产精品一级片在线观看| 欧美激情在线看| 91性感美女视频| 亚洲一卡二卡三卡四卡无卡久久| 欧美日韩精品福利| 蜜桃久久av一区| 欧美激情综合五月色丁香| 色偷偷久久人人79超碰人人澡| 亚洲国产精品嫩草影院| 欧美一卡二卡在线观看| 国产馆精品极品| 亚洲人成亚洲人成在线观看图片| 欧美色图在线观看| 精品制服美女丁香| 国产精品久久久久久福利一牛影视| 91国产免费观看| 美女性感视频久久| 国产精品美女久久久久久久| 91蝌蚪porny| 日本不卡中文字幕| 国产日韩视频一区二区三区| av午夜一区麻豆| 午夜精品免费在线| 国产午夜精品在线观看| 日本久久一区二区| 免费人成精品欧美精品 | 欧美放荡的少妇| 国产成人av电影| 亚洲一区欧美一区| 精品电影一区二区| 91免费视频观看| 久久国产精品免费| 亚洲人吸女人奶水| 精品久久久久久亚洲综合网| 一本色道久久综合亚洲aⅴ蜜桃 | 九色综合狠狠综合久久| |精品福利一区二区三区| 91精品国产aⅴ一区二区| 成人性生交大片免费看中文网站| 亚洲va欧美va人人爽| 国产欧美中文在线| 欧美日韩国产乱码电影| 成人午夜短视频| 日本美女一区二区三区视频| 国产精品久久久久永久免费观看 | 欧美日韩国产综合一区二区| 国产不卡视频一区二区三区| 亚洲高清免费视频| 国产精品乱人伦中文| 日韩欧美久久一区| 日本精品视频一区二区| 国产一区二区福利视频| 日韩精品免费视频人成| 亚洲欧美日韩成人高清在线一区| 欧美成人精精品一区二区频| 在线亚洲一区二区| 成人免费高清视频在线观看| 九九九精品视频| 性做久久久久久久免费看| 亚洲欧洲制服丝袜| 欧美经典三级视频一区二区三区| 91精品国产综合久久久久久久久久 | 精品久久久久久亚洲综合网 | 91亚洲大成网污www| 国产精品中文欧美| 免费欧美高清视频| 亚洲自拍偷拍欧美| 最近日韩中文字幕| 国产拍欧美日韩视频二区| 欧美va在线播放| 欧美精品亚洲二区| 欧美色视频在线| 色婷婷精品大在线视频| 成人国产精品免费| 风流少妇一区二区| 国产精品一线二线三线精华| 免费成人av在线| 天天色综合成人网| 亚洲一区视频在线| 一区二区三区欧美日| √…a在线天堂一区| 国产精品视频免费看| 欧美激情一区二区在线| 欧美成人在线直播| 日韩亚洲欧美高清| 91精品国产欧美一区二区成人| 欧美久久久久久久久| 欧美日韩高清在线| 欧美日韩免费观看一区二区三区| 色婷婷av一区二区三区大白胸| 97精品国产露脸对白| 成人av电影在线网| 成+人+亚洲+综合天堂| 福利电影一区二区| jvid福利写真一区二区三区| 成人国产免费视频| av电影在线不卡| 91影院在线观看| 色94色欧美sute亚洲13| 在线一区二区三区四区| 欧美午夜片在线看| 欧美日韩视频一区二区| 欧美日本视频在线| 欧美精三区欧美精三区| 欧美一级高清片在线观看| 日韩亚洲欧美成人一区| 日韩精品一区二区三区四区视频 | 欧美成人在线直播| 久久久久久久精| 欧美国产日产图区| ...中文天堂在线一区| 亚洲男人天堂一区| 亚洲大片精品永久免费| 日欧美一区二区| 精品一区二区三区日韩| 国产精品资源站在线| 成人一级黄色片| 色综合久久综合| 在线不卡欧美精品一区二区三区| 日韩欧美三级在线| 久久久久久久综合日本| 国产精品国产三级国产专播品爱网 | 精品日产卡一卡二卡麻豆| 久久精品视频免费| 亚洲免费看黄网站| 五月婷婷激情综合| 精品一区二区三区免费观看| 国产黄色91视频| 色噜噜夜夜夜综合网| 欧美精品一卡两卡| 久久久久久日产精品| 亚洲色图一区二区| 日韩电影在线免费| 国产精品一区二区不卡| 一本久久精品一区二区| 777亚洲妇女| 中文字幕av不卡| 亚洲成人动漫av| 国产盗摄精品一区二区三区在线| 94-欧美-setu|