Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/riscv/include/asm/fence.h
26471 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
#ifndef _ASM_RISCV_FENCE_H
3
#define _ASM_RISCV_FENCE_H
4
5
#define RISCV_FENCE_ASM(p, s) "\tfence " #p "," #s "\n"
6
#define RISCV_FENCE(p, s) \
7
({ __asm__ __volatile__ (RISCV_FENCE_ASM(p, s) : : : "memory"); })
8
9
#ifdef CONFIG_SMP
10
#define RISCV_ACQUIRE_BARRIER RISCV_FENCE_ASM(r, rw)
11
#define RISCV_RELEASE_BARRIER RISCV_FENCE_ASM(rw, w)
12
#define RISCV_FULL_BARRIER RISCV_FENCE_ASM(rw, rw)
13
#else
14
#define RISCV_ACQUIRE_BARRIER
15
#define RISCV_RELEASE_BARRIER
16
#define RISCV_FULL_BARRIER
17
#endif
18
19
#endif /* _ASM_RISCV_FENCE_H */
20
21