Lines Matching +full:flags +full:- +full:mask
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (C) 2020-2022 Loongson Technology Corporation Limited
16 u32 flags = CSR_CRMD_IE; in arch_local_irq_enable() local
17 register u32 mask asm("t0") = CSR_CRMD_IE; in arch_local_irq_enable()
20 "csrxchg %[val], %[mask], %[reg]\n\t" in arch_local_irq_enable()
21 : [val] "+r" (flags) in arch_local_irq_enable()
22 : [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD) in arch_local_irq_enable()
28 u32 flags = 0; in arch_local_irq_disable() local
29 register u32 mask asm("t0") = CSR_CRMD_IE; in arch_local_irq_disable()
32 "csrxchg %[val], %[mask], %[reg]\n\t" in arch_local_irq_disable()
33 : [val] "+r" (flags) in arch_local_irq_disable()
34 : [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD) in arch_local_irq_disable()
40 u32 flags = 0; in arch_local_irq_save() local
41 register u32 mask asm("t0") = CSR_CRMD_IE; in arch_local_irq_save()
44 "csrxchg %[val], %[mask], %[reg]\n\t" in arch_local_irq_save()
45 : [val] "+r" (flags) in arch_local_irq_save()
46 : [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD) in arch_local_irq_save()
48 return flags; in arch_local_irq_save()
51 static inline void arch_local_irq_restore(unsigned long flags) in arch_local_irq_restore() argument
53 register u32 mask asm("t0") = CSR_CRMD_IE; in arch_local_irq_restore()
56 "csrxchg %[val], %[mask], %[reg]\n\t" in arch_local_irq_restore()
57 : [val] "+r" (flags) in arch_local_irq_restore()
58 : [mask] "r" (mask), [reg] "i" (LOONGARCH_CSR_CRMD) in arch_local_irq_restore()
64 u32 flags; in arch_local_save_flags() local
67 : [val] "=r" (flags) in arch_local_save_flags()
70 return flags; in arch_local_save_flags()
73 static inline int arch_irqs_disabled_flags(unsigned long flags) in arch_irqs_disabled_flags() argument
75 return !(flags & CSR_CRMD_IE); in arch_irqs_disabled_flags()