xref: /openbmc/linux/include/xen/arm/swiotlb-xen.h (revision cb6f6b33)
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 Stabellini static 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