io.h

来自「2410 boot loader,usb ftp」· C头文件 代码 · 共 38 行

H
38
字号
#ifndef _IO_H_#define _IO_H_#include "../2410addr.h"/* * readX/writeX() are used to access memory mapped io devices.  * On the m68k architecture, we just read/write the memory location directly. */#define readb(addr) (*(volatile unsigned char *) (addr))#define readw(addr) (*(volatile unsigned short *) (addr))#define readl(addr) (*(volatile unsigned int *) (addr))#define writeb(b,addr) (void)((*(volatile unsigned char *) (addr)) = (b))#define writew(w,addr) (void)((*(volatile unsigned short *) (addr)) = (w))#define writel(l,addr) (void)((*(volatile unsigned int *) (addr)) = (l))#define orb(b,addr) (void)((*(volatile unsigned char *) (addr)) |= (b))#define orw(w,addr) (void)((*(volatile unsigned short *) (addr)) |= (w))#define orl(l,addr) (void)((*(volatile unsigned int *) (addr)) |= (l))#define andb(b,addr) (void)((*(volatile unsigned char *) (addr)) &= (b))#define andw(w,addr) (void)((*(volatile unsigned short *) (addr)) &= (w))#define andl(l,addr) (void)((*(volatile unsigned int *) (addr)) &= (l))#define setb(b,addr) orb((b),(addr))#define setw(w,addr) orw((w),(addr))#define setl(l,addr) orl((l),(addr))#define clrb(b,addr) andb(~(b),(addr))#define clrw(w,addr) andw(~(w),(addr))#define clrl(l,addr) andl(~(l),(addr))#define bit(b) (1<<(b))#endif /* _IO_H_ */

⌨️ 快捷键说明

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