| 12345678910111213141516171819 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- #ifndef _ASM_RISCV_FENCE_H
- #define _ASM_RISCV_FENCE_H
- #define RISCV_FENCE_ASM(p, s) "\tfence " #p "," #s "\n"
- #define RISCV_FENCE(p, s) \
- ({ __asm__ __volatile__ (RISCV_FENCE_ASM(p, s) : : : "memory"); })
- #ifdef CONFIG_SMP
- #define RISCV_ACQUIRE_BARRIER RISCV_FENCE_ASM(r, rw)
- #define RISCV_RELEASE_BARRIER RISCV_FENCE_ASM(rw, w)
- #define RISCV_FULL_BARRIER RISCV_FENCE_ASM(rw, rw)
- #else
- #define RISCV_ACQUIRE_BARRIER
- #define RISCV_RELEASE_BARRIER
- #define RISCV_FULL_BARRIER
- #endif
- #endif /* _ASM_RISCV_FENCE_H */
|