This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via 54593e175a71f5716aa50e5a03be8c30bc15c550 (commit) via 7df357dd591cce23f76221945091a019c0caa7ec (commit) from a51c171ebe9e9b0aaced13bc0956bdb38c8cfc7b (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 54593e175a71f5716aa50e5a03be8c30bc15c550 Author: Maxim Uvarov maxim.uvarov@linaro.org Date: Fri Jan 27 18:19:15 2017 +0300
configure.ac: helper: print debug config option
Add debug print config option for helper and do not drop configure options for building helper.
Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org Reviewed-by: Mike Holmes mike.holmes@linaro.org
diff --git a/configure.ac b/configure.ac index 2cf6536..daa9b31 100644 --- a/configure.ac +++ b/configure.ac @@ -245,6 +245,16 @@ AC_ARG_ENABLE([debug-print], fi]) ODP_CFLAGS="$ODP_CFLAGS -DODP_DEBUG_PRINT=$ODP_DEBUG_PRINT"
+ODPH_DEBUG_PRINT=0 +AC_ARG_ENABLE([helper-debug-print], + [ --enable-helper-debug-print display helper debugging information], + [if test "x$enableval" = "xyes"; then + ODPH_DEBUG_PRINT=1 + else + ODPH_DEBUG_PRINT=0 + fi]) +ODP_CFLAGS="$ODP_CFLAGS -DODPH_DEBUG_PRINT=$ODPH_DEBUG_PRINT" + ########################################################################## # Enable/disable ODP_DEBUG ########################################################################## diff --git a/helper/Makefile.am b/helper/Makefile.am index 4d24a69..d484679 100644 --- a/helper/Makefile.am +++ b/helper/Makefile.am @@ -4,7 +4,7 @@ pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = $(top_builddir)/pkgconfig/libodphelper-linux-generic.pc
LIB = $(top_builddir)/lib -AM_CFLAGS = -I$(srcdir)/include +AM_CFLAGS += -I$(srcdir)/include AM_CFLAGS += -I$(top_srcdir)/platform/@with_platform@/include AM_CFLAGS += -I$(top_srcdir)/include AM_CFLAGS += -I$(top_builddir)/platform/@with_platform@/include diff --git a/helper/odph_debug.h b/helper/odph_debug.h index 9c216cd..36c743c 100644 --- a/helper/odph_debug.h +++ b/helper/odph_debug.h @@ -19,10 +19,6 @@ extern "C" { #endif
-#ifndef ODPH_DEBUG_PRINT -#define ODPH_DEBUG_PRINT 1 -#endif - /** * log level. */
commit 7df357dd591cce23f76221945091a019c0caa7ec Author: Maxim Uvarov maxim.uvarov@linaro.org Date: Fri Jan 27 18:19:14 2017 +0300
helper: fix compilation with warnings
After turning on lost CFLAGS for checking errors, following things needs to be corrected to make code compile.
Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org Reviewed-by: Mike Holmes mike.holmes@linaro.org
diff --git a/helper/chksum.c b/helper/chksum.c index b7eef67..f740618 100644 --- a/helper/chksum.c +++ b/helper/chksum.c @@ -49,7 +49,7 @@ static uint32_t data_seg_sum(uint8_t *data8_ptr, data_len--; }
- data16_ptr = (uint16_t *)data8_ptr; + data16_ptr = (uint16_t *)(void *)data8_ptr;
/* The following code tries to gain a modest performance enhancement by * unrolling the normal 16 bits at a time loop eight times. Even @@ -216,7 +216,7 @@ static inline int odph_process_l3_hdr(odp_packet_t odp_pkt, ipv6_hdr_ptr = &ipv6_hdr; }
- addrs_ptr = (uint16_t *)&ipv6_hdr_ptr->src_addr; + addrs_ptr = (uint16_t *)(void *)&ipv6_hdr_ptr->src_addr; addrs_len = 2 * ODPH_IPV6ADDR_LEN; protocol = ipv6_hdr_ptr->next_hdr; ipv6_payload_len = odp_be_to_cpu_16(ipv6_hdr_ptr->payload_len); diff --git a/helper/cuckootable.c b/helper/cuckootable.c index 83647ec..6a7fb21 100644 --- a/helper/cuckootable.c +++ b/helper/cuckootable.c @@ -148,18 +148,6 @@ align32pow2(uint32_t x) return x + 1; }
-/** - * Returns true if n is a power of 2 - * @param n - * Number to check - * @return 1 if true, 0 otherwise - */ -static inline int -is_power_of_2(uint32_t n) -{ - return n && !(n & (n - 1)); -} - odph_table_t odph_cuckoo_table_lookup(const char *name) { @@ -209,7 +197,7 @@ odph_cuckoo_table_create( }
/* Guarantee there's no existing */ - tbl = (odph_cuckoo_table_impl *)odph_cuckoo_table_lookup(name); + tbl = (odph_cuckoo_table_impl *)(void *)odph_cuckoo_table_lookup(name); if (tbl != NULL) { ODPH_DBG("cuckoo hash table %s already exists\n", name); return NULL; @@ -240,8 +228,7 @@ odph_cuckoo_table_create( /* header of this mem block is the table impl struct, * then the bucket pool. */ - tbl->buckets = (struct cuckoo_table_bucket *)( - (char *)tbl + impl_size); + tbl->buckets = (void *)((char *)tbl + impl_size);
/* initialize key-value buffer pool */ snprintf(pool_name, sizeof(pool_name), "kv_%s", name); @@ -309,17 +296,18 @@ odph_cuckoo_table_create( int odph_cuckoo_table_destroy(odph_table_t tbl) { - int ret, i, j; + int ret; odph_cuckoo_table_impl *impl = NULL; char pool_name[ODPH_TABLE_NAME_LEN + 3]; odp_event_t ev; odp_shm_t shm; odp_pool_t pool; + uint32_t i, j;
if (tbl == NULL) return -1;
- impl = (odph_cuckoo_table_impl *)tbl; + impl = (odph_cuckoo_table_impl *)(void *)tbl;
/* check magic word */ if (impl->magicword != ODPH_CUCKOO_TABLE_MAGIC_WORD) { @@ -578,11 +566,14 @@ cuckoo_table_add_key_with_hash( int odph_cuckoo_table_put_value(odph_table_t tbl, void *key, void *value) { + odph_cuckoo_table_impl *impl; + int ret; + if ((tbl == NULL) || (key == NULL)) return -EINVAL;
- odph_cuckoo_table_impl *impl = (odph_cuckoo_table_impl *)tbl; - int ret = cuckoo_table_add_key_with_hash( + impl = (odph_cuckoo_table_impl *)(void *)tbl; + ret = cuckoo_table_add_key_with_hash( impl, key, hash(impl, key), value);
if (ret < 0) @@ -651,17 +642,16 @@ cuckoo_table_lookup_with_hash( return -ENOENT; }
-int -odph_cuckoo_table_get_value( - odph_table_t tbl, void *key, void *buffer, uint32_t buffer_size) +int odph_cuckoo_table_get_value(odph_table_t tbl, void *key, + void *buffer, uint32_t buffer_size ODP_UNUSED) { - if ((tbl == NULL) || (key == NULL)) - return -EINVAL; - - odph_cuckoo_table_impl *impl = (odph_cuckoo_table_impl *)tbl; + odph_cuckoo_table_impl *impl = (odph_cuckoo_table_impl *)(void *)tbl; void *tmp = NULL; int ret;
+ if ((tbl == NULL) || (key == NULL)) + return -EINVAL; + ret = cuckoo_table_lookup_with_hash(impl, key, hash(impl, key), &tmp);
if (ret < 0) @@ -734,13 +724,13 @@ cuckoo_table_del_key_with_hash( int odph_cuckoo_table_remove_value(odph_table_t tbl, void *key) { + odph_cuckoo_table_impl *impl = (void *)tbl; + int ret; + if ((tbl == NULL) || (key == NULL)) return -EINVAL;
- odph_cuckoo_table_impl *impl = (odph_cuckoo_table_impl *)tbl; - int ret = cuckoo_table_del_key_with_hash( - impl, key, hash(impl, key)); - + ret = cuckoo_table_del_key_with_hash(impl, key, hash(impl, key)); if (ret < 0) return -1;
diff --git a/helper/hashtable.c b/helper/hashtable.c index 983b3da..1c2b852 100644 --- a/helper/hashtable.c +++ b/helper/hashtable.c @@ -101,9 +101,9 @@ odph_table_t odph_hash_table_create(const char *name, uint32_t capacity, * the last part is the element node pool */
- tbl->lock_pool = (odp_rwlock_t *)((char *)tbl + tbl->lock_pool = (odp_rwlock_t *)(void *)((char *)tbl + sizeof(odph_hash_table_imp)); - tbl->list_head_pool = (odph_list_head *)((char *)tbl->lock_pool + tbl->list_head_pool = (odph_list_head *)(void *)((char *)tbl->lock_pool + ODPH_MAX_BUCKET_NUM * sizeof(odp_rwlock_t));
node_mem = tbl->init_cap - sizeof(odph_hash_table_imp) @@ -112,8 +112,9 @@ odph_table_t odph_hash_table_create(const char *name, uint32_t capacity,
node_num = node_mem / (sizeof(odph_hash_node) + key_size + value_size); tbl->hash_node_num = node_num; - tbl->hash_node_pool = (odph_hash_node *)((char *)tbl->list_head_pool - + ODPH_MAX_BUCKET_NUM * sizeof(odph_list_head)); + tbl->hash_node_pool = + (odph_hash_node *)(void *)((char *)tbl->list_head_pool + + ODPH_MAX_BUCKET_NUM * sizeof(odph_list_head));
/* init every list head and rw lock */ for (i = 0; i < ODPH_MAX_BUCKET_NUM; i++) { @@ -130,8 +131,9 @@ int odph_hash_table_destroy(odph_table_t table) int ret;
if (table != NULL) { - odph_hash_table_imp *hash_tbl = (odph_hash_table_imp *)table; + odph_hash_table_imp *hash_tbl;
+ hash_tbl = (odph_hash_table_imp *)(void *)table; if (hash_tbl->magicword != ODPH_HASH_TABLE_MAGIC_WORD) return ODPH_FAIL;
@@ -164,7 +166,7 @@ odph_table_t odph_hash_table_lookup(const char *name) * This hash algorithm is the most simple one, so we choose it as an DEMO * User can use any other algorithm, like CRC... */ -uint16_t odp_key_hash(void *key, uint32_t key_size) +static uint16_t odp_key_hash(void *key, uint32_t key_size) { register uint32_t hash = 0; uint32_t idx = (key_size == 0 ? 1 : key_size); @@ -181,18 +183,19 @@ uint16_t odp_key_hash(void *key, uint32_t key_size) /** * Get an available node from pool */ -odph_hash_node *odp_hashnode_take(odph_table_t table) +static odph_hash_node *hashnode_take(odph_table_t table) { - odph_hash_table_imp *tbl = (odph_hash_table_imp *)table; + odph_hash_table_imp *tbl; uint32_t idx; odph_hash_node *node;
+ tbl = (odph_hash_table_imp *)(void *)table; for (idx = 0; idx < tbl->hash_node_num; idx++) { /** notice: memory of one hash_node is * not only sizeof(odph_hash_node) * should add the size of Flexible Array */ - node = (odph_hash_node *)((char *)tbl->hash_node_pool + node = (odph_hash_node *)(void *)((char *)tbl->hash_node_pool + idx * (sizeof(odph_hash_node) + tbl->key_size + tbl->value_size)); @@ -208,13 +211,15 @@ odph_hash_node *odp_hashnode_take(odph_table_t table) /** * Release an node to the pool */ -void odp_hashnode_give(odph_table_t table, odph_hash_node *node) +static void hashnode_give(odph_table_t table, odph_hash_node *node) { - odph_hash_table_imp *tbl = (odph_hash_table_imp *)table; + odph_hash_table_imp *tbl;
if (node == NULL) return;
+ tbl = (odph_hash_table_imp *)(void *)table; + odph_list_del(&node->list_node); memset(node, 0, (sizeof(odph_hash_node) + tbl->key_size + tbl->value_size)); @@ -223,7 +228,7 @@ void odp_hashnode_give(odph_table_t table, odph_hash_node *node) /* should make sure the input table exists and is available */ int odph_hash_put_value(odph_table_t table, void *key, void *value) { - odph_hash_table_imp *tbl = (odph_hash_table_imp *)table; + odph_hash_table_imp *tbl; uint16_t hash = 0; odph_hash_node *node = NULL; char *tmp = NULL; @@ -231,6 +236,7 @@ int odph_hash_put_value(odph_table_t table, void *key, void *value) if (table == NULL || key == NULL || value == NULL) return ODPH_FAIL;
+ tbl = (odph_hash_table_imp *)(void *)table; /* hash value is just the index of the list head in pool */ hash = odp_key_hash(key, tbl->key_size);
@@ -249,7 +255,7 @@ int odph_hash_put_value(odph_table_t table, void *key, void *value) }
/*if the key is a new one, get a new hash node form the pool */ - node = odp_hashnode_take(table); + node = hashnode_take(table); if (node == NULL) { odp_rwlock_write_unlock(&tbl->lock_pool[hash]); return ODPH_FAIL; @@ -271,11 +277,13 @@ int odph_hash_put_value(odph_table_t table, void *key, void *value) int odph_hash_get_value(odph_table_t table, void *key, void *buffer, uint32_t buffer_size) { - odph_hash_table_imp *tbl = (odph_hash_table_imp *)table; + odph_hash_table_imp *tbl; uint16_t hash = 0; odph_hash_node *node; char *tmp = NULL;
+ tbl = (odph_hash_table_imp *)(void *)table; + if (table == NULL || key == NULL || buffer == NULL || buffer_size < tbl->value_size) return ODPH_FAIL; @@ -308,13 +316,15 @@ int odph_hash_get_value(odph_table_t table, void *key, void *buffer, /* should make sure the input table exists and is available */ int odph_hash_remove_value(odph_table_t table, void *key) { - odph_hash_table_imp *tbl = (odph_hash_table_imp *)table; + odph_hash_table_imp *tbl; uint16_t hash = 0; odph_hash_node *node;
if (table == NULL || key == NULL) return ODPH_FAIL;
+ tbl = (odph_hash_table_imp *)(void *)table; + /* hash value is just the index of the list head in pool */ hash = odp_key_hash(key, tbl->key_size);
@@ -324,7 +334,7 @@ int odph_hash_remove_value(odph_table_t table, void *key) list_node) { if (memcmp(node->content, key, tbl->key_size) == 0) { - odp_hashnode_give(table, node); + hashnode_give(table, node); odp_rwlock_write_unlock(&tbl->lock_pool[hash]); return ODPH_SUCCESS; } diff --git a/helper/iplookuptable.c b/helper/iplookuptable.c index f6d6f88..aaebea3 100644 --- a/helper/iplookuptable.c +++ b/helper/iplookuptable.c @@ -60,7 +60,7 @@ typedef struct { } prefix_entry_t;
#define ENTRY_SIZE (sizeof(prefix_entry_t) + sizeof(odp_buffer_t)) -#define ENTRY_BUFF_ARR(x) ((odp_buffer_t *)((char *)x \ +#define ENTRY_BUFF_ARR(x) ((odp_buffer_t *)(void *)((char *)x \ + sizeof(prefix_entry_t) * ENTRY_NUM_SUBTREE))
/** @internal trie node struct @@ -434,16 +434,15 @@ odph_iplookup_table_lookup(const char *name) return NULL; }
-odph_table_t -odph_iplookup_table_create( - const char *name, uint32_t ODP_IGNORED_1, - uint32_t ODP_IGNORED_2, uint32_t value_size) +odph_table_t odph_iplookup_table_create(const char *name, + uint32_t p1 ODP_UNUSED, + uint32_t p2 ODP_UNUSED, + uint32_t value_size) { odph_iplookup_table_impl *tbl; odp_shm_t shm_tbl; odp_queue_t queue; odp_queue_param_t qparam; - unsigned i; uint32_t impl_size, l1_size; char queue_name[ODPH_TABLE_NAME_LEN + 2]; @@ -455,7 +454,7 @@ odph_iplookup_table_create( }
/* Guarantee there's no existing */ - tbl = (odph_iplookup_table_impl *)odph_iplookup_table_lookup(name); + tbl = (void *)odph_iplookup_table_lookup(name); if (tbl != NULL) { ODPH_DBG("IP prefix table %s already exists\n", name); return NULL; @@ -482,7 +481,7 @@ odph_iplookup_table_create( /* header of this mem block is the table impl struct, * then the l1 entries array. */ - tbl->l1e = (prefix_entry_t *)((char *)tbl + impl_size); + tbl->l1e = (prefix_entry_t *)(void *)((char *)tbl + impl_size); for (i = 0; i < ENTRY_NUM_L1; i++) tbl->l1e[i].nexthop = ODP_BUFFER_INVALID;
@@ -528,7 +527,7 @@ odph_iplookup_table_destroy(odph_table_t tbl) if (tbl == NULL) return -1;
- impl = (odph_iplookup_table_impl *)tbl; + impl = (odph_iplookup_table_impl *)(void *)tbl;
/* check magic word */ if (impl->magicword != ODPH_IP_LOOKUP_TABLE_MAGIC_WORD) { @@ -664,15 +663,15 @@ prefix_insert_iter( int odph_iplookup_table_put_value(odph_table_t tbl, void *key, void *value) { - if ((tbl == NULL) || (key == NULL) || (value == NULL)) - return -1; - - odph_iplookup_table_impl *impl = (odph_iplookup_table_impl *)tbl; + odph_iplookup_table_impl *impl = (void *)tbl; odph_iplookup_prefix_t *prefix = (odph_iplookup_prefix_t *)key; prefix_entry_t *l1e = NULL; odp_buffer_t nexthop = *((odp_buffer_t *)value); int ret = 0;
+ if ((tbl == NULL) || (key == NULL) || (value == NULL)) + return -1; + if (prefix->cidr == 0) return -1; prefix->ip = prefix->ip & (0xffffffff << (IP_LENGTH - prefix->cidr)); @@ -704,18 +703,18 @@ odph_iplookup_table_put_value(odph_table_t tbl, void *key, void *value) return ret; }
-int -odph_iplookup_table_get_value( - odph_table_t tbl, void *key, void *buffer, uint32_t buffer_size) +int odph_iplookup_table_get_value(odph_table_t tbl, void *key, + void *buffer ODP_UNUSED, + uint32_t buffer_size ODP_UNUSED) { - if ((tbl == NULL) || (key == NULL) || (buffer == NULL)) - return -EINVAL; - - odph_iplookup_table_impl *impl = (odph_iplookup_table_impl *)tbl; + odph_iplookup_table_impl *impl = (void *)tbl; uint32_t ip = *((uint32_t *)key); prefix_entry_t *entry = &impl->l1e[ip >> 16]; odp_buffer_t *buff = (odp_buffer_t *)buffer;
+ if ((tbl == NULL) || (key == NULL) || (buffer == NULL)) + return -EINVAL; + if (entry == NULL) { ODPH_DBG("failed to get L1 entry.\n"); return -1; @@ -880,15 +879,15 @@ prefix_delete_iter( int odph_iplookup_table_remove_value(odph_table_t tbl, void *key) { - if ((tbl == NULL) || (key == NULL)) - return -EINVAL; - - odph_iplookup_table_impl *impl = (odph_iplookup_table_impl *)tbl; + odph_iplookup_table_impl *impl = (void *)tbl; odph_iplookup_prefix_t *prefix = (odph_iplookup_prefix_t *)key; uint32_t ip = prefix->ip; uint8_t cidr = prefix->cidr;
- if (prefix->cidr < 0) + if ((tbl == NULL) || (key == NULL)) + return -EINVAL; + + if (!prefix->cidr) return -EINVAL;
prefix_entry_t *entry = &impl->l1e[ip >> 16]; diff --git a/helper/lineartable.c b/helper/lineartable.c index 8917901..e1a396c 100644 --- a/helper/lineartable.c +++ b/helper/lineartable.c @@ -41,9 +41,10 @@ typedef struct { */
odph_table_t odph_linear_table_create(const char *name, uint32_t capacity, - uint32_t ODP_IGNORED, uint32_t value_size) + uint32_t un ODPH_UNUSED, + uint32_t value_size) { - int idx; + uint32_t idx; uint32_t node_num; odp_shm_t shmem; odph_linear_table_imp *tbl; @@ -90,8 +91,10 @@ odph_table_t odph_linear_table_create(const char *name, uint32_t capacity,
/* initialize rwlock*/ for (idx = 0; idx < tbl->node_sum; idx++) { - odp_rwlock_t *lock = (odp_rwlock_t *)((char *)tbl->value_array - + idx * tbl->value_size); + odp_rwlock_t *lock; + + lock = (odp_rwlock_t *)(void *)((char *)tbl->value_array + + idx * tbl->value_size); odp_rwlock_init(lock); }
@@ -106,7 +109,7 @@ int odph_linear_table_destroy(odph_table_t table) odph_linear_table_imp *linear_tbl = NULL;
if (table != NULL) { - linear_tbl = (odph_linear_table_imp *)table; + linear_tbl = (odph_linear_table_imp *)(void *)table;
/* check magicword, make sure the memory is used by a table */ if (linear_tbl->magicword != ODPH_LINEAR_TABLE_MAGIC_WORD) @@ -142,9 +145,10 @@ odph_table_t odph_linear_table_lookup(const char *name) }
/* should make sure the input table exists and is available */ -int odph_lineartable_put_value(odph_table_t table, void *key, void *value) +static int odph_lineartable_put_value(odph_table_t table, + void *key, void *value) { - odph_linear_table_imp *tbl = (odph_linear_table_imp *)table; + odph_linear_table_imp *tbl; uint32_t ikey = 0; void *entry = NULL; odp_rwlock_t *lock = NULL; @@ -152,6 +156,7 @@ int odph_lineartable_put_value(odph_table_t table, void *key, void *value) if (table == NULL || key == NULL || value == NULL) return ODPH_FAIL;
+ tbl = (odph_linear_table_imp *)(void *)table; ikey = *(uint32_t *)key; if (ikey >= tbl->node_sum) return ODPH_FAIL; @@ -170,10 +175,11 @@ int odph_lineartable_put_value(odph_table_t table, void *key, void *value) }
/* should make sure the input table exists and is available */ -int odph_lineartable_get_value(odph_table_t table, void *key, void *buffer, - uint32_t buffer_size) +static int odph_lineartable_get_value(odph_table_t table, + void *key, void *buffer, + uint32_t buffer_size ODPH_UNUSED) { - odph_linear_table_imp *tbl = (odph_linear_table_imp *)table; + odph_linear_table_imp *tbl; uint32_t ikey = 0; void *entry = NULL; odp_rwlock_t *lock = NULL; @@ -181,6 +187,7 @@ int odph_lineartable_get_value(odph_table_t table, void *key, void *buffer, if (table == NULL || key == NULL || buffer == NULL) return ODPH_FAIL;
+ tbl = (odph_linear_table_imp *)(void *)table; ikey = *(uint32_t *)key; if (ikey >= tbl->node_sum) return ODPH_FAIL; diff --git a/helper/threads.c b/helper/threads.c index fe5d2bd..cb747e5 100644 --- a/helper/threads.c +++ b/helper/threads.c @@ -419,7 +419,7 @@ int odph_parse_options(int argc, char *argv[], {0, 0, 0, 0} };
- static char *helper_short_options = ""; + static const char *helper_short_options = "";
/* defaults: */ helper_options.proc = false;
-----------------------------------------------------------------------
Summary of changes: configure.ac | 10 ++++++++++ helper/Makefile.am | 2 +- helper/chksum.c | 4 ++-- helper/cuckootable.c | 50 ++++++++++++++++++++------------------------------ helper/hashtable.c | 42 ++++++++++++++++++++++++++---------------- helper/iplookuptable.c | 49 ++++++++++++++++++++++++------------------------- helper/lineartable.c | 27 +++++++++++++++++---------- helper/odph_debug.h | 4 ---- helper/threads.c | 2 +- 9 files changed, 101 insertions(+), 89 deletions(-)
hooks/post-receive