diff options
author | jhb <jhb@FreeBSD.org> | 2000-10-18 10:30:12 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2000-10-18 10:30:12 +0000 |
commit | a4104b417ea985c653c0668f77ffee40394327a6 (patch) | |
tree | 65f9ce24ef1b9657dabe0c1eb26b1faa5882ec1c /sys/ia64 | |
parent | 8aa01908ad19f43c27b74c89bcd456610e34b435 (diff) | |
download | FreeBSD-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/ia64')
-rw-r--r-- | sys/ia64/include/bus.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/sys/ia64/include/bus.h b/sys/ia64/include/bus.h index c054193..9bb2f76 100644 --- a/sys/ia64/include/bus.h +++ b/sys/ia64/include/bus.h @@ -1023,6 +1023,28 @@ bus_space_barrier(bus_space_tag_t tag, bus_space_handle_t bsh, ia64_mf(); } +/* + * Generic memory barrier functions. + */ +static __inline void +barrier_read(void) +{ + bus_space_barrier(IA64_BUS_SPACE_MEM, 0, 0, ~0, BUS_SPACE_BARRIER_READ); +} + +static __inline void +barrier_write(void) +{ + bus_space_barrier(IA64_BUS_SPACE_MEM, 0, 0, ~0, + BUS_SPACE_BARRIER_WRITE); +} + +static __inline void +barrier_rw(void) +{ + bus_space_barrier(IA64_BUS_SPACE_MEM, 0, 0, ~0, + BUS_SPACE_BARRIER_READ | BUS_SPACE_BARRIER_WRITE); +} /* * Flags used in various bus DMA methods. |