build: remove Windows export symbol list

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

Some mlx5 symbols (haswell_broadwell_cpu, mlx5_glue, mlx5_os_*) were
only exported for Windows.
All of them are available and used by Linux too, so this patch adds
them in version.map.

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@redhat.com>
Tested-by: Tal Shnaiderman <talshn@nvidia.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
David Marchand 2021-04-06 19:59:10 +02:00
parent 60e0e75b61
commit 56ea803e87
9 changed files with 124 additions and 549 deletions

View File

@ -333,7 +333,6 @@ M: Narcisa Ana Maria Vasile <navasile@linux.microsoft.com>
M: Dmitry Malloy <dmitrym@microsoft.com>
M: Pallavi Kadam <pallavi.kadam@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/

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -1,14 +1,16 @@
INTERNAL {
global:
haswell_broadwell_cpu;
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 +22,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 +40,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 +56,17 @@ 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_glue;
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,28 +82,35 @@ 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_os_alloc_pd;
mlx5_os_dealloc_pd;
mlx5_os_dereg_mr;
mlx5_os_reg_mr;
mlx5_os_umem_reg;
mlx5_os_umem_dereg;
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;

View File

@ -1,337 +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_intr_callback_unregister_sync
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

View File

@ -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;
@ -186,7 +186,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;
@ -194,26 +194,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;
@ -233,8 +233,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;
@ -287,8 +287,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;
@ -326,7 +326,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;
@ -372,22 +372,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;
@ -397,17 +397,17 @@ 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_intr_callback_unregister_sync;
@ -415,12 +415,12 @@ EXPERIMENTAL {
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 {