summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/bus_dma.h
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2000-10-18 10:30:12 +0000
committerjhb <jhb@FreeBSD.org>2000-10-18 10:30:12 +0000
commita4104b417ea985c653c0668f77ffee40394327a6 (patch)
tree65f9ce24ef1b9657dabe0c1eb26b1faa5882ec1c /sys/i386/include/bus_dma.h
parent8aa01908ad19f43c27b74c89bcd456610e34b435 (diff)
downloadFreeBSD-src-a4104b417ea985c653c0668f77ffee40394327a6.zip
FreeBSD-src-a4104b417ea985c653c0668f77ffee40394327a6.tar.gz
Add in a simple API for memory barriers to machine/bus.h:
- barrier_read() enforces a memory read barrier - barrier_write() enforces a memory write barrier - barrier_rw() enforces a memory read/write barrier
Diffstat (limited to 'sys/i386/include/bus_dma.h')
-rw-r--r--sys/i386/include/bus_dma.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/sys/i386/include/bus_dma.h b/sys/i386/include/bus_dma.h
index 2d84400..3423e6b 100644
--- a/sys/i386/include/bus_dma.h
+++ b/sys/i386/include/bus_dma.h
@@ -1154,6 +1154,29 @@ bus_space_barrier(bus_space_tag_t tag, bus_space_handle_t bsh,
/*
+ * Generic memory barrier functions.
+ */
+static __inline void
+barrier_read(void)
+{
+ bus_space_barrier(I386_BUS_SPACE_MEM, 0, 0, ~0, BUS_SPACE_BARRIER_READ);
+}
+
+static __inline void
+barrier_write(void)
+{
+ bus_space_barrier(I386_BUS_SPACE_MEM, 0, 0, ~0,
+ BUS_SPACE_BARRIER_WRITE);
+}
+
+static __inline void
+barrier_rw(void)
+{
+ bus_space_barrier(I386_BUS_SPACE_MEM, 0, 0, ~0,
+ BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE);
+}
+
+/*
* Flags used in various bus DMA methods.
*/
#define BUS_DMA_WAITOK 0x00 /* safe to sleep (pseudo-flag) */
OpenPOWER on IntegriCloud