18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef __UM_IRQFLAGS_H 38c2ecf20Sopenharmony_ci#define __UM_IRQFLAGS_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ciextern int get_signals(void); 68c2ecf20Sopenharmony_ciextern int set_signals(int enable); 78c2ecf20Sopenharmony_ciextern void block_signals(void); 88c2ecf20Sopenharmony_ciextern void unblock_signals(void); 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#define arch_local_save_flags arch_local_save_flags 118c2ecf20Sopenharmony_cistatic inline unsigned long arch_local_save_flags(void) 128c2ecf20Sopenharmony_ci{ 138c2ecf20Sopenharmony_ci return get_signals(); 148c2ecf20Sopenharmony_ci} 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#define arch_local_irq_restore arch_local_irq_restore 178c2ecf20Sopenharmony_cistatic inline void arch_local_irq_restore(unsigned long flags) 188c2ecf20Sopenharmony_ci{ 198c2ecf20Sopenharmony_ci set_signals(flags); 208c2ecf20Sopenharmony_ci} 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci#define arch_local_irq_enable arch_local_irq_enable 238c2ecf20Sopenharmony_cistatic inline void arch_local_irq_enable(void) 248c2ecf20Sopenharmony_ci{ 258c2ecf20Sopenharmony_ci unblock_signals(); 268c2ecf20Sopenharmony_ci} 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_ci#define arch_local_irq_disable arch_local_irq_disable 298c2ecf20Sopenharmony_cistatic inline void arch_local_irq_disable(void) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci block_signals(); 328c2ecf20Sopenharmony_ci} 338c2ecf20Sopenharmony_ci 348c2ecf20Sopenharmony_ci#define ARCH_IRQ_DISABLED 0 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#include <asm-generic/irqflags.h> 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci#endif 39