xref: /linux/tools/arch/riscv/include/asm/fence.h (revision c771600c6af14749609b49565ffb4cac2959710d)
16d74d178SCharlie Jenkins /* SPDX-License-Identifier: GPL-2.0-only */
26d74d178SCharlie Jenkins /*
36d74d178SCharlie Jenkins  * Copied from the kernel sources to tools/arch/riscv:
46d74d178SCharlie Jenkins  */
56d74d178SCharlie Jenkins 
66d74d178SCharlie Jenkins #ifndef _ASM_RISCV_FENCE_H
76d74d178SCharlie Jenkins #define _ASM_RISCV_FENCE_H
86d74d178SCharlie Jenkins 
96d74d178SCharlie Jenkins #define RISCV_FENCE_ASM(p, s)		"\tfence " #p "," #s "\n"
106d74d178SCharlie Jenkins #define RISCV_FENCE(p, s) \
116d74d178SCharlie Jenkins 	({ __asm__ __volatile__ (RISCV_FENCE_ASM(p, s) : : : "memory"); })
126d74d178SCharlie Jenkins 
136d74d178SCharlie Jenkins #endif	/* _ASM_RISCV_FENCE_H */
14