linux-011之io.h头文件
/硬件端口字节输出函数**参数:value-要输出的字节,port-端口*/#define outb(value,port)\__asm__("outb %%al,%%dx"::"a"(value),"d"(port));/*硬件端口输入函数*参数:port-端口。返回读取的字节*/#define intb(port)
·
/硬件端口字节输出函数*
*参数:value-要输出的字节,port-端口
*/
#define outb(value,port) \
__asm__("outb %%al,%%dx"::"a"(value),"d"(port));
/*硬件端口输入函数
*参数:port-端口。返回读取的字节
*/
#define intb(port) \
( \
{ \
unsigned char _v; \
_asm_ volatile("inb %%dx,%%al":"=a"(_v):"d"(port)); \
_v; \
}\
)
/*带延迟的硬件端口字节输出函数
*参数:value-要输出的字节,port-端口
*/
#define outb_p(value,port) \
__asm__("outb %%al,%%dx\n" \
"\tjmp 1f\n" \
"1:\tjmp 1f\n" \
"1:" \
: \
:"a"(value),"d"(port) \
);
/*带延迟的硬件端口字节输入函数
*参数:port-端口。返回读取字节
*/
#define inb_p(port) \
({ \
unsigned char _v; \
__asm__ volatile("inb %%dx,%%al\n" \
"\tjmp 1f\n" \
"1:\t jmp 1f\n" \
"1:" \
:"=a"(_v) \
:"d"(port) \
);\
_v;\
})
更多推荐
已为社区贡献7条内容
所有评论(0)