[dpdk-dev] [PATCH v2] build: list symbols exports in a single file

David Marchand david.marchand at redhat.com
Tue Apr 6 19:59:10 CEST 2021


Rather than have two files that keeps getting out of sync, let's
annotate the version.map to generate the Windows export file.

Note: Existing version.map annotation achieved with:
$ for dir in lib/librte_eal drivers/common/mlx5; do
    ./buildtools/map-list-symbol.sh $dir/*.map |
    while read file version sym; do
      ! git grep -qw $sym $dir/*.def || continue;
      sed -i -e "s/$sym;/$sym; # WINDOWS_NO_EXPORT/" $dir/*.map;
    done;
  done

Signed-off-by: David Marchand <david.marchand at redhat.com>
---
Changes since v1:
- removed unused python imports in map_to_win.py,
- fixed symbol map check to ignore comments,
- aligned common/mlx5 map with exports.def (all symbols exported by
  Windows are available in Linux too),
- annotated common/mlx5 map,
- updated SPDX check,
- updated ABI update tool,

---
 MAINTAINERS                                   |   1 -
 buildtools/map_to_win.py                      |   9 +-
 devtools/check-spdx-tag.sh                    |   2 +-
 devtools/check-symbol-maps.sh                 |  22 +-
 devtools/update_version_map_abi.py            |  12 +-
 .../common/mlx5/rte_common_mlx5_exports.def   |  75 ----
 drivers/common/mlx5/version.map               |  79 ++--
 lib/librte_eal/rte_eal_exports.def            | 336 ------------------
 lib/librte_eal/version.map                    | 136 +++----
 9 files changed, 123 insertions(+), 549 deletions(-)
 delete mode 100644 drivers/common/mlx5/rte_common_mlx5_exports.def
 delete mode 100644 lib/librte_eal/rte_eal_exports.def

diff --git a/MAINTAINERS b/MAINTAINERS
index 0ec5588540..f2d600d0cf 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -333,7 +333,6 @@ M: Narcisa Ana Maria Vasile <navasile at linux.microsoft.com>
 M: Dmitry Malloy <dmitrym at microsoft.com>
 M: Pallavi Kadam <pallavi.kadam at intel.com>
 F: lib/librte_eal/windows/
-F: lib/librte_eal/rte_eal_exports.def
 F: buildtools/map_to_win.py
 F: doc/guides/windows_gsg/
 
diff --git a/buildtools/map_to_win.py b/buildtools/map_to_win.py
index 2a6cb88605..aa1752cacd 100644
--- a/buildtools/map_to_win.py
+++ b/buildtools/map_to_win.py
@@ -3,11 +3,10 @@
 # Copyright(c) 2019 Intel Corporation
 
 import sys
-from os.path import dirname, basename, join, exists
 
 
 def is_function_line(ln):
-    return ln.startswith('\t') and ln.endswith(';\n') and ":" not in ln
+    return ln.startswith('\t') and ln.endswith(';\n') and ":" not in ln and "# WINDOWS_NO_EXPORT" not in ln
 
 # MinGW keeps the original .map file but replaces per_lcore* to __emutls_v.per_lcore*
 def create_mingw_map_file(input_map, output_map):
@@ -24,12 +23,6 @@ def main(args):
         create_mingw_map_file(args[1], args[2])
         return 0
 
-# special case, allow override if an def file already exists alongside map file
-    override_file = join(dirname(args[1]), basename(args[2]))
-    if exists(override_file):
-        with open(override_file) as f_in:
-            functions = f_in.readlines()
-
 # generate def file from map file.
 # This works taking indented lines only which end with a ";" and which don't
 # have a colon in them, i.e. the lines defining functions only.
diff --git a/devtools/check-spdx-tag.sh b/devtools/check-spdx-tag.sh
index a0ec1ed5b6..3f2912e922 100755
--- a/devtools/check-spdx-tag.sh
+++ b/devtools/check-spdx-tag.sh
@@ -25,7 +25,7 @@ check_spdx() {
 	':^*/Kbuild' ':^*/README' \
 	':^license/' ':^config/' ':^buildtools/' \
 	':^*.cocci' ':^*.abignore' \
-	':^*.def' ':^*.map' ':^*.ini' ':^*.data' ':^*.cfg' ':^*.txt' \
+	':^*.map' ':^*.ini' ':^*.data' ':^*.cfg' ':^*.txt' \
 	':^*.svg' ':^*.png'\
 	> $tmpfile
 
