cache_insns_32.h 642 B

1234567891011121314151617181920212223
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ASM_SH_CACHE_INSNS_32_H
  3. #define __ASM_SH_CACHE_INSNS_32_H
  4. #include <linux/types.h>
  5. #if defined(CONFIG_CPU_SH4A)
  6. #define __icbi(addr) __asm__ __volatile__ ( "icbi @%0\n\t" : : "r" (addr))
  7. #else
  8. #define __icbi(addr) mb()
  9. #endif
  10. #define __ocbp(addr) __asm__ __volatile__ ( "ocbp @%0\n\t" : : "r" (addr))
  11. #define __ocbi(addr) __asm__ __volatile__ ( "ocbi @%0\n\t" : : "r" (addr))
  12. #define __ocbwb(addr) __asm__ __volatile__ ( "ocbwb @%0\n\t" : : "r" (addr))
  13. static inline reg_size_t register_align(void *val)
  14. {
  15. return (unsigned long)(signed long)val;
  16. }
  17. #endif /* __ASM_SH_CACHE_INSNS_32_H */