linux/arch/hexagon/include/asm/irqflags.h
<<
>>
Prefs
   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
  50