1 /* Renesas SH (32bit) only */
6 #define FIO_ARCH (arch_sh)
8 #define nop __asm__ __volatile__ ("nop": : :"memory")
12 if (arch_flags & ARCH_FLAG_1) \
13 __asm__ __volatile__ ("synco": : :"memory"); \
15 __asm__ __volatile__ (" " : : : "memory"); \
18 #define read_barrier() mb()
19 #define write_barrier() mb()
24 extern unsigned long arch_flags;
26 #define CPU_HAS_LLSC 0x0040
28 static inline int arch_init(char *envp[])
32 while (*envp++ != NULL)
35 for (auxv = (Elf32_auxv_t *) envp; auxv->a_type != AT_NULL; auxv++) {
36 if (auxv->a_type == AT_HWCAP) {
37 if (auxv->a_un.a_val & CPU_HAS_LLSC) {
38 arch_flags |= ARCH_FLAG_1;
47 #define ARCH_HAVE_INIT