提交 1195b1b9 创建 作者: Silas Boyd-Wickizer's avatar Silas Boyd-Wickizer

outl and inl.

上级 ee4fac93
...@@ -28,6 +28,15 @@ inb(u16 port) ...@@ -28,6 +28,15 @@ inb(u16 port)
return data; return data;
} }
static inline u32
inl(u16 port)
{
u32 data = 0;
__asm volatile("inl %w1,%0" : "=a" (data) : "d" (port));
return data;
}
static inline void static inline void
outb(u16 port, u8 data) outb(u16 port, u8 data)
{ {
...@@ -35,6 +44,12 @@ outb(u16 port, u8 data) ...@@ -35,6 +44,12 @@ outb(u16 port, u8 data)
} }
static inline void static inline void
outl(u16 port, u32 data)
{
__asm volatile("outl %0,%w1" : : "a" (data), "d" (port));
}
static inline void
stosb(void *addr, int data, int cnt) stosb(void *addr, int data, int cnt)
{ {
__asm volatile("cld; rep stosb" : __asm volatile("cld; rep stosb" :
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论