Changeset View
Changeset View
Standalone View
Standalone View
sys/arm64/include/atomic.h
| Show All 20 Lines | |||||
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
| * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
| * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
| * SUCH DAMAGE. | * SUCH DAMAGE. | ||||
| * | * | ||||
| * $FreeBSD$ | * $FreeBSD$ | ||||
| */ | */ | ||||
| #ifdef __arm__ | |||||
| #include <arm/atomic.h> | |||||
| #else /* !__arm__ */ | |||||
| #ifndef _MACHINE_ATOMIC_H_ | #ifndef _MACHINE_ATOMIC_H_ | ||||
| #define _MACHINE_ATOMIC_H_ | #define _MACHINE_ATOMIC_H_ | ||||
| #define isb() __asm __volatile("isb" : : : "memory") | #define isb() __asm __volatile("isb" : : : "memory") | ||||
| /* | /* | ||||
| * Options for DMB and DSB: | * Options for DMB and DSB: | ||||
| * oshld Outer Shareable, load | * oshld Outer Shareable, load | ||||
| ▲ Show 20 Lines • Show All 628 Lines • ▼ Show 20 Lines | |||||
| atomic_thread_fence_seq_cst(void) | atomic_thread_fence_seq_cst(void) | ||||
| { | { | ||||
| dmb(sy); | dmb(sy); | ||||
| } | } | ||||
| #endif /* KCSAN && !KCSAN_RUNTIME */ | #endif /* KCSAN && !KCSAN_RUNTIME */ | ||||
| #endif /* _MACHINE_ATOMIC_H_ */ | #endif /* _MACHINE_ATOMIC_H_ */ | ||||
| #endif /* !__arm__ */ | |||||