Dmitry Eremin-Solenikov(lumag) replied on github web page: platform/libodp-linux.map line 594 @@ -0,0 +1,600 @@ +LIBODP_LINUX_1.17 { + global: + odp_atomic_add_rel_u32; + odp_atomic_add_rel_u64; + odp_atomic_add_u32; + odp_atomic_add_u64; + odp_atomic_cas_acq_rel_u32; + odp_atomic_cas_acq_rel_u64; + odp_atomic_cas_acq_u32; + odp_atomic_cas_acq_u64; + odp_atomic_cas_rel_u32; + odp_atomic_cas_rel_u64; + odp_atomic_cas_u32; + odp_atomic_cas_u64; + odp_atomic_dec_u32; + odp_atomic_dec_u64; + odp_atomic_fetch_add_u32; + odp_atomic_fetch_add_u64; + odp_atomic_fetch_dec_u32; + odp_atomic_fetch_dec_u64; + odp_atomic_fetch_inc_u32; + odp_atomic_fetch_inc_u64; + odp_atomic_fetch_sub_u32; + odp_atomic_fetch_sub_u64; + odp_atomic_inc_u32; + odp_atomic_inc_u64; + odp_atomic_init_u32; + odp_atomic_init_u64; + odp_atomic_load_acq_u32; + odp_atomic_load_acq_u64; + odp_atomic_load_u32; + odp_atomic_load_u64; + odp_atomic_lock_free_u64; + odp_atomic_max_u32; + odp_atomic_max_u64; + odp_atomic_min_u32; + odp_atomic_min_u64; + odp_atomic_store_rel_u32; + odp_atomic_store_rel_u64; + odp_atomic_store_u32; + odp_atomic_store_u64; + odp_atomic_sub_rel_u32; + odp_atomic_sub_rel_u64; + odp_atomic_sub_u32; + odp_atomic_sub_u64; + odp_atomic_xchg_u32; + odp_atomic_xchg_u64; + odp_barrier_init; + odp_barrier_wait; + odp_be_to_cpu_16; + odp_be_to_cpu_32; + odp_be_to_cpu_64; + odp_buffer_addr; + odp_buffer_alloc; + odp_buffer_alloc_multi; + odp_buffer_free; + odp_buffer_free_multi; + odp_buffer_from_event; + odp_buffer_is_valid; + odp_buffer_pool; + odp_buffer_print; + odp_buffer_size; + odp_buffer_to_event; + odp_buffer_to_u64; + odp_chksum_ones_comp16; + odp_cls_capability; + odp_cls_cos_create; + odp_cls_cos_num_queue; + odp_cls_cos_param_init; + odp_cls_cos_pool; + odp_cls_cos_pool_set; + odp_cls_cos_queues; + odp_cls_pmr_create; + odp_cls_pmr_destroy; + odp_cls_pmr_param_init; + odp_cos_destroy; + odp_cos_drop; + odp_cos_drop_set; + odp_cos_queue; + odp_cos_queue_set; + odp_cos_to_u64; + odp_cos_with_l2_priority; + odp_cos_with_l3_qos; + odp_cpu_count; + odp_cpu_cycles; + odp_cpu_cycles_diff; + odp_cpu_cycles_max; + odp_cpu_cycles_resolution; + odp_cpu_hz; + odp_cpu_hz_id; + odp_cpu_hz_max; + odp_cpu_hz_max_id; + odp_cpu_id; + odp_cpumask_all_available; + odp_cpumask_and; + odp_cpumask_clr; + odp_cpumask_copy; + odp_cpumask_count; + odp_cpumask_default_control; + odp_cpumask_default_worker; + odp_cpumask_equal; + odp_cpumask_first; + odp_cpumask_from_str; + odp_cpumask_isset; + odp_cpumask_last; + odp_cpumask_next; + odp_cpumask_or; + odp_cpumask_set; + odp_cpumask_setall; + odp_cpumask_to_str; + odp_cpumask_xor; + odp_cpumask_zero; + odp_cpu_model_str; + odp_cpu_model_str_id; + odp_cpu_to_be_16; + odp_cpu_to_be_32; + odp_cpu_to_be_64; + odp_cpu_to_le_16; + odp_cpu_to_le_32; + odp_cpu_to_le_64; + odp_crypto_auth_capability; + odp_crypto_capability; + odp_crypto_cipher_capability; + odp_crypto_compl_free; + odp_crypto_compl_from_event; + odp_crypto_compl_result; + odp_crypto_compl_to_event; + odp_crypto_compl_to_u64; + odp_crypto_op; + odp_crypto_op_enq; + odp_crypto_operation; + odp_crypto_packet_from_event; + odp_crypto_packet_to_event; + odp_crypto_result; + odp_crypto_session_create; + odp_crypto_session_destroy; + odp_crypto_session_param_init; + odp_crypto_session_to_u64; + odp_errno; + odp_errno_print; + odp_errno_str; + odp_errno_zero; + odp_event_filter_packet; + odp_event_free; + odp_event_free_multi; + odp_event_free_sp; + odp_event_subtype; + odp_event_to_u64; + odp_event_type; + odp_event_type_multi; + odp_event_types; + odp_hash_crc32c; + odp_init_global; + odp_init_local; + odp_init_param_init; + odp_ipsec_auth_capability; + odp_ipsec_capability; + odp_ipsec_cipher_capability; + odp_ipsec_config; + odp_ipsec_config_init; + odp_ipsec_in; + odp_ipsec_in_enq; + odp_ipsec_out; + odp_ipsec_out_enq; + odp_ipsec_out_inline; + odp_ipsec_packet_from_event; + odp_ipsec_packet_to_event; + odp_ipsec_result; + odp_ipsec_sa_context; + odp_ipsec_sa_create; + odp_ipsec_sa_destroy; + odp_ipsec_sa_disable; + odp_ipsec_sa_mtu_update; + odp_ipsec_sa_param_init; + odp_ipsec_sa_to_u64; + odp_ipsec_status; + odp_le_to_cpu_16; + odp_le_to_cpu_32; + odp_le_to_cpu_64; + odp_mb_acquire; + odp_mb_full; + odp_mb_release; + odp_memcmp; + odp_memcpy; + odp_memset; + odp_override_abort; + odp_override_log; + odp_packet_add_data; + odp_packet_align; + odp_packet_alloc; + odp_packet_alloc_multi; + odp_packet_buf_len; + odp_packet_color; + odp_packet_color_set; + odp_packet_concat; + odp_packet_copy; + odp_packet_copy_data; + odp_packet_copy_from_mem; + odp_packet_copy_from_pkt; + odp_packet_copy_part; + odp_packet_copy_to_mem; + odp_packet_data; + odp_packet_drop_eligible; + odp_packet_drop_eligible_set; + odp_packet_extend_head; + odp_packet_extend_tail; + odp_packet_first_seg; + odp_packet_flow_hash; + odp_packet_flow_hash_set; + odp_packet_free; + odp_packet_free_multi; + odp_packet_free_sp; + odp_packet_from_event; + odp_packet_from_event_multi; + odp_packet_has_arp; + odp_packet_has_arp_set; + odp_packet_has_error; + odp_packet_has_eth; + odp_packet_has_eth_bcast; + odp_packet_has_eth_bcast_set; + odp_packet_has_eth_mcast; + odp_packet_has_eth_mcast_set; + odp_packet_has_eth_set; + odp_packet_has_flow_hash; + odp_packet_has_flow_hash_clr; + odp_packet_has_icmp; + odp_packet_has_icmp_set; + odp_packet_has_ip_bcast; + odp_packet_has_ip_bcast_set; + odp_packet_has_ipfrag; + odp_packet_has_ipfrag_set; + odp_packet_has_ip_mcast; + odp_packet_has_ip_mcast_set; + odp_packet_has_ipopt; + odp_packet_has_ipopt_set; + odp_packet_has_ipsec; + odp_packet_has_ipsec_set; + odp_packet_has_ipv4; + odp_packet_has_ipv4_set; + odp_packet_has_ipv6; + odp_packet_has_ipv6_set; + odp_packet_has_jumbo; + odp_packet_has_jumbo_set; + odp_packet_has_l2; + odp_packet_has_l2_error; + odp_packet_has_l2_set; + odp_packet_has_l3; + odp_packet_has_l3_error; + odp_packet_has_l3_set; + odp_packet_has_l4; + odp_packet_has_l4_error; + odp_packet_has_l4_set; + odp_packet_has_ref; + odp_packet_has_sctp; + odp_packet_has_sctp_set; + odp_packet_has_tcp; + odp_packet_has_tcp_set; + odp_packet_has_ts; + odp_packet_has_ts_clr; + odp_packet_has_udp; + odp_packet_has_udp_set; + odp_packet_has_vlan; + odp_packet_has_vlan_qinq; + odp_packet_has_vlan_qinq_set; + odp_packet_has_vlan_set; + odp_packet_head; + odp_packet_headroom; + odp_packet_input; + odp_packet_input_index; + odp_packet_is_segmented; + odp_packet_is_valid; + odp_packet_l2_offset; + odp_packet_l2_offset_set; + odp_packet_l2_ptr; + odp_packet_l3_chksum_insert; + odp_packet_l3_chksum_status; + odp_packet_l3_offset; + odp_packet_l3_offset_set; + odp_packet_l3_ptr; + odp_packet_l4_chksum_insert; + odp_packet_l4_chksum_status; + odp_packet_l4_offset; + odp_packet_l4_offset_set; + odp_packet_l4_ptr; + odp_packet_last_seg; + odp_packet_len; + odp_packet_move_data; + odp_packet_next_seg; + odp_packet_num_segs; + odp_packet_offset; + odp_packet_ones_comp; + odp_packet_parse; + odp_packet_parse_multi; + odp_packet_pool; + odp_packet_prefetch; + odp_packet_print; + odp_packet_print_data; + odp_packet_pull_head; + odp_packet_pull_tail; + odp_packet_push_head; + odp_packet_push_tail; + odp_packet_ref; + odp_packet_ref_pkt; + odp_packet_ref_static; + odp_packet_rem_data; + odp_packet_reset; + odp_packet_seg_data; + odp_packet_seg_data_len; + odp_packet_seg_len; + odp_packet_seg_to_u64; + odp_packet_shaper_len_adjust; + odp_packet_shaper_len_adjust_set; + odp_packet_split; + odp_packet_tail; + odp_packet_tailroom; + odp_packet_to_event; + odp_packet_to_event_multi; + odp_packet_to_u64; + odp_packet_trunc_head; + odp_packet_trunc_tail; + odp_packet_ts; + odp_packet_ts_set; + odp_packet_user_area; + odp_packet_user_area_size; + odp_packet_user_ptr; + odp_packet_user_ptr_set; + odp_pktin_event_queue; + odp_pktin_maxlen; + odp_pktin_queue; + odp_pktin_queue_config; + odp_pktin_queue_param_init; + odp_pktin_recv; + odp_pktin_recv_mq_tmo; + odp_pktin_recv_tmo; + odp_pktin_ts_from_ns; + odp_pktin_ts_res; + odp_pktin_wait_time; + odp_pktio_capability; + odp_pktio_close; + odp_pktio_config; + odp_pktio_config_init; + odp_pktio_default_cos_set; + odp_pktio_error_cos_set; + odp_pktio_headroom_set; + odp_pktio_index; + odp_pktio_info; + odp_pktio_link_status; + odp_pktio_lookup; + odp_pktio_mac_addr; + odp_pktio_mac_addr_set; + odp_pktio_max_index; + odp_pktio_open; + odp_pktio_param_init; + odp_pktio_print; + odp_pktio_promisc_mode; + odp_pktio_promisc_mode_set; + odp_pktio_skip_set; + odp_pktio_start; + odp_pktio_stats; + odp_pktio_stats_reset; + odp_pktio_stop; + odp_pktio_to_u64; + odp_pktout_event_queue; + odp_pktout_maxlen; + odp_pktout_queue; + odp_pktout_queue_config; + odp_pktout_queue_param_init; + odp_pktout_send; + odp_pmr_to_u64; + odp_pool_capability; + odp_pool_create; + odp_pool_destroy; + odp_pool_info; + odp_pool_lookup; + odp_pool_param_init; + odp_pool_print; + odp_pool_to_u64; + odp_queue_capability; + odp_queue_context; + odp_queue_context_set; + odp_queue_create; + odp_queue_deq; + odp_queue_deq_multi; + odp_queue_destroy; + odp_queue_enq; + odp_queue_enq_multi; + odp_queue_info; + odp_queue_lock_count; + odp_queue_lookup; + odp_queue_param_init; + odp_queue_sched_group; + odp_queue_sched_prio; + odp_queue_sched_type; + odp_queue_to_u64; + odp_queue_type; + odp_random_data; + odp_random_max_kind; + odp_random_test_data; + odp_rwlock_init; + odp_rwlock_read_lock; + odp_rwlock_read_trylock; + odp_rwlock_read_unlock; + odp_rwlock_recursive_init; + odp_rwlock_recursive_read_lock; + odp_rwlock_recursive_read_trylock; + odp_rwlock_recursive_read_unlock; + odp_rwlock_recursive_write_lock; + odp_rwlock_recursive_write_trylock; + odp_rwlock_recursive_write_unlock; + odp_rwlock_write_lock; + odp_rwlock_write_trylock; + odp_rwlock_write_unlock; + odp_schedule; + odp_schedule_group_create; + odp_schedule_group_destroy; + odp_schedule_group_info; + odp_schedule_group_join; + odp_schedule_group_leave; + odp_schedule_group_lookup; + odp_schedule_group_thrmask; + odp_schedule_multi; + odp_schedule_num_prio; + odp_schedule_order_lock; + odp_schedule_order_unlock; + odp_schedule_order_unlock_lock; + odp_schedule_pause; + odp_schedule_prefetch; + odp_schedule_release_atomic; + odp_schedule_release_ordered; + odp_schedule_resume; + odp_schedule_wait_time; + odp_shm_addr; + odp_shm_capability; + odp_shm_free; + odp_shm_import; + odp_shm_info; + odp_shm_lookup; + odp_shm_print; + odp_shm_print_all; + odp_shm_reserve; + odp_shm_to_u64; + odp_spinlock_init; + odp_spinlock_is_locked; + odp_spinlock_lock; + odp_spinlock_recursive_init; + odp_spinlock_recursive_is_locked; + odp_spinlock_recursive_lock; + odp_spinlock_recursive_trylock; + odp_spinlock_recursive_unlock; + odp_spinlock_trylock; + odp_spinlock_unlock; + odp_sys_cache_line_size; + odp_sys_huge_page_size; + odp_sys_huge_page_size_all; + odp_sys_info_print; + odp_sys_page_size; + odp_term_global; + odp_term_local; + odp_thread_count; + odp_thread_count_max; + odp_thread_id; + odp_thread_type; + odp_thrmask_and; + odp_thrmask_clr; + odp_thrmask_control; + odp_thrmask_copy; + odp_thrmask_count; + odp_thrmask_equal; + odp_thrmask_first; + odp_thrmask_from_str; + odp_thrmask_isset; + odp_thrmask_last; + odp_thrmask_next; + odp_thrmask_or; + odp_thrmask_set; + odp_thrmask_setall; + odp_thrmask_to_str; + odp_thrmask_worker; + odp_thrmask_xor; + odp_thrmask_zero; + odp_ticketlock_init; + odp_ticketlock_is_locked; + odp_ticketlock_lock; + odp_ticketlock_trylock; + odp_ticketlock_unlock; + odp_time_cmp; + odp_time_diff; + odp_time_diff_ns; + odp_time_global; + odp_time_global_from_ns; + odp_time_global_res; + odp_time_local; + odp_time_local_from_ns; + odp_time_local_res; + odp_timeout_alloc; + odp_timeout_free; + odp_timeout_fresh; + odp_timeout_from_event; + odp_timeout_tick; + odp_timeout_timer; + odp_timeout_to_event; + odp_timeout_to_u64; + odp_timeout_user_ptr; + odp_timer_alloc; + odp_timer_cancel; + odp_timer_capability; + odp_timer_current_tick; + odp_timer_free; + odp_timer_ns_to_tick; + odp_timer_pool_create; + odp_timer_pool_destroy; + odp_timer_pool_info; + odp_timer_pool_start; + odp_timer_pool_to_u64; + odp_timer_set_abs; + odp_timer_set_rel; + odp_timer_tick_to_ns; + odp_timer_to_u64; + odp_time_sum; + odp_time_to_ns; + odp_time_wait_ns; + odp_time_wait_until; + odp_tm_capabilities; + odp_tm_capability; + odp_tm_create; + odp_tm_destroy; + odp_tm_drop_prec_marking; + odp_tm_ecn_marking; + odp_tm_egress_init; + odp_tm_enq; + odp_tm_enq_with_cnt; + odp_tm_find; + odp_tm_is_idle; + odp_tm_node_connect; + odp_tm_node_context; + odp_tm_node_context_set; + odp_tm_node_create; + odp_tm_node_destroy; + odp_tm_node_disconnect; + odp_tm_node_fanin_info; + odp_tm_node_info; + odp_tm_node_lookup; + odp_tm_node_params_init; + odp_tm_node_sched_config; + odp_tm_node_shaper_config; + odp_tm_node_threshold_config; + odp_tm_node_wred_config; + odp_tm_priority_query; + odp_tm_priority_threshold_config; + odp_tm_queue_connect; + odp_tm_queue_context; + odp_tm_queue_context_set; + odp_tm_queue_create; + odp_tm_queue_destroy; + odp_tm_queue_disconnect; + odp_tm_queue_info; + odp_tm_queue_params_init; + odp_tm_queue_query; + odp_tm_queue_sched_config; + odp_tm_queue_shaper_config; + odp_tm_queue_threshold_config; + odp_tm_queue_wred_config; + odp_tm_requirements_init; + odp_tm_sched_create; + odp_tm_sched_destroy; + odp_tm_sched_lookup; + odp_tm_sched_params_init; + odp_tm_sched_params_read; + odp_tm_sched_params_update; + odp_tm_shaper_create; + odp_tm_shaper_destroy; + odp_tm_shaper_lookup; + odp_tm_shaper_params_init; + odp_tm_shaper_params_read; + odp_tm_shaper_params_update; + odp_tm_stats_print; + odp_tm_threshold_create; + odp_tm_threshold_destroy; + odp_tm_threshold_params_init; + odp_tm_thresholds_lookup; + odp_tm_thresholds_params_read; + odp_tm_thresholds_params_update; + odp_tm_total_query; + odp_tm_total_threshold_config; + odp_tm_vlan_marking; + odp_tm_wred_create; + odp_tm_wred_destroy; + odp_tm_wred_lookup; + odp_tm_wred_params_init; + odp_tm_wred_params_read; + odp_tm_wred_params_update; + odp_version_api_str; + odp_version_impl_name; + odp_version_impl_str;
Comment: @Bill-Fischofer-Linaro is that really a "burden"? First commit does exactly that, however it makes impossible to stop library from exporting extra `_odp_*` symbols (which makes ABI definition loose). Having such list would allow us to have proper symbol versioning, if we decide to have stable ABI (and we are almost there, judging from library ABI tracking). > Bill Fischofer(Bill-Fischofer-Linaro) wrote: > Not sure I follow. The concern is that maintaining this list would impose a > burden as every new API defined (or removed) would have to remember to update > this list. >> Dmitry Eremin-Solenikov(lumag) wrote: >> Yes. However we must be sure to export correct symbols with correct versions. >>> Bill Fischofer(Bill-Fischofer-Linaro) wrote: >>> Must these be enumerated individually? The ODP API symbols should all match >>> the pattern `odp_*`. https://github.com/Linaro/odp/pull/449#discussion_r165727302 updated_at 2018-02-02 20:27:45