18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _ASM_ARM_XEN_EVENTS_H 38c2ecf20Sopenharmony_ci#define _ASM_ARM_XEN_EVENTS_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <asm/ptrace.h> 68c2ecf20Sopenharmony_ci#include <asm/atomic.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cienum ipi_vector { 98c2ecf20Sopenharmony_ci XEN_PLACEHOLDER_VECTOR, 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci /* Xen IPIs go here */ 128c2ecf20Sopenharmony_ci XEN_NR_IPIS, 138c2ecf20Sopenharmony_ci}; 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistatic inline int xen_irqs_disabled(struct pt_regs *regs) 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci return raw_irqs_disabled_flags(regs->ARM_cpsr); 188c2ecf20Sopenharmony_ci} 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci#define xchg_xen_ulong(ptr, val) atomic64_xchg(container_of((long long*)(ptr),\ 218c2ecf20Sopenharmony_ci atomic64_t, \ 228c2ecf20Sopenharmony_ci counter), (val)) 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci/* Rebind event channel is supported by default */ 258c2ecf20Sopenharmony_cistatic inline bool xen_support_evtchn_rebind(void) 268c2ecf20Sopenharmony_ci{ 278c2ecf20Sopenharmony_ci return true; 288c2ecf20Sopenharmony_ci} 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#endif /* _ASM_ARM_XEN_EVENTS_H */ 31