Hi, Zoltan

On 11.08.15 21:31, Zoltan Kiss wrote:
Applications can preset certain parts of the buffer or user area, so when that
memory will be allocated it starts from a known state. If the platform
allocates the memory during pool creation, it's enough to run the constructor
after that. If it's allocating memory on demand, it should call the
constructor each time.

Could you please clarify for what it's needed for.

The main questions after first glance:
What use-case is it intended for?
Why this cannot be done by implementation implicitly?
Why should an application know about some hash, buffer preallocation, etc?
What is an application going to do with a hash?
What is some profit of this?


Signed-off-by: Zoltan Kiss <[email protected]>
---
  include/odp/api/pool.h | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)

diff --git a/include/odp/api/pool.h b/include/odp/api/pool.h
index 2e79a55..1bd19bf 100644
--- a/include/odp/api/pool.h
+++ b/include/odp/api/pool.h
@@ -41,6 +41,20 @@ extern "C" {
  #define ODP_POOL_NAME_LEN  32

  /**
+ * Buffer constructor callback function for pools.
+ *
+ * @param pool          Handle of the pool which owns the buffer
+ * @param buf_ctor_arg  Opaque pointer defined in odp_pool_param_t
+ * @param buf           Pointer to the buffer
+ *
+ * @note If the application specifies this pointer, it expects that every 
buffer
+ * is initialized with it when the underlying memory is allocated.
+ */
+typedef void (odp_pool_buf_ctor_t)(odp_pool_t pool,
+                                  void *buf_ctor_arg,
+                                  void *buf);
+
+/**
   * Pool parameters
   * Used to communicate pool creation options.
   */
@@ -88,6 +102,12 @@ typedef struct odp_pool_param_t {
                        uint32_t num;
                } tmo;
        };
+
+       /** Buffer constructor to initialize every buffer. Use NULL if no
+           initialization needed. */
+       odp_pool_buf_ctor_t *buf_ctor;
+       /** Opaque pointer passed to buffer constructor */
+       void *buf_ctor_arg;
  } odp_pool_param_t;

  /** Packet pool*/


--
Regards,
Ivan Khoronzhuk
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to