wm: teppich

ref: 3cc6c38f1347e3a9d61f27d28dbafad7fe4cae7b
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");
}