From 4cddabc4f2b0bdb874bc490eff35fad0fae80c69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Mon, 2 Apr 2007 13:11:17 +0000 Subject: [PATCH] feat: ajout de fonctions I/O sur 4 octets --- include/asm.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/include/asm.h b/include/asm.h index f22609a..3faa994 100644 --- a/include/asm.h +++ b/include/asm.h @@ -3,6 +3,10 @@ #define cli() __asm__ ("cli"::) #define nop() __asm__ ("nop"::) #define iret() __asm__ ("iret"::) +#define pause() __asm__ ("iret"::) + +#define outbp(port,value) \ + asm volatile ("outb %%al,%%dx; jmp 1f; 1:"::"d" (port), "a" (value)); #define outb(port,value) \ asm volatile ("outb %%al,%%dx"::"d" (port), "a" (value)); @@ -10,6 +14,9 @@ #define outw(port,value) \ asm volatile ("outw %%ax,%%dx"::"d" (port), "a" (value)); +#define outd(port,value) \ + asm volatile ("outd %%eax,%%dx"::"d" (port), "a" (value)); + #define inb(port) ({ \ u8 _v; \ asm volatile ("inb %%dx,%%al" : "=a" (_v) : "d" (port)); \ @@ -20,4 +27,18 @@ u16 _v; \ asm volatile ("inw %%dx,%%ax" : "=a" (_v) : "d"(port)); \ _v; \ -}) \ No newline at end of file +} + +#define ind(port) ({ \ + u32 _v; \ + asm volatile ("ind %%dx,%%eax" : "=a" (_v) : "d"(port)); \ + _v; \ +} + +#define rolb(input,rotate) ({ \ + u32 _v; \ + asm volatile ("roll %1,%0" : "=g" (_v) : "cI" (rotate), "0" (input)); \ + _v; \ +} + +