diff --git a/devtools/check-symbol-maps.sh b/devtools/check-symbol-maps.sh
index c3cbcaf720..f06353fc75 100755
--- a/devtools/check-symbol-maps.sh
+++ b/devtools/check-symbol-maps.sh
@@ -12,7 +12,7 @@ ret=0
 find_orphan_symbols ()
 {
     for map in $(find lib drivers -name '*.map') ; do
-        for sym in $(sed -rn 's,^([^}]*_.*);,\1,p' $map) ; do
+        for sym in $(sed -rn 's,^([^}]*_.*);.*$,\1,p' $map) ; do
             if echo $sym | grep -q '^per_lcore_' ; then
                 symsrc=${sym#per_lcore_}
             elif echo $sym | grep -q '^__rte_.*_trace_' ; then
@@ -35,24 +35,4 @@ if [ -n "$orphan_symbols" ] ; then
     ret=1
 fi
 
-find_orphan_windows_symbols ()
-{
-    for def in $(find lib drivers -name '*_exports.def') ; do
-        if echo $def | grep -q 'common_mlx5' ; then
-            continue # mlx5 exports different symbols per OS
-        fi
-        map=$(dirname $def)/version.map
-        for sym in $(grep -v ^EXPORTS $def); do
-            grep -q $sym $map || echo $sym
-        done
-    done
-}
-
-orphan_windows_symbols=$(find_orphan_windows_symbols)
-if [ -n "$orphan_windows_symbols" ] ; then
-    echo "Found only in Windows export file:"
-    echo "$orphan_windows_symbols" | sed 's,^,\t,'
-    ret=1
-fi
-
 exit $ret
diff --git a/devtools/update_version_map_abi.py b/devtools/update_version_map_abi.py
index d3068bbd2d..d17b02a327 100755
--- a/devtools/update_version_map_abi.py
+++ b/devtools/update_version_map_abi.py
@@ -15,13 +15,17 @@
 
 
 def __parse_map_file(f_in):
-    # match function name, followed by semicolon, followed by EOL, optionally
-    # with whitespace in between each item
+    # match function name, followed by semicolon, followed by EOL or comments,
+    # optionally with whitespace in between each item
     func_line_regex = re.compile(r"\s*"
+                                 r"(?P<line>"
                                  r"(?P<func>[a-zA-Z_0-9]+)"
                                  r"\s*"
                                  r";"
                                  r"\s*"
+                                 r"(?P<comment>#.+)?"
+                                 r")"
+                                 r"\s*"
                                  r"$")
     # match section name, followed by opening bracked, followed by EOL,
     # optionally with whitespace in between each item
@@ -99,7 +103,7 @@ def __parse_map_file(f_in):
         # is this a function?
         match = func_line_regex.match(line)
         if match:
-            stable_lines.add(match.group("func"))
+            stable_lines.add(match.group("line"))
 
     return has_stable, stable_lines, experimental_lines, internal_lines
 
@@ -116,7 +120,7 @@ def __generate_stable_abi(f_out, abi_major, lines):
 
         # print all stable lines, alphabetically sorted
         for line in sorted(lines):
-            print("\t{};".format(line), file=f_out)
+            print("\t{}".format(line), file=f_out)
 
         # another blank line
         print(file=f_out)
diff --git a/drivers/common/mlx5/rte_common_mlx5_exports.def b/drivers/common/mlx5/rte_common_mlx5_exports.def
deleted file mode 100644
index fd62b806ca..0000000000
--- a/drivers/common/mlx5/rte_common_mlx5_exports.def
+++ /dev/null
@@ -1,75 +0,0 @@
-EXPORTS
-	haswell_broadwell_cpu
-
-	mlx5_common_init
-
-	mlx5_create_mr_ext
-
-	mlx5_devx_cmd_alloc_pd
-	mlx5_devx_cmd_create_cq
-	mlx5_devx_cmd_create_flex_parser
-	mlx5_devx_cmd_create_qp
-	mlx5_devx_cmd_create_rq
-	mlx5_devx_cmd_create_rqt
-	mlx5_devx_cmd_create_sq
-	mlx5_devx_cmd_create_tir
-	mlx5_devx_cmd_create_td
-	mlx5_devx_cmd_create_tis
-	mlx5_devx_cmd_create_virtq
-	mlx5_devx_cmd_destroy
-	mlx5_devx_cmd_flow_counter_alloc
-	mlx5_devx_cmd_flow_counter_query
-	mlx5_devx_cmd_flow_dump
-	mlx5_devx_cmd_mkey_create
-	mlx5_devx_cmd_modify_qp_state
-	mlx5_devx_cmd_modify_rq
-	mlx5_devx_cmd_modify_rqt
-	mlx5_devx_cmd_modify_sq
-	mlx5_devx_cmd_modify_tir
-	mlx5_devx_cmd_modify_virtq
-	mlx5_devx_cmd_qp_query_tis_td
-	mlx5_devx_cmd_query_hca_attr
-	mlx5_devx_cmd_query_parse_samples
-	mlx5_devx_cmd_query_virtq
-	mlx5_devx_cmd_register_read
-	mlx5_devx_get_out_command_status
-	mlx5_devx_cmd_create_flow_hit_aso_obj
-	mlx5_devx_cmd_create_geneve_tlv_option
-
-	mlx5_devx_cq_create
-	mlx5_devx_cq_destroy
-	mlx5_devx_rq_create
-	mlx5_devx_rq_destroy
-	mlx5_devx_sq_create
-	mlx5_devx_sq_destroy
-
-	mlx5_glue
-
-	mlx5_malloc_mem_select
-	mlx5_mr_btree_init
-	mlx5_mr_btree_free
-	mlx5_mr_btree_dump
-	mlx5_mr_addr2mr_bh
-	mlx5_mr_release_cache
-	mlx5_mr_dump_cache
-	mlx5_mr_rebuild_cache
-	mlx5_mr_insert_cache
-	mlx5_mr_lookup_cache
-	mlx5_mr_lookup_list
-	mlx5_mr_create_primary
-	mlx5_mr_flush_local_cache
-	mlx5_mp_req_queue_state_modify
-	mlx5_mr_free
-
-	mlx5_pci_driver_register
-
-	mlx5_malloc
-	mlx5_realloc
-	mlx5_free
-
-	mlx5_os_alloc_pd
-	mlx5_os_dealloc_pd
-	mlx5_os_dereg_mr
-	mlx5_os_reg_mr
-	mlx5_os_umem_reg
-	mlx5_os_umem_dereg
diff --git a/drivers/common/mlx5/version.map b/drivers/common/mlx5/version.map
index 91f3fa5779..299c17cd26 100644
--- a/drivers/common/mlx5/version.map
+++ b/drivers/common/mlx5/version.map
@@ -3,12 +3,12 @@ INTERNAL {
 
 	mlx5_common_init;
 
-	mlx5_common_verbs_reg_mr;
-	mlx5_common_verbs_dereg_mr;
+	mlx5_common_verbs_reg_mr; # WINDOWS_NO_EXPORT
+	mlx5_common_verbs_dereg_mr; # WINDOWS_NO_EXPORT
 
 	mlx5_create_mr_ext;
 
-	mlx5_dev_to_pci_addr;
+	mlx5_dev_to_pci_addr; # WINDOWS_NO_EXPORT
 
 	mlx5_devx_cmd_alloc_pd;
 	mlx5_devx_cmd_create_cq;
@@ -20,7 +20,7 @@ INTERNAL {
 	mlx5_devx_cmd_create_tir;
 	mlx5_devx_cmd_create_td;
 	mlx5_devx_cmd_create_tis;
-	mlx5_devx_cmd_create_virtio_q_counters;
+	mlx5_devx_cmd_create_virtio_q_counters; # WINDOWS_NO_EXPORT
 	mlx5_devx_cmd_create_virtq;
 	mlx5_devx_cmd_create_flow_hit_aso_obj;
 	mlx5_devx_cmd_create_geneve_tlv_option;
@@ -38,14 +38,14 @@ INTERNAL {
 	mlx5_devx_cmd_qp_query_tis_td;
 	mlx5_devx_cmd_query_hca_attr;
 	mlx5_devx_cmd_query_parse_samples;
-	mlx5_devx_cmd_query_virtio_q_counters;
+	mlx5_devx_cmd_query_virtio_q_counters; # WINDOWS_NO_EXPORT
 	mlx5_devx_cmd_query_virtq;
-	mlx5_devx_cmd_queue_counter_alloc;
-	mlx5_devx_cmd_queue_counter_query;
+	mlx5_devx_cmd_queue_counter_alloc; # WINDOWS_NO_EXPORT
+	mlx5_devx_cmd_queue_counter_query; # WINDOWS_NO_EXPORT
 	mlx5_devx_cmd_register_read;
-	mlx5_devx_cmd_wq_query;
+	mlx5_devx_cmd_wq_query; # WINDOWS_NO_EXPORT
 	mlx5_devx_get_out_command_status;
-	mlx5_devx_alloc_uar;
+	mlx5_devx_alloc_uar; # WINDOWS_NO_EXPORT
 
 	mlx5_devx_cq_create;
 	mlx5_devx_cq_destroy;
@@ -54,15 +54,15 @@ INTERNAL {
 	mlx5_devx_sq_create;
 	mlx5_devx_sq_destroy;
 
-	mlx5_get_ifname_sysfs;
+	mlx5_get_ifname_sysfs; # WINDOWS_NO_EXPORT
 
-	mlx5_mp_init_primary;
-	mlx5_mp_uninit_primary;
-	mlx5_mp_init_secondary;
-	mlx5_mp_uninit_secondary;
-	mlx5_mp_req_mr_create;
+	mlx5_mp_init_primary; # WINDOWS_NO_EXPORT
+	mlx5_mp_uninit_primary; # WINDOWS_NO_EXPORT
+	mlx5_mp_init_secondary; # WINDOWS_NO_EXPORT
+	mlx5_mp_uninit_secondary; # WINDOWS_NO_EXPORT
+	mlx5_mp_req_mr_create; # WINDOWS_NO_EXPORT
 	mlx5_mp_req_queue_state_modify;
-	mlx5_mp_req_verbs_cmd_fd;
+	mlx5_mp_req_verbs_cmd_fd; # WINDOWS_NO_EXPORT
 
 	mlx5_mr_btree_init;
 	mlx5_mr_btree_free;
@@ -78,31 +78,40 @@ INTERNAL {
 	mlx5_mr_flush_local_cache;
 	mlx5_mr_free;
 
-	mlx5_nl_allmulti;
-	mlx5_nl_devlink_family_id_get;
-	mlx5_nl_driver_reload;
-	mlx5_nl_enable_roce_get;
-	mlx5_nl_enable_roce_set;
-	mlx5_nl_ifindex;
-	mlx5_nl_init;
-	mlx5_nl_mac_addr_add;
-	mlx5_nl_mac_addr_flush;
-	mlx5_nl_mac_addr_remove;
-	mlx5_nl_mac_addr_sync;
-	mlx5_nl_portnum;
-	mlx5_nl_promisc;
-	mlx5_nl_switch_info;
-	mlx5_nl_vf_mac_addr_modify;
-	mlx5_nl_vlan_vmwa_create;
-	mlx5_nl_vlan_vmwa_delete;
+	mlx5_nl_allmulti; # WINDOWS_NO_EXPORT
+	mlx5_nl_devlink_family_id_get; # WINDOWS_NO_EXPORT
+	mlx5_nl_driver_reload; # WINDOWS_NO_EXPORT
+	mlx5_nl_enable_roce_get; # WINDOWS_NO_EXPORT
+	mlx5_nl_enable_roce_set; # WINDOWS_NO_EXPORT
+	mlx5_nl_ifindex; # WINDOWS_NO_EXPORT
+	mlx5_nl_init; # WINDOWS_NO_EXPORT
+	mlx5_nl_mac_addr_add; # WINDOWS_NO_EXPORT
+	mlx5_nl_mac_addr_flush; # WINDOWS_NO_EXPORT
+	mlx5_nl_mac_addr_remove; # WINDOWS_NO_EXPORT
+	mlx5_nl_mac_addr_sync; # WINDOWS_NO_EXPORT
+	mlx5_nl_portnum; # WINDOWS_NO_EXPORT
+	mlx5_nl_promisc; # WINDOWS_NO_EXPORT
+	mlx5_nl_switch_info; # WINDOWS_NO_EXPORT
+	mlx5_nl_vf_mac_addr_modify; # WINDOWS_NO_EXPORT
+	mlx5_nl_vlan_vmwa_create; # WINDOWS_NO_EXPORT
+	mlx5_nl_vlan_vmwa_delete; # WINDOWS_NO_EXPORT
 
-	mlx5_translate_port_name;
+	mlx5_translate_port_name; # WINDOWS_NO_EXPORT
 
 	mlx5_malloc_mem_select;
-	mlx5_memory_stat_dump;
+	mlx5_memory_stat_dump; # WINDOWS_NO_EXPORT
 	mlx5_malloc;
 	mlx5_realloc;
 	mlx5_free;
 
 	mlx5_pci_driver_register;
+
+	haswell_broadwell_cpu;
+	mlx5_glue;
+	mlx5_os_alloc_pd;
+	mlx5_os_dealloc_pd;
+	mlx5_os_dereg_mr;
+	mlx5_os_reg_mr;
+	mlx5_os_umem_reg;
+	mlx5_os_umem_dereg;
 };
diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def
deleted file mode 100644
index c320077547..0000000000
--- a/lib/librte_eal/rte_eal_exports.def
+++ /dev/null
@@ -1,336 +0,0 @@
-EXPORTS
-	__rte_panic
-	per_lcore__lcore_id
-	per_lcore__rte_errno
-	per_lcore__thread_id
-	rte_bus_dump
-	rte_bus_find
-	rte_bus_find_by_device
-	rte_bus_find_by_name
-	rte_bus_get_iommu_class
-	rte_bus_probe
-	rte_bus_register
-	rte_bus_scan
-	rte_bus_unregister
-	rte_calloc
-	rte_calloc_socket
-	rte_cpu_get_flag_enabled
-	rte_cpu_get_flag_name
-	rte_ctrl_thread_create
-	rte_delay_us
-	rte_delay_us_block
-	rte_delay_us_callback_register
-	rte_dev_is_probed
-	rte_dev_probe
-	rte_dev_remove
-	rte_devargs_add
-	rte_devargs_dump
-	rte_devargs_insert
-	rte_devargs_next
-	rte_devargs_parse
-	rte_devargs_parsef
-	rte_devargs_remove
-	rte_devargs_type_count
-	rte_dump_physmem_layout
-	rte_dump_stack
-	rte_dump_tailq
-	rte_eal_alarm_cancel
-	rte_eal_alarm_set
-	rte_eal_cleanup
-	rte_eal_get_lcore_state
-	rte_eal_get_physmem_size
-	rte_eal_get_runtime_dir
-	rte_eal_has_hugepages
-	rte_eal_has_pci
-	rte_eal_hotplug_add
-	rte_eal_hotplug_remove
-	rte_eal_init
-	rte_eal_iova_mode
-	rte_eal_lcore_role
-	rte_eal_mbuf_user_pool_ops
-	rte_eal_mp_remote_launch
-	rte_eal_mp_wait_lcore
-	rte_eal_process_type
-	rte_eal_remote_launch
-	rte_eal_tailq_lookup
-	rte_eal_tailq_register
-	rte_eal_using_phys_addrs
-	rte_eal_wait_lcore
-	rte_epoll_ctl
-	rte_epoll_wait
-	rte_exit
-	rte_free
-	rte_get_main_lcore
-	rte_get_next_lcore
-	rte_get_tsc_hz
-	rte_hexdump
-	rte_hypervisor_get
-	rte_intr_allow_others
-	rte_intr_callback_register
-	rte_intr_callback_unregister
-	rte_intr_cap_multiple
-	rte_intr_disable
-	rte_intr_dp_is_en
-	rte_intr_efd_disable
-	rte_intr_efd_enable
-	rte_intr_enable
-	rte_intr_free_epoll_fd
-	rte_intr_rx_ctl
-	rte_intr_tls_epfd
-	rte_lcore_count
-	rte_lcore_has_role
-	rte_lcore_index
-	rte_lcore_is_enabled
-	rte_lcore_to_socket_id
-	rte_log
-	rte_log_cur_msg_loglevel
-	rte_log_cur_msg_logtype
-	rte_log_dump
-	rte_log_get_global_level
-	rte_log_get_level
-	rte_log_get_stream
-	rte_log_register
-	rte_log_set_global_level
-	rte_log_set_level
-	rte_log_set_level_pattern
-	rte_log_set_level_regexp
-	rte_malloc
-	rte_malloc_dump_stats
-	rte_malloc_get_socket_stats
-	rte_malloc_set_limit
-	rte_malloc_socket
-	rte_malloc_validate
-	rte_malloc_virt2iova
-	rte_mcfg_mem_read_lock
-	rte_mcfg_mem_read_unlock
-	rte_mcfg_mem_write_lock
-	rte_mcfg_mem_write_unlock
-	rte_mcfg_mempool_read_lock
-	rte_mcfg_mempool_read_unlock
-	rte_mcfg_mempool_write_lock
-	rte_mcfg_mempool_write_unlock
-	rte_mcfg_tailq_read_lock
-	rte_mcfg_tailq_read_unlock
-	rte_mcfg_tailq_write_lock
-	rte_mcfg_tailq_write_unlock
-	rte_mem_lock_page
-	rte_mem_virt2iova
-	rte_mem_virt2phy
-	rte_memdump
-	rte_memory_get_nchannel
-	rte_memory_get_nrank
-	rte_memzone_dump
-	rte_memzone_free
-	rte_memzone_lookup
-	rte_memzone_reserve
-	rte_memzone_reserve_aligned
-	rte_memzone_reserve_bounded
-	rte_memzone_walk
-	rte_openlog_stream
-	rte_rand
-	rte_realloc
-	rte_reciprocal_value
-	rte_reciprocal_value_u64
-	rte_rtm_supported
-	rte_service_attr_get
-	rte_service_attr_reset_all
-	rte_service_component_register
-	rte_service_component_runstate_set
-	rte_service_component_unregister
-	rte_service_dump
-	rte_service_finalize
-	rte_service_get_by_name
-	rte_service_get_count
-	rte_service_get_name
-	rte_service_lcore_add
-	rte_service_lcore_attr_get
-	rte_service_lcore_attr_reset_all
-	rte_service_lcore_count
-	rte_service_lcore_count_services
-	rte_service_lcore_del
-	rte_service_lcore_list
-	rte_service_lcore_reset_all
-	rte_service_lcore_start
-	rte_service_lcore_stop
-	rte_service_map_lcore_get
-	rte_service_map_lcore_set
-	rte_service_may_be_active
-	rte_service_probe_capability
-	rte_service_run_iter_on_app_lcore
-	rte_service_runstate_get
-	rte_service_runstate_set
-	rte_service_set_runstate_mapped_check
-	rte_service_set_stats_enable
-	rte_service_start_with_defaults
-	rte_set_application_usage_hook
-	rte_socket_count
-	rte_socket_id
-	rte_socket_id_by_idx
-	rte_strerror
-	rte_strscpy
-	rte_strsplit
-	rte_sys_gettid
-	rte_thread_get_affinity
-	rte_thread_set_affinity
-	rte_thread_setname
-	rte_vfio_container_dma_map
-	rte_vfio_container_dma_unmap
-	rte_vlog
-	rte_zmalloc
-	rte_zmalloc_socket
-
-	rte_mp_action_register
-	rte_mp_action_unregister
-	rte_mp_reply
-	rte_mp_sendmsg
-
-	rte_dev_event_callback_register
-	rte_dev_event_callback_unregister
-	rte_fbarray_attach
-	rte_fbarray_destroy
-	rte_fbarray_detach
-	rte_fbarray_dump_metadata
-	rte_fbarray_find_contig_free
-	rte_fbarray_find_contig_used
-	rte_fbarray_find_idx
-	rte_fbarray_find_next_free
-	rte_fbarray_find_next_n_free
-	rte_fbarray_find_next_n_used
-	rte_fbarray_find_next_used
-	rte_fbarray_get
-	rte_fbarray_init
-	rte_fbarray_is_used
-	rte_fbarray_set_free
-	rte_fbarray_set_used
-	rte_log_register_type_and_pick_level
-	rte_malloc_dump_heaps
-	rte_mem_alloc_validator_register
-	rte_mem_alloc_validator_unregister
-	rte_mem_check_dma_mask
-	rte_mem_event_callback_register
-	rte_mem_event_callback_unregister
-	rte_mem_iova2virt
-	rte_mem_virt2memseg
-	rte_mem_virt2memseg_list
-	rte_memseg_contig_walk
-	rte_memseg_list_walk
-	rte_memseg_walk
-	rte_mp_request_async
-	rte_mp_request_sync
-
-	rte_class_find
-	rte_class_find_by_name
-	rte_class_register
-	rte_class_unregister
-	rte_dev_iterator_init
-	rte_dev_iterator_next
-	rte_fbarray_find_prev_free
-	rte_fbarray_find_prev_n_free
-	rte_fbarray_find_prev_n_used
-	rte_fbarray_find_prev_used
-	rte_fbarray_find_rev_contig_free
-	rte_fbarray_find_rev_contig_used
-	rte_memseg_contig_walk_thread_unsafe
-	rte_memseg_list_walk_thread_unsafe
-	rte_memseg_walk_thread_unsafe
-
-	rte_delay_us_sleep
-	rte_dev_event_callback_process
-	rte_malloc_heap_create
-	rte_malloc_heap_destroy
-	rte_malloc_heap_get_socket
-	rte_malloc_heap_memory_add
-	rte_malloc_heap_memory_attach
-	rte_malloc_heap_memory_detach
-	rte_malloc_heap_memory_remove
-	rte_malloc_heap_socket_is_external
-	rte_mem_check_dma_mask_thread_unsafe
-	rte_mem_set_dma_mask
-	rte_memseg_get_fd
-	rte_memseg_get_fd_offset
-	rte_memseg_get_fd_offset_thread_unsafe
-	rte_memseg_get_fd_thread_unsafe
-
-	rte_extmem_attach
-	rte_extmem_detach
-	rte_extmem_register
-	rte_extmem_unregister
-
-	rte_dev_dma_map
-	rte_dev_dma_unmap
-	rte_fbarray_find_biggest_free
-	rte_fbarray_find_biggest_used
-	rte_fbarray_find_rev_biggest_free
-	rte_fbarray_find_rev_biggest_used
-	rte_intr_callback_unregister_pending
-	rte_realloc_socket
-
-	rte_intr_ack
-	rte_lcore_cpuset
-	rte_lcore_to_cpu_id
-	rte_mcfg_timer_lock
-	rte_mcfg_timer_unlock
-	rte_mcfg_get_single_file_segments
-
-	rte_thread_is_intr
-
-	__rte_eal_trace_alarm_cancel
-	__rte_eal_trace_alarm_set
-	__rte_eal_trace_generic_double
-	__rte_eal_trace_generic_float
-	__rte_eal_trace_generic_func
-	__rte_eal_trace_generic_i16
-	__rte_eal_trace_generic_i32
-	__rte_eal_trace_generic_i64
-	__rte_eal_trace_generic_i8
-	__rte_eal_trace_generic_int
-	__rte_eal_trace_generic_long
-	__rte_eal_trace_generic_ptr
-	__rte_eal_trace_generic_str
-	__rte_eal_trace_generic_u16
-	__rte_eal_trace_generic_u32
-	__rte_eal_trace_generic_u64
-	__rte_eal_trace_generic_u8
-	__rte_eal_trace_generic_void
-	__rte_eal_trace_intr_callback_register
-	__rte_eal_trace_intr_callback_unregister
-	__rte_eal_trace_intr_enable
-	__rte_eal_trace_intr_disable
-	__rte_eal_trace_mem_free
-	__rte_eal_trace_mem_malloc
-	__rte_eal_trace_mem_realloc
-	__rte_eal_trace_mem_zmalloc
-	__rte_eal_trace_memzone_free
-	__rte_eal_trace_memzone_lookup
-	__rte_eal_trace_memzone_reserve
-	__rte_eal_trace_thread_lcore_ready
-	__rte_eal_trace_thread_remote_launch
-	__rte_trace_mem_per_thread_alloc
-	__rte_trace_point_emit_field
-	__rte_trace_point_register
-	per_lcore_trace_mem
-	per_lcore_trace_point_sz
-	rte_log_can_log
-
-	rte_lcore_callback_register
-	rte_lcore_callback_unregister
-	rte_lcore_dump
-	rte_lcore_iterate
-	rte_mp_disable
-	rte_service_lcore_may_be_active
-	rte_thread_register
-	rte_thread_unregister
-
-	rte_epoll_wait_interruptible
-	rte_vect_get_max_simd_bitwidth
-	rte_vect_set_max_simd_bitwidth
-
-	rte_thread_key_create
-	rte_thread_key_delete
-	rte_thread_value_get
-	rte_thread_value_set
-
-	rte_mem_lock
-	rte_mem_map
-	rte_mem_page_size
-	rte_mem_unmap
diff --git a/lib/librte_eal/version.map b/lib/librte_eal/version.map
index e23745ae6e..151330b1b5 100644
--- a/lib/librte_eal/version.map
+++ b/lib/librte_eal/version.map
@@ -2,8 +2,8 @@ DPDK_21 {
 	global:
 
 	__rte_panic;
-	eal_parse_sysfs_value;
-	eal_timer_source;
+	eal_parse_sysfs_value; # WINDOWS_NO_EXPORT
+	eal_timer_source; # WINDOWS_NO_EXPORT
 	per_lcore__lcore_id;
 	per_lcore__rte_errno;
 	per_lcore__thread_id;
@@ -20,9 +20,9 @@ DPDK_21 {
 	rte_calloc_socket;
 	rte_cpu_get_flag_enabled;
 	rte_cpu_get_flag_name;
-	rte_cpu_is_supported;
+	rte_cpu_is_supported; # WINDOWS_NO_EXPORT
 	rte_ctrl_thread_create;
-	rte_cycles_vmware_tsc_map;
+	rte_cycles_vmware_tsc_map; # WINDOWS_NO_EXPORT
 	rte_delay_us;
 	rte_delay_us_block;
 	rte_delay_us_callback_register;
@@ -43,7 +43,7 @@ DPDK_21 {
 	rte_eal_alarm_cancel;
 	rte_eal_alarm_set;
 	rte_eal_cleanup;
-	rte_eal_create_uio_dev;
+	rte_eal_create_uio_dev; # WINDOWS_NO_EXPORT
 	rte_eal_get_lcore_state;
 	rte_eal_get_physmem_size;
 	rte_eal_get_runtime_dir;
@@ -51,34 +51,34 @@ DPDK_21 {
 	rte_eal_has_pci;
 	rte_eal_hotplug_add;
 	rte_eal_hotplug_remove;
-	rte_eal_hpet_init;
+	rte_eal_hpet_init; # WINDOWS_NO_EXPORT
 	rte_eal_init;
-	rte_eal_iopl_init;
+	rte_eal_iopl_init; # WINDOWS_NO_EXPORT
 	rte_eal_iova_mode;
 	rte_eal_lcore_role;
 	rte_eal_mbuf_user_pool_ops;
 	rte_eal_mp_remote_launch;
 	rte_eal_mp_wait_lcore;
-	rte_eal_primary_proc_alive;
+	rte_eal_primary_proc_alive; # WINDOWS_NO_EXPORT
 	rte_eal_process_type;
 	rte_eal_remote_launch;
 	rte_eal_tailq_lookup;
 	rte_eal_tailq_register;
 	rte_eal_using_phys_addrs;
-	rte_eal_vfio_intr_mode;
+	rte_eal_vfio_intr_mode; # WINDOWS_NO_EXPORT
 	rte_eal_wait_lcore;
 	rte_epoll_ctl;
 	rte_epoll_wait;
 	rte_exit;
 	rte_free;
-	rte_get_hpet_cycles;
-	rte_get_hpet_hz;
+	rte_get_hpet_cycles; # WINDOWS_NO_EXPORT
+	rte_get_hpet_hz; # WINDOWS_NO_EXPORT
 	rte_get_main_lcore;
 	rte_get_next_lcore;
 	rte_get_tsc_hz;
 	rte_hexdump;
 	rte_hypervisor_get;
-	rte_hypervisor_get_name;
+	rte_hypervisor_get_name; # WINDOWS_NO_EXPORT
 	rte_intr_allow_others;
 	rte_intr_callback_register;
 	rte_intr_callback_unregister;
@@ -91,12 +91,12 @@ DPDK_21 {
 	rte_intr_free_epoll_fd;
 	rte_intr_rx_ctl;
 	rte_intr_tls_epfd;
-	rte_keepalive_create;
-	rte_keepalive_dispatch_pings;
-	rte_keepalive_mark_alive;
-	rte_keepalive_mark_sleep;
-	rte_keepalive_register_core;
-	rte_keepalive_register_relay_callback;
+	rte_keepalive_create; # WINDOWS_NO_EXPORT
+	rte_keepalive_dispatch_pings; # WINDOWS_NO_EXPORT
+	rte_keepalive_mark_alive; # WINDOWS_NO_EXPORT
+	rte_keepalive_mark_sleep; # WINDOWS_NO_EXPORT
+	rte_keepalive_register_core; # WINDOWS_NO_EXPORT
+	rte_keepalive_register_relay_callback; # WINDOWS_NO_EXPORT
 	rte_lcore_count;
 	rte_lcore_has_role;
 	rte_lcore_index;
@@ -159,7 +159,7 @@ DPDK_21 {
 	rte_service_component_unregister;
 	rte_service_dump;
 	rte_service_finalize;
-	rte_service_get_by_id;
+	rte_service_get_by_id; # WINDOWS_NO_EXPORT
 	rte_service_get_by_name;
 	rte_service_get_count;
 	rte_service_get_name;
@@ -187,7 +187,7 @@ DPDK_21 {
 	rte_socket_count;
 	rte_socket_id;
 	rte_socket_id_by_idx;
-	rte_srand;
+	rte_srand; # WINDOWS_NO_EXPORT
 	rte_strerror;
 	rte_strscpy;
 	rte_strsplit;
@@ -195,26 +195,26 @@ DPDK_21 {
 	rte_thread_get_affinity;
 	rte_thread_set_affinity;
 	rte_thread_setname;
-	rte_uuid_compare;
-	rte_uuid_is_null;
-	rte_uuid_parse;
-	rte_uuid_unparse;
-	rte_version;
-	rte_vfio_clear_group;
-	rte_vfio_container_create;
-	rte_vfio_container_destroy;
+	rte_uuid_compare; # WINDOWS_NO_EXPORT
+	rte_uuid_is_null; # WINDOWS_NO_EXPORT
+	rte_uuid_parse; # WINDOWS_NO_EXPORT
+	rte_uuid_unparse; # WINDOWS_NO_EXPORT
+	rte_version; # WINDOWS_NO_EXPORT
+	rte_vfio_clear_group; # WINDOWS_NO_EXPORT
+	rte_vfio_container_create; # WINDOWS_NO_EXPORT
+	rte_vfio_container_destroy; # WINDOWS_NO_EXPORT
 	rte_vfio_container_dma_map;
 	rte_vfio_container_dma_unmap;
-	rte_vfio_container_group_bind;
-	rte_vfio_container_group_unbind;
-	rte_vfio_enable;
-	rte_vfio_get_container_fd;
-	rte_vfio_get_group_fd;
-	rte_vfio_get_group_num;
-	rte_vfio_is_enabled;
-	rte_vfio_noiommu_is_enabled;
-	rte_vfio_release_device;
-	rte_vfio_setup_device;
+	rte_vfio_container_group_bind; # WINDOWS_NO_EXPORT
+	rte_vfio_container_group_unbind; # WINDOWS_NO_EXPORT
+	rte_vfio_enable; # WINDOWS_NO_EXPORT
+	rte_vfio_get_container_fd; # WINDOWS_NO_EXPORT
+	rte_vfio_get_group_fd; # WINDOWS_NO_EXPORT
+	rte_vfio_get_group_num; # WINDOWS_NO_EXPORT
+	rte_vfio_is_enabled; # WINDOWS_NO_EXPORT
+	rte_vfio_noiommu_is_enabled; # WINDOWS_NO_EXPORT
+	rte_vfio_release_device; # WINDOWS_NO_EXPORT
+	rte_vfio_setup_device; # WINDOWS_NO_EXPORT
 	rte_vlog;
 	rte_zmalloc;
 	rte_zmalloc_socket;
@@ -234,8 +234,8 @@ EXPERIMENTAL {
 	# added in 18.05
 	rte_dev_event_callback_register;
 	rte_dev_event_callback_unregister;
-	rte_dev_event_monitor_start;
-	rte_dev_event_monitor_stop;
+	rte_dev_event_monitor_start; # WINDOWS_NO_EXPORT
+	rte_dev_event_monitor_stop; # WINDOWS_NO_EXPORT
 	rte_fbarray_attach;
 	rte_fbarray_destroy;
 	rte_fbarray_detach;
@@ -288,8 +288,8 @@ EXPERIMENTAL {
 	# added in 18.11
 	rte_delay_us_sleep;
 	rte_dev_event_callback_process;
-	rte_dev_hotplug_handle_disable;
-	rte_dev_hotplug_handle_enable;
+	rte_dev_hotplug_handle_disable; # WINDOWS_NO_EXPORT
+	rte_dev_hotplug_handle_enable; # WINDOWS_NO_EXPORT
 	rte_malloc_heap_create;
 	rte_malloc_heap_destroy;
 	rte_malloc_heap_get_socket;
@@ -327,7 +327,7 @@ EXPERIMENTAL {
 	rte_lcore_to_cpu_id;
 	rte_mcfg_timer_lock;
 	rte_mcfg_timer_unlock;
-	rte_rand_max;
+	rte_rand_max; # WINDOWS_NO_EXPORT
 
 	# added in 19.11
 	rte_mcfg_get_single_file_segments;
@@ -373,22 +373,22 @@ EXPERIMENTAL {
 	per_lcore_trace_mem;
 	per_lcore_trace_point_sz;
 	rte_log_can_log;
-	rte_thread_getname;
-	rte_trace_dump;
-	rte_trace_is_enabled;
-	rte_trace_metadata_dump;
-	rte_trace_mode_get;
-	rte_trace_mode_set;
-	rte_trace_pattern;
-	rte_trace_point_disable;
-	rte_trace_point_enable;
-	rte_trace_point_is_enabled;
-	rte_trace_point_lookup;
-	rte_trace_regexp;
-	rte_trace_save;
+	rte_thread_getname; # WINDOWS_NO_EXPORT
+	rte_trace_dump; # WINDOWS_NO_EXPORT
+	rte_trace_is_enabled; # WINDOWS_NO_EXPORT
+	rte_trace_metadata_dump; # WINDOWS_NO_EXPORT
+	rte_trace_mode_get; # WINDOWS_NO_EXPORT
+	rte_trace_mode_set; # WINDOWS_NO_EXPORT
+	rte_trace_pattern; # WINDOWS_NO_EXPORT
+	rte_trace_point_disable; # WINDOWS_NO_EXPORT
+	rte_trace_point_enable; # WINDOWS_NO_EXPORT
+	rte_trace_point_is_enabled; # WINDOWS_NO_EXPORT
+	rte_trace_point_lookup; # WINDOWS_NO_EXPORT
+	rte_trace_regexp; # WINDOWS_NO_EXPORT
+	rte_trace_save; # WINDOWS_NO_EXPORT
 
 	# added in 20.08
-	rte_eal_vfio_get_vf_token;
+	rte_eal_vfio_get_vf_token; # WINDOWS_NO_EXPORT
 	rte_lcore_callback_register;
 	rte_lcore_callback_unregister;
 	rte_lcore_dump;
@@ -398,29 +398,29 @@ EXPERIMENTAL {
 	rte_thread_unregister;
 
 	# added in 20.11
-	__rte_eal_trace_generic_size_t;
-	rte_cpu_get_intrinsics_support;
+	__rte_eal_trace_generic_size_t; # WINDOWS_NO_EXPORT
+	rte_cpu_get_intrinsics_support; # WINDOWS_NO_EXPORT
 	rte_epoll_wait_interruptible;
 	rte_service_lcore_may_be_active;
 	rte_vect_get_max_simd_bitwidth;
 	rte_vect_set_max_simd_bitwidth;
 
 	# added in 21.02
-	rte_power_monitor;
-	rte_power_monitor_wakeup;
-	rte_power_pause;
+	rte_power_monitor; # WINDOWS_NO_EXPORT
+	rte_power_monitor_wakeup; # WINDOWS_NO_EXPORT
+	rte_power_pause; # WINDOWS_NO_EXPORT
 
 	# added in 21.05
 	rte_thread_key_create;
 	rte_thread_key_delete;
 	rte_thread_value_get;
 	rte_thread_value_set;
-	rte_version_minor;
-	rte_version_month;
-	rte_version_prefix;
-	rte_version_release;
-	rte_version_suffix;
-	rte_version_year;
+	rte_version_minor; # WINDOWS_NO_EXPORT
+	rte_version_month; # WINDOWS_NO_EXPORT
+	rte_version_prefix; # WINDOWS_NO_EXPORT
+	rte_version_release; # WINDOWS_NO_EXPORT
+	rte_version_suffix; # WINDOWS_NO_EXPORT
+	rte_version_year; # WINDOWS_NO_EXPORT
 };
 
 INTERNAL {
-- 
2.23.0



More information about the dev mailing list