1# SPDX-License-Identifier: BSD-3-Clause 2# Copyright(c) 2018 Intel Corporation 3 4if is_windows 5 build = false 6 reason = 'not supported on Windows' 7 subdir_done() 8endif 9 10sources += files('virtio.c', 11 'virtio_ethdev.c', 12 'virtio_pci_ethdev.c', 13 'virtio_pci.c', 14 'virtio_rxtx.c', 15 'virtio_rxtx_simple.c', 16 'virtqueue.c') 17deps += ['kvargs', 'bus_pci'] 18 19if arch_subdir == 'x86' 20 if not machine_args.contains('-mno-avx512f') 21 if cc.has_argument('-mavx512f') and cc.has_argument('-mavx512vl') and cc.has_argument('-mavx512bw') 22 cflags += ['-DCC_AVX512_SUPPORT'] 23 virtio_avx512_lib = static_library('virtio_avx512_lib', 24 'virtio_rxtx_packed.c', 25 dependencies: [static_rte_ethdev, 26 static_rte_kvargs, static_rte_bus_pci], 27 include_directories: includes, 28 c_args: [cflags, '-mavx512f', '-mavx512bw', '-mavx512vl']) 29 objs += virtio_avx512_lib.extract_objects('virtio_rxtx_packed.c') 30 if (toolchain == 'gcc' and cc.version().version_compare('>=8.3.0')) 31 cflags += '-DVHOST_GCC_UNROLL_PRAGMA' 32 elif (toolchain == 'clang' and cc.version().version_compare('>=3.7.0')) 33 cflags += '-DVHOST_CLANG_UNROLL_PRAGMA' 34 elif (toolchain == 'icc' and cc.version().version_compare('>=16.0.0')) 35 cflags += '-DVHOST_ICC_UNROLL_PRAGMA' 36 endif 37 endif 38 endif 39 sources += files('virtio_rxtx_simple_sse.c') 40elif arch_subdir == 'ppc' 41 sources += files('virtio_rxtx_simple_altivec.c') 42elif arch_subdir == 'arm' and host_machine.cpu_family().startswith('aarch64') 43 sources += files('virtio_rxtx_packed.c') 44 sources += files('virtio_rxtx_simple_neon.c') 45endif 46 47if is_linux 48 sources += files('virtio_user_ethdev.c', 49 'virtio_user/vhost_kernel.c', 50 'virtio_user/vhost_kernel_tap.c', 51 'virtio_user/vhost_user.c', 52 'virtio_user/vhost_vdpa.c', 53 'virtio_user/virtio_user_dev.c') 54 deps += ['bus_vdev'] 55endif 56