@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['null', 'turbo_sw', 'fpga_lte_fec', 'fpga_5gnr_fec']
config_flag_fmt = 'RTE_LIBRTE_PMD_BBDEV_@0@'
@@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2010-2018 Intel Corporation
+if host_machine.system() == 'windows'
+ build = false
+ reason = 'not supported on Windows'
+ subdir_done()
+endif
+
deps += ['pci', 'kvargs', 'rawdev']
install_headers('rte_bus_ifpga.h')
sources = files('ifpga_common.c', 'ifpga_bus.c')
@@ -4,16 +4,22 @@
deps += ['pci']
install_headers('rte_bus_pci.h')
sources = files('pci_common.c',
- 'pci_common_uio.c',
'pci_params.c')
if is_linux
- sources += files('linux/pci.c',
+ sources += files('pci_common_uio.c',
+ 'linux/pci.c',
'linux/pci_uio.c',
'linux/pci_vfio.c')
includes += include_directories('linux')
-else
- sources += files('bsd/pci.c')
+endif
+if host_machine.system() == 'bsd'
+ sources += files('pci_common_uio.c',
+ 'bsd/pci.c')
includes += include_directories('bsd')
endif
+if host_machine.system() == 'windows'
+ sources += files('windows/pci.c')
+ includes += include_directories('windows')
+endif
deps += ['kvargs']
@@ -10,8 +10,6 @@
#include <stdlib.h>
#include <stdio.h>
#include <sys/queue.h>
-#include <sys/mman.h>
-
#include <rte_errno.h>
#include <rte_interrupts.h>
#include <rte_log.h>
new file mode 100644
@@ -0,0 +1,169 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2020 Mellanox Technologies, Ltd
+ */
+#include <rte_errno.h>
+#include <rte_log.h>
+
+#include <rte_string_fns.h>
+#include <rte_eal_memconfig.h>
+
+#include "private.h"
+
+/* The functions below are not implemented on Windows,
+ * but need to be defined for compilation purposes
+ */
+
+/* Map pci device */
+int
+rte_pci_map_device(struct rte_pci_device *dev __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return 0;
+}
+
+/* Unmap pci device */
+void
+rte_pci_unmap_device(struct rte_pci_device *dev __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+}
+
+int
+pci_update_device(const struct rte_pci_addr *addr __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return 0;
+}
+
+/* Read PCI config space. */
+int
+rte_pci_read_config(const struct rte_pci_device *dev __rte_unused,
+ void *buf __rte_unused, size_t len __rte_unused,
+ off_t offset __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return 0;
+}
+
+/* Write PCI config space. */
+int
+rte_pci_write_config(const struct rte_pci_device *dev __rte_unused,
+ const void *buf __rte_unused, size_t len __rte_unused,
+ off_t offset __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return 0;
+}
+
+enum rte_iova_mode
+pci_device_iova_mode(const struct rte_pci_driver *pdrv __rte_unused,
+ const struct rte_pci_device *pdev __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return RTE_IOVA_DC;
+}
+
+int
+rte_pci_ioport_map(struct rte_pci_device *dev __rte_unused,
+ int bar __rte_unused, struct rte_pci_ioport *p __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return -1;
+}
+
+
+void
+rte_pci_ioport_read(struct rte_pci_ioport *p __rte_unused,
+ void *data __rte_unused, size_t len __rte_unused,
+ off_t offset __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+}
+
+int
+rte_pci_ioport_unmap(struct rte_pci_ioport *p __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return -1;
+}
+
+bool
+pci_device_iommu_support_va(const struct rte_pci_device *dev __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return false;
+}
+
+void
+rte_pci_ioport_write(struct rte_pci_ioport *p __rte_unused,
+ const void *data __rte_unused, size_t len __rte_unused,
+ off_t offset __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+}
+
+
+/* remap the PCI resource of a PCI device in anonymous virtual memory */
+int
+pci_uio_remap_resource(struct rte_pci_device *dev __rte_unused)
+{
+ /* This function is not implemented on Windows.
+ * We really should short-circuit the call to these functions by
+ * clearing the RTE_PCI_DRV_NEED_MAPPING flag
+ * in the rte_pci_driver flags.
+ */
+ return -1;
+}
+/*
+ * Scan the contents of the PCI bus
+ * and add all network class devices into the devices list.
+ */
+int
+rte_pci_scan(void)
+{
+ return 0;
+}
@@ -1,6 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
+if host_machine.system() == 'windows'
+ build = false
+ reason = 'not supported on Windows'
+ subdir_done()
+endif
+
sources = files('vdev.c',
'vdev_params.c')
install_headers('rte_bus_vdev.h')
@@ -1,5 +1,12 @@
# SPDX-License-Identifier: BSD-3-Clause
+if host_machine.system() == 'windows'
+ build = false
+ reason = 'not supported on Windows'
+ subdir_done()
+endif
+
+
install_headers('rte_bus_vmbus.h','rte_vmbus_reg.h')
sources = files('vmbus_common.c',
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Cavium, Inc
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
std_deps = ['eal']
drivers = ['cpt', 'dpaax', 'iavf', 'mlx5', 'mvep', 'octeontx', 'octeontx2', 'qat']
config_flag_fmt = 'RTE_LIBRTE_@0@_COMMON'
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2018 Intel Corporation
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['isal', 'octeontx', 'qat', 'zlib']
std_deps = ['compressdev'] # compressdev pulls in all other needed deps
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['aesni_gcm',
'aesni_mb',
'armv8',
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['dpaa', 'dpaa2', 'octeontx2', 'opdl', 'skeleton', 'sw', 'dsw']
if not (toolchain == 'gcc' and cc.version().version_compare('<4.8.6') and
dpdk_conf.has('RTE_ARCH_ARM64'))
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['bucket', 'dpaa', 'dpaa2', 'octeontx', 'octeontx2', 'ring', 'stack']
std_deps = ['mempool']
config_flag_fmt = 'RTE_LIBRTE_@0@_MEMPOOL'
@@ -1,10 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017-2019 Intel Corporation
-if is_windows
- subdir_done()
-endif
-
# Defines the order in which the drivers are buit.
dpdk_driver_classes = ['common',
'bus',
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017 Intel Corporation
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['af_packet',
'af_xdp',
'ark',
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2018 NXP
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['dpaa2_cmdif', 'dpaa2_qdma',
'ifpga', 'ioat', 'ntb',
'octeontx2_dma',
@@ -1,6 +1,10 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright 2019 Mellanox Technologies, Ltd
+if host_machine.system() == 'windows'
+ subdir_done()
+endif
+
drivers = ['ifc',
'mlx5',]
std_deps = ['bus_pci', 'kvargs']
@@ -8,6 +8,7 @@ if is_windows
'eal_common_bus.c',
'eal_common_class.c',
'eal_common_config.c',
+ 'eal_common_dev.c',
'eal_common_devargs.c',
'eal_common_dynmem.c',
'eal_common_errno.c',
@@ -3,6 +3,11 @@ EXPORTS
per_lcore__rte_errno
rte_calloc
rte_calloc_socket
+ per_lcore__rte_errno
+ rte_bus_register
+ rte_dev_is_probed
+ rte_devargs_next
+ rte_devargs_remove
rte_eal_get_configuration
rte_eal_has_hugepages
rte_eal_init
@@ -47,6 +52,9 @@ EXPORTS
rte_memzone_reserve_aligned
rte_memzone_reserve_bounded
rte_memzone_walk
+ rte_strsplit
+ rte_vfio_container_dma_map
+ rte_vfio_container_dma_unmap
rte_vlog
rte_realloc
rte_zmalloc
@@ -242,7 +242,7 @@ __rte_trace_point_register(rte_trace_point_t *trace, const char *name,
int
rte_eal_init(int argc, char **argv)
{
- int i, fctret;
+ int i, fctret, bscan;
rte_eal_log_init(NULL, 0);
@@ -317,6 +317,13 @@ rte_eal_init(int argc, char **argv)
eal_thread_init_master(rte_config.master_lcore);
+ bscan = rte_bus_scan();
+ if (bscan < 0) {
+ rte_eal_init_alert("Cannot init PCI");
+ rte_errno = ENODEV;
+ return -1;
+ }
+
RTE_LCORE_FOREACH_SLAVE(i) {
/*
@@ -345,3 +352,21 @@ rte_eal_init(int argc, char **argv)
rte_eal_mp_wait_lcore();
return fctret;
}
+
+int
+rte_vfio_container_dma_map(__rte_unused int container_fd,
+ __rte_unused uint64_t vaddr,
+ __rte_unused uint64_t iova,
+ __rte_unused uint64_t len)
+{
+ return -1;
+}
+
+int
+rte_vfio_container_dma_unmap(__rte_unused int container_fd,
+ __rte_unused uint64_t vaddr,
+ __rte_unused uint64_t iova,
+ __rte_unused uint64_t len)
+{
+ return -1;
+}
@@ -101,3 +101,17 @@ request_sync(void)
EAL_LOG_STUB();
return 0;
}
+
+int
+eal_dev_hotplug_request_to_primary(struct eal_dev_mp_req *req)
+{
+ RTE_SET_USED(req);
+ return 0;
+}
+
+int
+eal_dev_hotplug_request_to_secondary(struct eal_dev_mp_req *req)
+{
+ RTE_SET_USED(req);
+ return 0;
+}