barrier.h (9a64e8e0ace51b309fdcff4b4754b3649250382a) barrier.h (db79e0292d4408261bb46b15ab6e4a40a8bb320d)
1/* SPDX-License-Identifier: GPL-2.0 */
1/*
2/*
2 * Copyright (C) 2006 Atmark Techno, Inc.
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
3 * Copyright (c) 2015 - 2020 Xilinx, Inc. All rights reserved.
7 */
8
9#ifndef _ASM_MICROBLAZE_BARRIER_H
10#define _ASM_MICROBLAZE_BARRIER_H
11
4 */
5
6#ifndef _ASM_MICROBLAZE_BARRIER_H
7#define _ASM_MICROBLAZE_BARRIER_H
8
12#define nop() asm volatile ("nop")
9#define mb() __asm__ __volatile__ ("mbar 1" : : : "memory")
13
10
14#define smp_read_barrier_depends() do {} while (0)
15#define read_barrier_depends() do {} while (0)
11#include <asm-generic/barrier.h>
16
12
17#define mb() barrier()
18#define rmb() mb()
19#define wmb() mb()
20#define set_mb(var, value) do { var = value; mb(); } while (0)
21#define set_wmb(var, value) do { var = value; wmb(); } while (0)
22
23#define smp_mb() mb()
24#define smp_rmb() rmb()
25#define smp_wmb() wmb()
26
27#endif /* _ASM_MICROBLAZE_BARRIER_H */
13#endif /* _ASM_MICROBLAZE_BARRIER_H */