diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-05-07 16:09:48 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2015-05-08 15:05:05 -0400 |
commit | 827634added7f38b7d724cab1dccdb2b004c13c3 (patch) | |
tree | 6b388182e643c6c906178b5dac30949d766b4aeb /tools/arch/sh | |
parent | c6e39db1d0284ff573f171b6754837d39b8a358d (diff) |
perf tools: Move sh barrier.h stuff to tools/arch/sh/include/asm/barrier.h
We will need it for atomic.h, so move it from the ad-hoc tools/perf/
place to a tools/ subset of the kernel arch/ hierarchy.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-6xqb97k782wqp1r3v6jqayki@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/arch/sh')
-rw-r--r-- | tools/arch/sh/include/asm/barrier.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tools/arch/sh/include/asm/barrier.h b/tools/arch/sh/include/asm/barrier.h new file mode 100644 index 000000000000..c18fd7599b97 --- /dev/null +++ b/tools/arch/sh/include/asm/barrier.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * Copied from the kernel sources: | ||
3 | * | ||
4 | * Copyright (C) 1999, 2000 Niibe Yutaka & Kaz Kojima | ||
5 | * Copyright (C) 2002 Paul Mundt | ||
6 | */ | ||
7 | #ifndef __TOOLS_LINUX_ASM_SH_BARRIER_H | ||
8 | #define __TOOLS_LINUX_ASM_SH_BARRIER_H | ||
9 | |||
10 | /* | ||
11 | * A brief note on ctrl_barrier(), the control register write barrier. | ||
12 | * | ||
13 | * Legacy SH cores typically require a sequence of 8 nops after | ||
14 | * modification of a control register in order for the changes to take | ||
15 | * effect. On newer cores (like the sh4a and sh5) this is accomplished | ||
16 | * with icbi. | ||
17 | * | ||
18 | * Also note that on sh4a in the icbi case we can forego a synco for the | ||
19 | * write barrier, as it's not necessary for control registers. | ||
20 | * | ||
21 | * Historically we have only done this type of barrier for the MMUCR, but | ||
22 | * it's also necessary for the CCR, so we make it generic here instead. | ||
23 | */ | ||
24 | #if defined(__SH4A__) || defined(__SH5__) | ||
25 | #define mb() __asm__ __volatile__ ("synco": : :"memory") | ||
26 | #define rmb() mb() | ||
27 | #define wmb() mb() | ||
28 | #endif | ||
29 | |||
30 | #include <asm-generic/barrier.h> | ||
31 | |||
32 | #endif /* __TOOLS_LINUX_ASM_SH_BARRIER_H */ | ||