1f5079a9aSStefano Stabellini /* SPDX-License-Identifier: GPL-2.0 */ 2f5079a9aSStefano Stabellini #ifndef _ASM_ARM_SWIOTLB_XEN_H 3f5079a9aSStefano Stabellini #define _ASM_ARM_SWIOTLB_XEN_H 4f5079a9aSStefano Stabellini 5*cb6f6b33SStefano Stabellini #include <xen/features.h> 6*cb6f6b33SStefano Stabellini #include <xen/xen.h> 7*cb6f6b33SStefano Stabellini xen_swiotlb_detect(void)8*cb6f6b33SStefano Stabellinistatic inline int xen_swiotlb_detect(void) 9*cb6f6b33SStefano Stabellini { 10*cb6f6b33SStefano Stabellini if (!xen_domain()) 11*cb6f6b33SStefano Stabellini return 0; 12*cb6f6b33SStefano Stabellini if (xen_feature(XENFEAT_direct_mapped)) 13*cb6f6b33SStefano Stabellini return 1; 14*cb6f6b33SStefano Stabellini /* legacy case */ 15*cb6f6b33SStefano Stabellini if (!xen_feature(XENFEAT_not_direct_mapped) && xen_initial_domain()) 16*cb6f6b33SStefano Stabellini return 1; 17*cb6f6b33SStefano Stabellini return 0; 18*cb6f6b33SStefano Stabellini } 19f5079a9aSStefano Stabellini 20f5079a9aSStefano Stabellini #endif /* _ASM_ARM_SWIOTLB_XEN_H */ 21