wm: teppich

ref: 05915e0626ff874f3c7786a46fc8d3e025ae1788
dir: /pc/x86.c/

View raw version
#include <u.h>

inline void 
instr(uint16 port, uint8* address, uint32 size)
{
	asm volatile("cld; rep insl" :
		"=D" (address), "=c" (size) :
		"d" (port), "0" (address), "1" (size) :
		"memory", "cc");
}

inline void
sti(void)
{
	asm volatile("sti");
}

inline void 
cli(void)
{
	asm volatile("cli");
}

inline void
nop(void)
{
	asm volatile("nop");
}