Loading...
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * Copied from the kernel sources to tools/perf/:
4 *
5 * Generic barrier definitions.
6 *
7 * It should be possible to use these on really simple architectures,
8 * but it serves more as a starting point for new ports.
9 *
10 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
11 * Written by David Howells (dhowells@redhat.com)
12 */
13#ifndef __TOOLS_LINUX_ASM_GENERIC_BARRIER_H
14#define __TOOLS_LINUX_ASM_GENERIC_BARRIER_H
15
16#ifndef __ASSEMBLY__
17
18#include <linux/compiler.h>
19
20/*
21 * Force strict CPU ordering. And yes, this is required on UP too when we're
22 * talking to devices.
23 *
24 * Fall back to compiler barriers if nothing better is provided.
25 */
26
27#ifndef mb
28#define mb() barrier()
29#endif
30
31#ifndef rmb
32#define rmb() mb()
33#endif
34
35#ifndef wmb
36#define wmb() mb()
37#endif
38
39#endif /* !__ASSEMBLY__ */
40#endif /* __TOOLS_LINUX_ASM_GENERIC_BARRIER_H */
1/* SPDX-License-Identifier: GPL-2.0-or-later */
2/*
3 * Copied from the kernel sources to tools/perf/:
4 *
5 * Generic barrier definitions.
6 *
7 * It should be possible to use these on really simple architectures,
8 * but it serves more as a starting point for new ports.
9 *
10 * Copyright (C) 2007 Red Hat, Inc. All Rights Reserved.
11 * Written by David Howells (dhowells@redhat.com)
12 */
13#ifndef __TOOLS_LINUX_ASM_GENERIC_BARRIER_H
14#define __TOOLS_LINUX_ASM_GENERIC_BARRIER_H
15
16#ifndef __ASSEMBLY__
17
18#include <linux/compiler.h>
19
20/*
21 * Force strict CPU ordering. And yes, this is required on UP too when we're
22 * talking to devices.
23 *
24 * Fall back to compiler barriers if nothing better is provided.
25 */
26
27#ifndef mb
28#define mb() barrier()
29#endif
30
31#ifndef rmb
32#define rmb() mb()
33#endif
34
35#ifndef wmb
36#define wmb() mb()
37#endif
38
39#endif /* !__ASSEMBLY__ */
40#endif /* __TOOLS_LINUX_ASM_GENERIC_BARRIER_H */