uboot/arch/arm/thumb1/include/asm/proc-armv/system.h
<<
>>
Prefs
   1/*
   2 *  Thumb-1 drop-in for the linux/include/asm-arm/proc-armv/system.h
   3 *
   4 *  (C) Copyright 2015
   5 *  Albert ARIBAUD <albert.u.boot@aribaud.net>
   6 *
   7 * The original file does not build in Thumb mode. However, in U-Boot
   8 * we don't use interrupt context, so we can redefine these as empty
   9 * memory barriers, which makes Thumb-1 compiler happy.
  10 *
  11 *  SPDX-License-Identifier:    GPL-2.0+
  12 */
  13
  14/*
  15 * Use the same macro name as linux/include/asm-arm/proc-armv/system.h
  16 * here, so that if the original ever gets included after us, it won't
  17 * try to re-redefine anything.
  18 */
  19
  20#ifndef __ASM_PROC_SYSTEM_H
  21#define __ASM_PROC_SYSTEM_H
  22
  23/*
  24 * Redefine all original macros with static inline functions containing
  25 * a simple memory barrier, so that they produce the same instruction
  26 * ordering constraints as their original counterparts.
  27 * We use static inline functions rather than macros so that we can tell
  28 * the compiler to not complain about unused arguments.
  29 */
  30
  31static inline void local_irq_save(
  32        unsigned long flags __attribute__((unused)))
  33{
  34        __asm__ __volatile__ ("" : : : "memory");
  35}
  36
  37static inline void local_irq_enable(void)
  38{
  39        __asm__ __volatile__ ("" : : : "memory");
  40}
  41
  42static inline void local_irq_disable(void)
  43{
  44        __asm__ __volatile__ ("" : : : "memory");
  45}
  46
  47static inline void __stf(void)
  48{
  49        __asm__ __volatile__ ("" : : : "memory");
  50}
  51
  52static inline void __clf(void)
  53{
  54        __asm__ __volatile__ ("" : : : "memory");
  55}
  56
  57static inline void local_save_flags(
  58        unsigned long flags __attribute__((unused)))
  59{
  60        __asm__ __volatile__ ("" : : : "memory");
  61}
  62
  63static inline void local_irq_restore(
  64        unsigned long flags __attribute__((unused)))
  65{
  66        __asm__ __volatile__ ("" : : : "memory");
  67}
  68
  69#endif /*  __ASM_PROC_SYSTEM_H */
  70