1 /* Renesas SH (32bit) only */
6 #define FIO_ARCH (arch_sh)
8 #ifndef __NR_ioprio_set
9 #define __NR_ioprio_set 288
10 #define __NR_ioprio_get 289
13 #ifndef __NR_fadvise64
14 #define __NR_fadvise64 250
17 #ifndef __NR_sys_splice
18 #define __NR_sys_splice 313
19 #define __NR_sys_tee 315
20 #define __NR_sys_vmsplice 316
23 #define nop __asm__ __volatile__ ("nop": : :"memory")
27 if (arch_flags & ARCH_FLAG_1) \
28 __asm__ __volatile__ ("synco": : :"memory"); \
30 __asm__ __volatile__ (" " : : : "memory"); \
33 #define read_barrier() mb()
34 #define write_barrier() mb()
39 extern unsigned long arch_flags;
41 #define CPU_HAS_LLSC 0x0040
43 static inline int arch_init(char *envp[])
47 while (*envp++ != NULL)
50 for (auxv = (Elf32_auxv_t *) envp; auxv->a_type != AT_NULL; auxv++) {
51 if (auxv->a_type == AT_HWCAP) {
52 if (auxv->a_un.a_val & CPU_HAS_LLSC) {
53 arch_flags |= ARCH_FLAG_1;
62 #define ARCH_HAVE_INIT