X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_mempool%2Frte_mempool_ops.c;h=22c5251eb0687ac072543ccb6d64919d4556f7dd;hb=1b7b9f170fcebbbd0708fab554dcb5a7badef8cf;hp=ea9be1eb24668397400cf84f707ffa2978da0571;hpb=05912855bcd69742eeea42c1cf987fb501b7239a;p=dpdk.git diff --git a/lib/librte_mempool/rte_mempool_ops.c b/lib/librte_mempool/rte_mempool_ops.c index ea9be1eb24..22c5251eb0 100644 --- a/lib/librte_mempool/rte_mempool_ops.c +++ b/lib/librte_mempool/rte_mempool_ops.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -51,7 +52,7 @@ rte_mempool_register_ops(const struct rte_mempool_ops *h) ops_index = rte_mempool_ops_table.num_ops++; ops = &rte_mempool_ops_table.ops[ops_index]; - snprintf(ops->name, sizeof(ops->name), "%s", h->name); + strlcpy(ops->name, h->name, sizeof(ops->name)); ops->alloc = h->alloc; ops->free = h->free; ops->enqueue = h->enqueue; @@ -59,6 +60,8 @@ rte_mempool_register_ops(const struct rte_mempool_ops *h) ops->get_count = h->get_count; ops->calc_mem_size = h->calc_mem_size; ops->populate = h->populate; + ops->get_info = h->get_info; + ops->dequeue_contig_blocks = h->dequeue_contig_blocks; rte_spinlock_unlock(&rte_mempool_ops_table.sl); @@ -97,7 +100,9 @@ rte_mempool_ops_get_count(const struct rte_mempool *mp) return ops->get_count(mp); } -/* wrapper to notify new memory area to external mempool */ +/* wrapper to calculate the memory size required to store given number + * of objects + */ ssize_t rte_mempool_ops_calc_mem_size(const struct rte_mempool *mp, uint32_t obj_num, uint32_t pg_shift, @@ -134,6 +139,20 @@ rte_mempool_ops_populate(struct rte_mempool *mp, unsigned int max_objs, obj_cb_arg); } +/* wrapper to get additional mempool info */ +int +rte_mempool_ops_get_info(const struct rte_mempool *mp, + struct rte_mempool_info *info) +{ + struct rte_mempool_ops *ops; + + ops = rte_mempool_get_ops(mp->ops_index); + + RTE_FUNC_PTR_OR_ERR_RET(ops->get_info, -ENOTSUP); + return ops->get_info(mp, info); +} + + /* sets mempool ops previously registered by rte_mempool_register_ops. */ int rte_mempool_set_ops_byname(struct rte_mempool *mp, const char *name,