xref: /openbmc/linux/arch/arm/include/asm/xen/events.h (revision b2441318)
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 Stabellini static 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 Grall static 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