build: list symbols exports in a single file
Checks
Commit Message
Rather than have two files that keeps getting out of sync, let's
annotate the version.map to generate the Windows export file.
Note: EAL version.map annotation achieved with:
$ ./buildtools/map-list-symbol.sh lib/librte_eal/version.map |
while read file version sym; do
! git grep -qw $sym lib/librte_eal/*.def || continue;
sed -i -e "s/$sym;/$sym; # WINDOWS_NO_EXPORT/" lib/librte_eal/*.map;
done
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
MAINTAINERS | 1 -
buildtools/map_to_win.py | 8 +-
devtools/check-symbol-maps.sh | 20 --
lib/librte_eal/rte_eal_exports.def | 336 -----------------------------
lib/librte_eal/version.map | 136 ++++++------
5 files changed, 69 insertions(+), 432 deletions(-)
delete mode 100644 lib/librte_eal/rte_eal_exports.def
Comments
On Tue, Apr 6, 2021 at 6:33 PM David Marchand <david.marchand@redhat.com> wrote:
> diff --git a/buildtools/map_to_win.py b/buildtools/map_to_win.py
> index 2a6cb88605..34434d96fa 100644
> --- a/buildtools/map_to_win.py
> +++ b/buildtools/map_to_win.py
> @@ -7,7 +7,7 @@
>
>
> 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 +24,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()
> -
Forgot to clean associated python imports.
Will be fixed in a v2 if no objection is raised on the principle of the patch.
> # 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.
On Tue, Apr 06, 2021 at 06:32:30PM +0200, David Marchand wrote:
> Rather than have two files that keeps getting out of sync, let's
> annotate the version.map to generate the Windows export file.
>
> Note: EAL version.map annotation achieved with:
> $ ./buildtools/map-list-symbol.sh lib/librte_eal/version.map |
> while read file version sym; do
> ! git grep -qw $sym lib/librte_eal/*.def || continue;
> sed -i -e "s/$sym;/$sym; # WINDOWS_NO_EXPORT/" lib/librte_eal/*.map;
> done
>
> Signed-off-by: David Marchand <david.marchand@redhat.com>
> ---
+1 to the idea, this is great to see.
> MAINTAINERS | 1 -
> buildtools/map_to_win.py | 8 +-
> devtools/check-symbol-maps.sh | 20 --
> lib/librte_eal/rte_eal_exports.def | 336 -----------------------------
> lib/librte_eal/version.map | 136 ++++++------
> 5 files changed, 69 insertions(+), 432 deletions(-)
> delete mode 100644 lib/librte_eal/rte_eal_exports.def
>
<snip>
> -# 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()
> -
If this is removed, then drivers/common/mlx5/version.map similarly needs to
be annotated so that we can remove rte_common_mlx5_exports.def
On Tue, Apr 6, 2021 at 6:51 PM Bruce Richardson
<bruce.richardson@intel.com> wrote:
> > -# 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()
> > -
>
> If this is removed, then drivers/common/mlx5/version.map similarly needs to
> be annotated so that we can remove rte_common_mlx5_exports.def
Erf, and I thought I had checked...
v2 incoming.
On 06/04/2021 17:50, Bruce Richardson wrote:
> On Tue, Apr 06, 2021 at 06:32:30PM +0200, David Marchand wrote:
>> Rather than have two files that keeps getting out of sync, let's
>> annotate the version.map to generate the Windows export file.
>>
>> Note: EAL version.map annotation achieved with:
>> $ ./buildtools/map-list-symbol.sh lib/librte_eal/version.map |
>> while read file version sym; do
>> ! git grep -qw $sym lib/librte_eal/*.def || continue;
>> sed -i -e "s/$sym;/$sym; # WINDOWS_NO_EXPORT/" lib/librte_eal/*.map;
>> done
>>
>> Signed-off-by: David Marchand <david.marchand@redhat.com>
>> ---
> +1 to the idea, this is great to see.
+1 agreed.
>
>> MAINTAINERS | 1 -
>> buildtools/map_to_win.py | 8 +-
>> devtools/check-symbol-maps.sh | 20 --
>> lib/librte_eal/rte_eal_exports.def | 336 -----------------------------
>> lib/librte_eal/version.map | 136 ++++++------
>> 5 files changed, 69 insertions(+), 432 deletions(-)
>> delete mode 100644 lib/librte_eal/rte_eal_exports.def
>>
> <snip>
>> -# 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()
>> -
>
> If this is removed, then drivers/common/mlx5/version.map similarly needs to
> be annotated so that we can remove rte_common_mlx5_exports.def
>
@@ -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/
@@ -7,7 +7,7 @@
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 +24,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.
@@ -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
deleted file mode 100644
@@ -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
@@ -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 {