irqflags.h (860B)
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * IRQ support for the Hexagon architecture 4 * 5 * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved. 6 */ 7 8#ifndef _ASM_IRQFLAGS_H 9#define _ASM_IRQFLAGS_H 10 11#include <asm/hexagon_vm.h> 12#include <linux/types.h> 13 14static inline unsigned long arch_local_save_flags(void) 15{ 16 return __vmgetie(); 17} 18 19static inline unsigned long arch_local_irq_save(void) 20{ 21 return __vmsetie(VM_INT_DISABLE); 22} 23 24static inline bool arch_irqs_disabled_flags(unsigned long flags) 25{ 26 return !flags; 27} 28 29static inline bool arch_irqs_disabled(void) 30{ 31 return !__vmgetie(); 32} 33 34static inline void arch_local_irq_enable(void) 35{ 36 __vmsetie(VM_INT_ENABLE); 37} 38 39static inline void arch_local_irq_disable(void) 40{ 41 __vmsetie(VM_INT_DISABLE); 42} 43 44static inline void arch_local_irq_restore(unsigned long flags) 45{ 46 __vmsetie(flags); 47} 48 49#endif