1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 20ec53ecfSStefano Stabellini #ifndef _ASM_ARM_XEN_EVENTS_H 30ec53ecfSStefano Stabellini #define _ASM_ARM_XEN_EVENTS_H 40ec53ecfSStefano Stabellini 50ec53ecfSStefano Stabellini #include <asm/ptrace.h> 685323a99SIan Campbell #include <asm/atomic.h> 70ec53ecfSStefano Stabellini 80ec53ecfSStefano Stabellini enum ipi_vector { 90ec53ecfSStefano Stabellini XEN_PLACEHOLDER_VECTOR, 100ec53ecfSStefano Stabellini 110ec53ecfSStefano Stabellini /* Xen IPIs go here */ 120ec53ecfSStefano Stabellini XEN_NR_IPIS, 130ec53ecfSStefano Stabellini }; 140ec53ecfSStefano Stabellini xen_irqs_disabled(struct pt_regs * regs)150ec53ecfSStefano Stabellinistatic inline int xen_irqs_disabled(struct pt_regs *regs) 160ec53ecfSStefano Stabellini { 170ec53ecfSStefano Stabellini return raw_irqs_disabled_flags(regs->ARM_cpsr); 180ec53ecfSStefano Stabellini } 190ec53ecfSStefano Stabellini 209cc91f21SArnd Bergmann #define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((long long*)(ptr),\ 2185323a99SIan Campbell atomic64_t, \ 2285323a99SIan Campbell counter), (val)) 23c81611c4SIan Campbell 244a5b6946SJulien Grall /* Rebind event channel is supported by default */ xen_support_evtchn_rebind(void)254a5b6946SJulien Grallstatic inline bool xen_support_evtchn_rebind(void) 264a5b6946SJulien Grall { 274a5b6946SJulien Grall return true; 284a5b6946SJulien Grall } 294a5b6946SJulien Grall 300ec53ecfSStefano Stabellini #endif /* _ASM_ARM_XEN_EVENTS_H */ 31