cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

compat_barrier.h (766B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/*
      3 * Copyright (C) 2018 ARM Limited
      4 */
      5#ifndef __COMPAT_BARRIER_H
      6#define __COMPAT_BARRIER_H
      7
      8#ifndef __ASSEMBLY__
      9/*
     10 * Warning: This code is meant to be used with
     11 * ENABLE_COMPAT_VDSO only.
     12 */
     13#ifndef ENABLE_COMPAT_VDSO
     14#error This header is meant to be used with ENABLE_COMPAT_VDSO only
     15#endif
     16
     17#ifdef dmb
     18#undef dmb
     19#endif
     20
     21#define dmb(option) __asm__ __volatile__ ("dmb " #option : : : "memory")
     22
     23#define aarch32_smp_mb()	dmb(ish)
     24#define aarch32_smp_rmb()	dmb(ishld)
     25#define aarch32_smp_wmb()	dmb(ishst)
     26
     27#undef smp_mb
     28#undef smp_rmb
     29#undef smp_wmb
     30
     31#define smp_mb()	aarch32_smp_mb()
     32#define smp_rmb()	aarch32_smp_rmb()
     33#define smp_wmb()	aarch32_smp_wmb()
     34
     35#endif /* !__ASSEMBLY__ */
     36
     37#endif /* __COMPAT_BARRIER_H */