From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8C0B1A00BE; Mon, 28 Oct 2019 15:22:00 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 802A91BF05; Mon, 28 Oct 2019 15:21:56 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id 442AB1BEF7 for ; Mon, 28 Oct 2019 15:21:54 +0100 (CET) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9SEJceb002603; Mon, 28 Oct 2019 07:21:52 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding : content-type; s=pfpt0818; bh=LfwK8jeQ/L00PzQclAAE1/vaLNgd2Z2Vt00KoE/Ad9s=; b=LKsSbKMCjFrLdjzSHGRBmqvV7wGGx3dGmc+5qgChMgN9Z+pVu9StjIucIPAzwp4IXRpZ cUx//Aud0Ly7iEGAVrvAWI5u8PLxFTJatfhsSF5AvYCLqaUvu6m+ELJ4I8FgSgEdXMTY kKoXn8Y1oJ3E3qmpIAIEa/Cc02emYjzKOIJIyZo2xIVXrSDL1XtV7pxjbo6Rvo5cQHSW fE1LoD3s1FS/B7Iw4+h281EPr4nKEw/xpKXK+s4hJRrhLu4nIA6znDVoZYYz6oo35PUx GuW/nF/1mK/qiNVxhLJCMWOWtBXZ0xMZdl2xkMRzUU2Ivg4lyHT0LcQgVHTgTJJi5zB7 CA== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2vvkgq65uh-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 28 Oct 2019 07:21:51 -0700 Received: from SC-EXCH01.marvell.com (10.93.176.81) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 28 Oct 2019 07:21:50 -0700 Received: from maili.marvell.com (10.93.176.43) by SC-EXCH01.marvell.com (10.93.176.81) with Microsoft SMTP Server id 15.0.1367.3 via Frontend Transport; Mon, 28 Oct 2019 07:21:50 -0700 Received: from amok.marvell.com (unknown [10.95.130.103]) by maili.marvell.com (Postfix) with ESMTP id D4D773F7040; Mon, 28 Oct 2019 07:21:47 -0700 (PDT) From: Andrzej Ostruszka To: , John McNamara , Marko Kovacevic , David Hunt , Neil Horman , Bruce Richardson , Vladimir Medvedkin , Robert Sanford , Erik Gabriel Carrillo CC: , Date: Mon, 28 Oct 2019 15:21:35 +0100 Message-ID: <20191028142145.3758-2-aostruszka@marvell.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191028142145.3758-1-aostruszka@marvell.com> References: <20191022115412.8837-1-aostruszka@marvell.com> <20191028142145.3758-1-aostruszka@marvell.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-28_05:2019-10-25,2019-10-28 signatures=0 Subject: [dpdk-dev] [PATCH v5 01/11] build: annotate versioned symbols with __vsym macro X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Every implementation of a particular version of given symbol needs to be marked in its declaration as such (using `__vsym` macro). This patch fixes this and also clarifies the documentation about that. Signed-off-by: Andrzej Ostruszka --- doc/guides/contributing/versioning.rst | 18 ++++++++---- lib/librte_distributor/rte_distributor.c | 18 ++++++------ lib/librte_distributor/rte_distributor_v20.c | 18 ++++++------ .../common/include/rte_function_versioning.h | 11 ++++++-- lib/librte_lpm/rte_lpm.c | 28 +++++++++---------- lib/librte_lpm/rte_lpm6.c | 16 +++++------ lib/librte_timer/rte_timer.c | 20 ++++++------- 7 files changed, 71 insertions(+), 58 deletions(-) diff --git a/doc/guides/contributing/versioning.rst b/doc/guides/contributing/versioning.rst index 64984c54e..fcd2d50f1 100644 --- a/doc/guides/contributing/versioning.rst +++ b/doc/guides/contributing/versioning.rst @@ -215,16 +215,20 @@ library so that older binaries need not be immediately recompiled. The macros exported are: * ``VERSION_SYMBOL(b, e, n)``: Creates a symbol version table entry binding - versioned symbol ``b@DPDK_n`` to the internal function ``b_e``. + versioned symbol ``b@DPDK_n`` to the internal function ``be``. * ``BIND_DEFAULT_SYMBOL(b, e, n)``: Creates a symbol version entry instructing the linker to bind references to symbol ``b`` to the internal symbol - ``b_e``. + ``be``. * ``MAP_STATIC_SYMBOL(f, p)``: Declare the prototype ``f``, and map it to the fully qualified function ``p``, so that if a symbol becomes versioned, it can still be mapped back to the public symbol name. +* ``__vsym``: Annotation to be used in a declaration of the internal symbol + ``be`` to signal that it is being used as an implementation of a particular + version of symbol ``b``. + Examples of ABI Macro use ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -345,8 +349,9 @@ with the public symbol name .. code-block:: c - struct rte_acl_ctx * + -struct rte_acl_ctx * -rte_acl_create(const struct rte_acl_param *param) + +struct rte_acl_ctx * __vsym +rte_acl_create_v20(const struct rte_acl_param *param) { size_t sz; @@ -354,7 +359,8 @@ with the public symbol name ... Note that the base name of the symbol was kept intact, as this is conducive to -the macros used for versioning symbols. That is our next step, mapping this new +the macros used for versioning symbols and we have annotated the function as an +implementation of versioned symbol. That is our next step, mapping this new symbol name to the initial symbol name at version node 2.0. Immediately after the function, we add this line of code @@ -374,7 +380,7 @@ name, with a different suffix, and implement it appropriately .. code-block:: c - struct rte_acl_ctx * + struct rte_acl_ctx * __vsym rte_acl_create_v21(const struct rte_acl_param *param, int debug); { struct rte_acl_ctx *ctx = rte_acl_create_v20(param); @@ -423,7 +429,7 @@ defined, we add this .. code-block:: c - struct rte_acl_ctx * + struct rte_acl_ctx * __vsym rte_acl_create_v21(const struct rte_acl_param *param, int debug) { ... diff --git a/lib/librte_distributor/rte_distributor.c b/lib/librte_distributor/rte_distributor.c index 7df97df92..2cc32ddba 100644 --- a/lib/librte_distributor/rte_distributor.c +++ b/lib/librte_distributor/rte_distributor.c @@ -32,7 +32,7 @@ EAL_REGISTER_TAILQ(rte_dist_burst_tailq) /**** Burst Packet APIs called by workers ****/ -void +void __vsym rte_distributor_request_pkt_v1705(struct rte_distributor *d, unsigned int worker_id, struct rte_mbuf **oldpkt, unsigned int count) @@ -89,7 +89,7 @@ MAP_STATIC_SYMBOL(void rte_distributor_request_pkt(struct rte_distributor *d, unsigned int count), rte_distributor_request_pkt_v1705); -int +int __vsym rte_distributor_poll_pkt_v1705(struct rte_distributor *d, unsigned int worker_id, struct rte_mbuf **pkts) { @@ -134,7 +134,7 @@ MAP_STATIC_SYMBOL(int rte_distributor_poll_pkt(struct rte_distributor *d, unsigned int worker_id, struct rte_mbuf **pkts), rte_distributor_poll_pkt_v1705); -int +int __vsym rte_distributor_get_pkt_v1705(struct rte_distributor *d, unsigned int worker_id, struct rte_mbuf **pkts, struct rte_mbuf **oldpkt, unsigned int return_count) @@ -169,7 +169,7 @@ MAP_STATIC_SYMBOL(int rte_distributor_get_pkt(struct rte_distributor *d, struct rte_mbuf **oldpkt, unsigned int return_count), rte_distributor_get_pkt_v1705); -int +int __vsym rte_distributor_return_pkt_v1705(struct rte_distributor *d, unsigned int worker_id, struct rte_mbuf **oldpkt, int num) { @@ -359,7 +359,7 @@ release(struct rte_distributor *d, unsigned int wkr) /* process a set of packets to distribute them to workers */ -int +int __vsym rte_distributor_process_v1705(struct rte_distributor *d, struct rte_mbuf **mbufs, unsigned int num_mbufs) { @@ -506,7 +506,7 @@ MAP_STATIC_SYMBOL(int rte_distributor_process(struct rte_distributor *d, rte_distributor_process_v1705); /* return to the caller, packets returned from workers */ -int +int __vsym rte_distributor_returned_pkts_v1705(struct rte_distributor *d, struct rte_mbuf **mbufs, unsigned int max_mbufs) { @@ -556,7 +556,7 @@ total_outstanding(const struct rte_distributor *d) * Flush the distributor, so that there are no outstanding packets in flight or * queued up. */ -int +int __vsym rte_distributor_flush_v1705(struct rte_distributor *d) { unsigned int flushed; @@ -591,7 +591,7 @@ MAP_STATIC_SYMBOL(int rte_distributor_flush(struct rte_distributor *d), rte_distributor_flush_v1705); /* clears the internal returns array in the distributor */ -void +void __vsym rte_distributor_clear_returns_v1705(struct rte_distributor *d) { unsigned int wkr; @@ -613,7 +613,7 @@ MAP_STATIC_SYMBOL(void rte_distributor_clear_returns(struct rte_distributor *d), rte_distributor_clear_returns_v1705); /* creates a distributor instance */ -struct rte_distributor * +struct rte_distributor * __vsym rte_distributor_create_v1705(const char *name, unsigned int socket_id, unsigned int num_workers, diff --git a/lib/librte_distributor/rte_distributor_v20.c b/lib/librte_distributor/rte_distributor_v20.c index db6c49258..7a6fddf55 100644 --- a/lib/librte_distributor/rte_distributor_v20.c +++ b/lib/librte_distributor/rte_distributor_v20.c @@ -27,7 +27,7 @@ EAL_REGISTER_TAILQ(rte_distributor_tailq) /**** APIs called by workers ****/ -void +void __vsym rte_distributor_request_pkt_v20(struct rte_distributor_v20 *d, unsigned worker_id, struct rte_mbuf *oldpkt) { @@ -43,7 +43,7 @@ rte_distributor_request_pkt_v20(struct rte_distributor_v20 *d, } VERSION_SYMBOL(rte_distributor_request_pkt, _v20, 2.0); -struct rte_mbuf * +struct rte_mbuf * __vsym rte_distributor_poll_pkt_v20(struct rte_distributor_v20 *d, unsigned worker_id) { @@ -59,7 +59,7 @@ rte_distributor_poll_pkt_v20(struct rte_distributor_v20 *d, } VERSION_SYMBOL(rte_distributor_poll_pkt, _v20, 2.0); -struct rte_mbuf * +struct rte_mbuf * __vsym rte_distributor_get_pkt_v20(struct rte_distributor_v20 *d, unsigned worker_id, struct rte_mbuf *oldpkt) { @@ -71,7 +71,7 @@ rte_distributor_get_pkt_v20(struct rte_distributor_v20 *d, } VERSION_SYMBOL(rte_distributor_get_pkt, _v20, 2.0); -int +int __vsym rte_distributor_return_pkt_v20(struct rte_distributor_v20 *d, unsigned worker_id, struct rte_mbuf *oldpkt) { @@ -204,7 +204,7 @@ process_returns(struct rte_distributor_v20 *d) } /* process a set of packets to distribute them to workers */ -int +int __vsym rte_distributor_process_v20(struct rte_distributor_v20 *d, struct rte_mbuf **mbufs, unsigned num_mbufs) { @@ -321,7 +321,7 @@ rte_distributor_process_v20(struct rte_distributor_v20 *d, VERSION_SYMBOL(rte_distributor_process, _v20, 2.0); /* return to the caller, packets returned from workers */ -int +int __vsym rte_distributor_returned_pkts_v20(struct rte_distributor_v20 *d, struct rte_mbuf **mbufs, unsigned max_mbufs) { @@ -359,7 +359,7 @@ total_outstanding(const struct rte_distributor_v20 *d) /* flush the distributor, so that there are no outstanding packets in flight or * queued up. */ -int +int __vsym rte_distributor_flush_v20(struct rte_distributor_v20 *d) { const unsigned flushed = total_outstanding(d); @@ -372,7 +372,7 @@ rte_distributor_flush_v20(struct rte_distributor_v20 *d) VERSION_SYMBOL(rte_distributor_flush, _v20, 2.0); /* clears the internal returns array in the distributor */ -void +void __vsym rte_distributor_clear_returns_v20(struct rte_distributor_v20 *d) { d->returns.start = d->returns.count = 0; @@ -383,7 +383,7 @@ rte_distributor_clear_returns_v20(struct rte_distributor_v20 *d) VERSION_SYMBOL(rte_distributor_clear_returns, _v20, 2.0); /* creates a distributor instance */ -struct rte_distributor_v20 * +struct rte_distributor_v20 * __vsym rte_distributor_create_v20(const char *name, unsigned socket_id, unsigned num_workers) diff --git a/lib/librte_eal/common/include/rte_function_versioning.h b/lib/librte_eal/common/include/rte_function_versioning.h index 55e88ffae..c924351d5 100644 --- a/lib/librte_eal/common/include/rte_function_versioning.h +++ b/lib/librte_eal/common/include/rte_function_versioning.h @@ -42,16 +42,23 @@ /* * VERSION_SYMBOL * Creates a symbol version table entry binding symbol @DPDK_ to the internal - * function name _ + * function name */ #define VERSION_SYMBOL(b, e, n) __asm__(".symver " RTE_STR(b) RTE_STR(e) ", " RTE_STR(b) "@DPDK_" RTE_STR(n)) /* * BIND_DEFAULT_SYMBOL * Creates a symbol version entry instructing the linker to bind references to - * symbol to the internal symbol _ + * symbol to the internal symbol */ #define BIND_DEFAULT_SYMBOL(b, e, n) __asm__(".symver " RTE_STR(b) RTE_STR(e) ", " RTE_STR(b) "@@DPDK_" RTE_STR(n)) + +/* + * __vsym + * Annotation to be used in declaration of the internal symbol to signal + * that it is being used as an implementation of a particular version of symbol + * . + */ #define __vsym __attribute__((used)) /* diff --git a/lib/librte_lpm/rte_lpm.c b/lib/librte_lpm/rte_lpm.c index c96395e26..106916dc8 100644 --- a/lib/librte_lpm/rte_lpm.c +++ b/lib/librte_lpm/rte_lpm.c @@ -90,7 +90,7 @@ depth_to_range(uint8_t depth) /* * Find an existing lpm table and return a pointer to it. */ -struct rte_lpm_v20 * +struct rte_lpm_v20 * __vsym rte_lpm_find_existing_v20(const char *name) { struct rte_lpm_v20 *l = NULL; @@ -116,7 +116,7 @@ rte_lpm_find_existing_v20(const char *name) } VERSION_SYMBOL(rte_lpm_find_existing, _v20, 2.0); -struct rte_lpm * +struct rte_lpm * __vsym rte_lpm_find_existing_v1604(const char *name) { struct rte_lpm *l = NULL; @@ -147,7 +147,7 @@ MAP_STATIC_SYMBOL(struct rte_lpm *rte_lpm_find_existing(const char *name), /* * Allocates memory for LPM object */ -struct rte_lpm_v20 * +struct rte_lpm_v20 * __vsym rte_lpm_create_v20(const char *name, int socket_id, int max_rules, __rte_unused int flags) { @@ -220,7 +220,7 @@ rte_lpm_create_v20(const char *name, int socket_id, int max_rules, } VERSION_SYMBOL(rte_lpm_create, _v20, 2.0); -struct rte_lpm * +struct rte_lpm * __vsym rte_lpm_create_v1604(const char *name, int socket_id, const struct rte_lpm_config *config) { @@ -329,7 +329,7 @@ MAP_STATIC_SYMBOL( /* * Deallocates memory for given LPM table. */ -void +void __vsym rte_lpm_free_v20(struct rte_lpm_v20 *lpm) { struct rte_lpm_list *lpm_list; @@ -358,7 +358,7 @@ rte_lpm_free_v20(struct rte_lpm_v20 *lpm) } VERSION_SYMBOL(rte_lpm_free, _v20, 2.0); -void +void __vsym rte_lpm_free_v1604(struct rte_lpm *lpm) { struct rte_lpm_list *lpm_list; @@ -1177,7 +1177,7 @@ add_depth_big_v1604(struct rte_lpm *lpm, uint32_t ip_masked, uint8_t depth, /* * Add a route */ -int +int __vsym rte_lpm_add_v20(struct rte_lpm_v20 *lpm, uint32_t ip, uint8_t depth, uint8_t next_hop) { @@ -1218,7 +1218,7 @@ rte_lpm_add_v20(struct rte_lpm_v20 *lpm, uint32_t ip, uint8_t depth, } VERSION_SYMBOL(rte_lpm_add, _v20, 2.0); -int +int __vsym rte_lpm_add_v1604(struct rte_lpm *lpm, uint32_t ip, uint8_t depth, uint32_t next_hop) { @@ -1264,7 +1264,7 @@ MAP_STATIC_SYMBOL(int rte_lpm_add(struct rte_lpm *lpm, uint32_t ip, /* * Look for a rule in the high-level rules table */ -int +int __vsym rte_lpm_is_rule_present_v20(struct rte_lpm_v20 *lpm, uint32_t ip, uint8_t depth, uint8_t *next_hop) { @@ -1291,7 +1291,7 @@ uint8_t *next_hop) } VERSION_SYMBOL(rte_lpm_is_rule_present, _v20, 2.0); -int +int __vsym rte_lpm_is_rule_present_v1604(struct rte_lpm *lpm, uint32_t ip, uint8_t depth, uint32_t *next_hop) { @@ -1844,7 +1844,7 @@ delete_depth_big_v1604(struct rte_lpm *lpm, uint32_t ip_masked, /* * Deletes a rule */ -int +int __vsym rte_lpm_delete_v20(struct rte_lpm_v20 *lpm, uint32_t ip, uint8_t depth) { int32_t rule_to_delete_index, sub_rule_index; @@ -1898,7 +1898,7 @@ rte_lpm_delete_v20(struct rte_lpm_v20 *lpm, uint32_t ip, uint8_t depth) } VERSION_SYMBOL(rte_lpm_delete, _v20, 2.0); -int +int __vsym rte_lpm_delete_v1604(struct rte_lpm *lpm, uint32_t ip, uint8_t depth) { int32_t rule_to_delete_index, sub_rule_index; @@ -1957,7 +1957,7 @@ MAP_STATIC_SYMBOL(int rte_lpm_delete(struct rte_lpm *lpm, uint32_t ip, /* * Delete all rules from the LPM table. */ -void +void __vsym rte_lpm_delete_all_v20(struct rte_lpm_v20 *lpm) { /* Zero rule information. */ @@ -1974,7 +1974,7 @@ rte_lpm_delete_all_v20(struct rte_lpm_v20 *lpm) } VERSION_SYMBOL(rte_lpm_delete_all, _v20, 2.0); -void +void __vsym rte_lpm_delete_all_v1604(struct rte_lpm *lpm) { /* Zero rule information. */ diff --git a/lib/librte_lpm/rte_lpm6.c b/lib/librte_lpm/rte_lpm6.c index e20f82460..0d161dc32 100644 --- a/lib/librte_lpm/rte_lpm6.c +++ b/lib/librte_lpm/rte_lpm6.c @@ -812,7 +812,7 @@ add_step(struct rte_lpm6 *lpm, struct rte_lpm6_tbl_entry *tbl, /* * Add a route */ -int +int __vsym rte_lpm6_add_v20(struct rte_lpm6 *lpm, uint8_t *ip, uint8_t depth, uint8_t next_hop) { @@ -862,7 +862,7 @@ simulate_add(struct rte_lpm6 *lpm, const uint8_t *masked_ip, uint8_t depth) return 0; } -int +int __vsym rte_lpm6_add_v1705(struct rte_lpm6 *lpm, uint8_t *ip, uint8_t depth, uint32_t next_hop) { @@ -955,7 +955,7 @@ lookup_step(const struct rte_lpm6 *lpm, const struct rte_lpm6_tbl_entry *tbl, /* * Looks up an IP */ -int +int __vsym rte_lpm6_lookup_v20(const struct rte_lpm6 *lpm, uint8_t *ip, uint8_t *next_hop) { uint32_t next_hop32 = 0; @@ -973,7 +973,7 @@ rte_lpm6_lookup_v20(const struct rte_lpm6 *lpm, uint8_t *ip, uint8_t *next_hop) } VERSION_SYMBOL(rte_lpm6_lookup, _v20, 2.0); -int +int __vsym rte_lpm6_lookup_v1705(const struct rte_lpm6 *lpm, uint8_t *ip, uint32_t *next_hop) { @@ -1008,7 +1008,7 @@ MAP_STATIC_SYMBOL(int rte_lpm6_lookup(const struct rte_lpm6 *lpm, uint8_t *ip, /* * Looks up a group of IP addresses */ -int +int __vsym rte_lpm6_lookup_bulk_func_v20(const struct rte_lpm6 *lpm, uint8_t ips[][RTE_LPM6_IPV6_ADDR_SIZE], int16_t * next_hops, unsigned n) @@ -1049,7 +1049,7 @@ rte_lpm6_lookup_bulk_func_v20(const struct rte_lpm6 *lpm, } VERSION_SYMBOL(rte_lpm6_lookup_bulk_func, _v20, 2.0); -int +int __vsym rte_lpm6_lookup_bulk_func_v1705(const struct rte_lpm6 *lpm, uint8_t ips[][RTE_LPM6_IPV6_ADDR_SIZE], int32_t *next_hops, unsigned int n) @@ -1099,7 +1099,7 @@ MAP_STATIC_SYMBOL(int rte_lpm6_lookup_bulk_func(const struct rte_lpm6 *lpm, /* * Look for a rule in the high-level rules table */ -int +int __vsym rte_lpm6_is_rule_present_v20(struct rte_lpm6 *lpm, uint8_t *ip, uint8_t depth, uint8_t *next_hop) { @@ -1119,7 +1119,7 @@ rte_lpm6_is_rule_present_v20(struct rte_lpm6 *lpm, uint8_t *ip, uint8_t depth, } VERSION_SYMBOL(rte_lpm6_is_rule_present, _v20, 2.0); -int +int __vsym rte_lpm6_is_rule_present_v1705(struct rte_lpm6 *lpm, uint8_t *ip, uint8_t depth, uint32_t *next_hop) { diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c index 3834c9473..381a9f43f 100644 --- a/lib/librte_timer/rte_timer.c +++ b/lib/librte_timer/rte_timer.c @@ -131,7 +131,7 @@ rte_timer_data_dealloc(uint32_t id) return 0; } -void +void __vsym rte_timer_subsystem_init_v20(void) { unsigned lcore_id; @@ -153,7 +153,7 @@ VERSION_SYMBOL(rte_timer_subsystem_init, _v20, 2.0); * secondary processes should be empty, the zeroth entry can be shared by * multiple processes. */ -int +int __vsym rte_timer_subsystem_init_v1905(void) { const struct rte_memzone *mz; @@ -551,7 +551,7 @@ __rte_timer_reset(struct rte_timer *tim, uint64_t expire, } /* Reset and start the timer associated with the timer handle tim */ -int +int __vsym rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks, enum rte_timer_type type, unsigned int tim_lcore, rte_timer_cb_t fct, void *arg) @@ -574,7 +574,7 @@ rte_timer_reset_v20(struct rte_timer *tim, uint64_t ticks, } VERSION_SYMBOL(rte_timer_reset, _v20, 2.0); -int +int __vsym rte_timer_reset_v1905(struct rte_timer *tim, uint64_t ticks, enum rte_timer_type type, unsigned int tim_lcore, rte_timer_cb_t fct, void *arg) @@ -657,14 +657,14 @@ __rte_timer_stop(struct rte_timer *tim, int local_is_locked, } /* Stop the timer associated with the timer handle tim */ -int +int __vsym rte_timer_stop_v20(struct rte_timer *tim) { return __rte_timer_stop(tim, 0, &default_timer_data); } VERSION_SYMBOL(rte_timer_stop, _v20, 2.0); -int +int __vsym rte_timer_stop_v1905(struct rte_timer *tim) { return rte_timer_alt_stop(default_data_id, tim); @@ -817,14 +817,14 @@ __rte_timer_manage(struct rte_timer_data *timer_data) priv_timer[lcore_id].running_tim = NULL; } -void +void __vsym rte_timer_manage_v20(void) { __rte_timer_manage(&default_timer_data); } VERSION_SYMBOL(rte_timer_manage, _v20, 2.0); -int +int __vsym rte_timer_manage_v1905(void) { struct rte_timer_data *timer_data; @@ -1074,14 +1074,14 @@ __rte_timer_dump_stats(struct rte_timer_data *timer_data __rte_unused, FILE *f) #endif } -void +void __vsym rte_timer_dump_stats_v20(FILE *f) { __rte_timer_dump_stats(&default_timer_data, f); } VERSION_SYMBOL(rte_timer_dump_stats, _v20, 2.0); -int +int __vsym rte_timer_dump_stats_v1905(FILE *f) { return rte_timer_alt_dump_stats(default_data_id, f); -- 2.17.1