X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fvirtio%2Fmeson.build;h=d78b8278c6764850f152cc0fd7eb9db36bdad87e;hb=d2d9f93046d821ed387ce14ec6ded55e15f0a525;hp=794905401db09af90b14003c8ab61622241468b9;hpb=adf93ca564c73183e1c705cd7f35b98f3a660228;p=dpdk.git diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build index 794905401d..d78b8278c6 100644 --- a/drivers/net/virtio/meson.build +++ b/drivers/net/virtio/meson.build @@ -1,27 +1,57 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2018 Intel Corporation -allow_experimental_apis = true -sources += files('virtio_ethdev.c', - 'virtio_pci.c', - 'virtio_rxtx.c', - 'virtio_rxtx_simple.c', - 'virtqueue.c') +if is_windows + build = false + reason = 'not supported on Windows' + subdir_done() +endif + +sources += files( + 'virtio.c', + 'virtio_ethdev.c', + 'virtio_pci_ethdev.c', + 'virtio_pci.c', + 'virtio_rxtx.c', + 'virtio_rxtx_simple.c', + 'virtqueue.c', +) deps += ['kvargs', 'bus_pci'] if arch_subdir == 'x86' - sources += files('virtio_rxtx_simple_sse.c') -elif arch_subdir == 'arm' and host_machine.cpu_family().startswith('aarch64') - sources += files('virtio_rxtx_simple_neon.c') + if not machine_args.contains('-mno-avx512f') + if cc.has_argument('-mavx512f') and cc.has_argument('-mavx512vl') and cc.has_argument('-mavx512bw') + cflags += ['-DCC_AVX512_SUPPORT'] + virtio_avx512_lib = static_library('virtio_avx512_lib', + 'virtio_rxtx_packed.c', + dependencies: [static_rte_ethdev, + static_rte_kvargs, static_rte_bus_pci], + include_directories: includes, + c_args: [cflags, '-mavx512f', '-mavx512bw', '-mavx512vl']) + objs += virtio_avx512_lib.extract_objects('virtio_rxtx_packed.c') + if (toolchain == 'gcc' and cc.version().version_compare('>=8.3.0')) + cflags += '-DVIRTIO_GCC_UNROLL_PRAGMA' + elif (toolchain == 'clang' and cc.version().version_compare('>=3.7.0')) + cflags += '-DVIRTIO_CLANG_UNROLL_PRAGMA' + elif (toolchain == 'icc' and cc.version().version_compare('>=16.0.0')) + cflags += '-DVIRTIO_ICC_UNROLL_PRAGMA' + endif + endif + endif + sources += files('virtio_rxtx_simple_sse.c') +elif arch_subdir == 'ppc' + sources += files('virtio_rxtx_simple_altivec.c') +elif arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64') + sources += files('virtio_rxtx_packed.c') + sources += files('virtio_rxtx_simple_neon.c') endif if is_linux - dpdk_conf.set('RTE_VIRTIO_USER', 1) - - sources += files('virtio_user_ethdev.c', - 'virtio_user/vhost_kernel.c', - 'virtio_user/vhost_kernel_tap.c', - 'virtio_user/vhost_user.c', - 'virtio_user/virtio_user_dev.c') - deps += ['bus_vdev'] + sources += files('virtio_user_ethdev.c', + 'virtio_user/vhost_kernel.c', + 'virtio_user/vhost_kernel_tap.c', + 'virtio_user/vhost_user.c', + 'virtio_user/vhost_vdpa.c', + 'virtio_user/virtio_user_dev.c') + deps += ['bus_vdev'] endif