[eros-cvs] cvs commit: eros/src/base/sys/eros/i486 io.h
shap@eros.cs.jhu.edu
shap@eros.cs.jhu.edu
Mon, 2 Jul 2001 13:02:08 -0400
shap 01/07/02 13:02:08
Modified: src/base/sys/eros/i486 io.h
Log:
Add insb/outsb
Revision Changes Path
1.3 +27 -11 eros/src/base/sys/eros/i486/io.h
Index: io.h
===================================================================
RCS file: /cvs/eros/src/base/sys/eros/i486/io.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- io.h 2001/07/02 16:56:21 1.2
+++ io.h 2001/07/02 17:02:08 1.3
@@ -130,14 +130,6 @@
return _v;
}
-static inline void
-ins16(uint16_t port, void *addr, uint32_t count)
-{
- GNU_INLINE_ASM ("cld; rep; insw"
- : "=D" (addr), "=c" (count)
- : "d" (port), "0" (addr), "1" (count));
-}
-
#if 0
#ifdef GNU_INLINE_ASM
static inline void
@@ -165,16 +157,40 @@
#endif /* GNU_INLINE_ASM */
#endif
+static inline void
+insb(uint16_t port, void *addr, uint32_t count)
+{
+ GNU_INLINE_ASM ("cld; rep; insb"
+ : "=D" (addr), "=c" (count)
+ : "d" (port), "0" (addr), "1" (count));
+}
+
static inline void
-ins32(uint16_t port, void *addr, uint32_t count)
+insw(uint16_t port, void *addr, uint32_t count)
{
+ GNU_INLINE_ASM ("cld; rep; insw"
+ : "=D" (addr), "=c" (count)
+ : "d" (port), "0" (addr), "1" (count));
+}
+
+static inline void
+insl(uint16_t port, void *addr, uint32_t count)
+{
GNU_INLINE_ASM ("cld; rep; insl"
: "=D" (addr), "=c" (count)
: "d" (port), "0" (addr), "1" (count));
}
+static inline void
+outsw(uint16_t port, void *addr, uint32_t count)
+{
+ GNU_INLINE_ASM ("cld; rep; outsb"
+ : "=S" (addr), "=c" (count)
+ : "d" (port), "0" (addr), "1" (count));
+}
+
static inline void
-outs16(uint16_t port, void *addr, uint32_t count)
+outsw(uint16_t port, void *addr, uint32_t count)
{
GNU_INLINE_ASM ("cld; rep; outsw"
: "=S" (addr), "=c" (count)
@@ -182,7 +198,7 @@
}
static inline void
-outs32(uint16_t port, void *addr, uint32_t count)
+outsl(uint16_t port, void *addr, uint32_t count)
{
GNU_INLINE_ASM ("cld; rep; outsl"
: "=S" (addr), "=c" (count)