From: Bill Fischofer <bill.fischo...@linaro.org>

Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org>
Signed-off-by: Taras Kondratiuk <taras.kondrat...@linaro.org>
---
 .../linux-generic/include/api/odp_buffer_pool.h    | 28 ++++++++++++++++++++++
 platform/linux-generic/odp_buffer_pool.c           | 20 ++++++++++++++++
 2 files changed, 48 insertions(+)

diff --git a/platform/linux-generic/include/api/odp_buffer_pool.h 
b/platform/linux-generic/include/api/odp_buffer_pool.h
index 312b5f6..e6bf5a7 100644
--- a/platform/linux-generic/include/api/odp_buffer_pool.h
+++ b/platform/linux-generic/include/api/odp_buffer_pool.h
@@ -104,6 +104,34 @@ int odp_buffer_pool_destroy(odp_buffer_pool_t pool);
  */
 odp_buffer_pool_t odp_buffer_pool_lookup(const char *name);
 
+/**
+ * Buffer pool information struct
+ * Used to get information about a buffer pool.
+ */
+typedef struct odp_buffer_pool_info_t {
+       const char *name;                 /**< pool name */
+       odp_shm_t shm;                    /**< handle of shared memory area
+                                            supplied by application to
+                                            contain buffer pool, or
+                                            ODP_SHM_NULL if this pool is
+                                            managed by ODP */
+       odp_buffer_pool_param_t params;   /**< pool parameters */
+} odp_buffer_pool_info_t;
+
+/**
+ * Retrieve information about a buffer pool
+ *
+ * @param pool         Buffer pool handle
+ *
+ * @param[out] info    Receives an odp_buffer_pool_info_t object
+ *                     that describes the pool.
+ *
+ * @retval 0 Success
+ * @retval -1 Failure.  Info could not be retrieved.
+ */
+
+int odp_buffer_pool_info(odp_buffer_pool_t pool,
+                        odp_buffer_pool_info_t *info);
 
 /**
  * Print buffer pool info
diff --git a/platform/linux-generic/odp_buffer_pool.c 
b/platform/linux-generic/odp_buffer_pool.c
index e2511af..e947dde 100644
--- a/platform/linux-generic/odp_buffer_pool.c
+++ b/platform/linux-generic/odp_buffer_pool.c
@@ -390,6 +390,26 @@ odp_buffer_pool_t odp_buffer_pool_lookup(const char *name)
        return ODP_BUFFER_POOL_INVALID;
 }
 
+int odp_buffer_pool_info(odp_buffer_pool_t pool_hdl,
+                        odp_buffer_pool_info_t *info)
+{
+       uint32_t pool_id = pool_handle_to_index(pool_hdl);
+       pool_entry_t *pool = get_pool_entry(pool_id);
+
+       if (pool == NULL || info == NULL)
+               return -1;
+
+       info->name = pool->s.name;
+       info->shm  = pool->s.flags.user_supplied_shm ?
+               pool->s.pool_shm : ODP_SHM_NULL;
+       info->params.buf_size  = pool->s.params.buf_size;
+       info->params.buf_align = pool->s.params.buf_align;
+       info->params.num_bufs  = pool->s.params.num_bufs;
+       info->params.buf_type  = pool->s.params.buf_type;
+
+       return 0;
+}
+
 int odp_buffer_pool_destroy(odp_buffer_pool_t pool_hdl)
 {
        uint32_t pool_id = pool_handle_to_index(pool_hdl);
-- 
1.9.1


_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to