io.h

来自「Intel PXA270的bootloader程序,在linux环境下运行的.」· C头文件 代码 · 共 33 行

H
33
字号
#ifndef _IO_H#define _IO_H#define readb(c)			(*(volatile uint8  *)(c))#define readw(c)			(*(volatile uint16 *)(c))#define readl(c)			(*(volatile uint32 *)(c))#define writeb(v, c)		(*(volatile uint8  *)(c) = (v))#define writew(v, c)		(*(volatile uint16 *)(c) = (v))#define writel(v, c)		(*(volatile uint32 *)(c) = (v))#define __io(a)				(a)#define inb(p)				readb(__io(p))#define inw(p)				readw(__io(p))#define inl(p)				readl(__io(p))#define outb(v, p)			writeb(v, __io(p))#define outw(v, p)			writew(v, __io(p))#define outl(v, p)			writel(v, __io(p))#define insb(p, d, cnt)		({ int c=cnt; uint8  *s=(uint8 *)(d);  while (c--) *s++ = inb(p); })#define insw(p, d, cnt)		({ int c=cnt; uint16 *s=(uint16 *)(d); while (c--) *s++ = inw(p); })#define insl(p, d, cnt)		({ int c=cnt; uint32 *s=(uint32 *)(d); while (c--) *s++ = inl(p); })#define outsb(p, d, cnt)	({ int c=cnt; uint8  *s=(uint8  *)(d); while (c--) outb(*s++, p); })#define outsw(p, d, cnt)	({ int c=cnt; uint16 *s=(uint16 *)(d); while (c--) outw(*s++, p); })#define outsl(p, d, cnt)	({ int c=cnt; uint32 *s=(uint32 *)(d); while (c--) outl(*s++, p); })#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?