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__ */ |