Re: [RFC v2] lib: add compressdev API
From: Verma, Shally <hidden>
Date: 2017-12-07 09:58:57
-----Original Message----- From: Trahe, Fiona [mailto:fiona.trahe@intel.com] Sent: 24 November 2017 22:26 To: dev@dpdk.org; Verma, Shally <redacted> Cc: Challa, Mahipal <redacted>; Athreya, Narayana Prasad [off-list ref]; pablo.de.lara.guarch@intel.com; fiona.trahe@intel.com Subject: [RFC v2] lib: add compressdev API compressdev API Signed-off-by: Trahe, Fiona <redacted> ---
//snip//
+unsigned int
+rte_compressdev_get_header_session_size(void)
+{
+ /*
+ * Header contains pointers to the private data
+ * of all registered drivers
+ */
+ return (sizeof(void *) * nb_drivers);
+}
+
+unsigned int
+rte_compressdev_get_private_session_size(uint8_t dev_id)
+{
+ struct rte_compressdev *dev;
+ unsigned int header_size = sizeof(void *) * nb_drivers;
+ unsigned int priv_sess_size;
+
+ if (!rte_compressdev_pmd_is_valid_dev(dev_id))
+ return 0;
+
+ dev = rte_compressdev_pmd_get_dev(dev_id);
+
+ if (*dev->dev_ops->session_get_size == NULL)
+ return 0;
+
+ priv_sess_size = (*dev->dev_ops->session_get_size)(dev);
+
+ /*
+ * If size is less than session header size,
+ * return the latter, as this guarantees that
+ * sessionless operations will work
+ */[Shally] believe this comment need an edit
+ if (priv_sess_size < header_size) + return header_size; + + return priv_sess_size;
[Shally] This doesn't return header_size inclusive which is fine as per API definition. So should application call rte_compressdev_get_header_session_size() in case it want to know header_size overhead per session and allocate pool with elt_size = sess_header_size + dev_priv_sz?
+ +}
//snip// Thanks Shally