version 1.15, 2022/07/17 22:02:23 |
version 1.16, 2022/07/19 16:38:22 |
|
|
* doesn't pass around the bus space tag and handle needed for that. |
* doesn't pass around the bus space tag and handle needed for that. |
*/ |
*/ |
#if defined(__aarch64__) |
#if defined(__aarch64__) |
#define mb() __asm __volatile ("dsb sy" ::: "memory") |
#include <arm/cpufunc.h> |
#define wmb() __asm __volatile ("dsb st" ::: "memory") |
#define mb() dsb(sy) |
#define rmb() __asm __volatile ("dsb ld" ::: "memory") |
#define wmb() dsb(st) |
|
#define rmb() dsb(ld) |
#elif defined(__arm__) |
#elif defined(__arm__) |
#define mb() __asm __volatile ("dsb" ::: "memory") |
#include <arm/cpufunc.h> |
|
#define mb() dsb() |
#define wmb() mb() |
#define wmb() mb() |
#define rmb() mb() |
#define rmb() mb() |
#elif defined(__i386__) || defined(__x86_64__) |
#elif defined(__i386__) || defined(__x86_64__) |