doc: add Meson coding style to contributors guide
[dpdk.git] / lib / librte_compressdev / rte_compressdev_pmd.h
index 45ab61c..16b6bc6 100644 (file)
@@ -51,11 +51,6 @@ struct rte_compressdev_global {
        uint8_t max_devs;               /**< Max number of devices */
 };
 
-/** Pointer to global array of comp devices */
-extern struct rte_compressdev *rte_compressdevs;
-/** Pointer to global comp devices data structure */
-extern struct rte_compressdev_global *rte_compressdev_globals;
-
 /**
  * Get the rte_compressdev structure device pointer for the named device.
  *
@@ -64,7 +59,8 @@ extern struct rte_compressdev_global *rte_compressdev_globals;
  * @return
  *   - The rte_compressdev structure pointer for the given device identifier.
  */
-struct rte_compressdev * __rte_experimental
+__rte_experimental
+struct rte_compressdev *
 rte_compressdev_pmd_get_named_dev(const char *name);
 
 /**
@@ -116,11 +112,34 @@ typedef void (*compressdev_stop_t)(struct rte_compressdev *dev);
 typedef int (*compressdev_close_t)(struct rte_compressdev *dev);
 
 
+/**
+ * Function used to get statistics of a device.
+ *
+ * @param dev
+ *   Compress device
+ * @param stats
+ *   Compress device stats to populate
+ */
+typedef void (*compressdev_stats_get_t)(struct rte_compressdev *dev,
+                               struct rte_compressdev_stats *stats);
+
+
+/**
+ * Function used to reset statistics of a device.
+ *
+ * @param dev
+ *   Compress device
+ */
+typedef void (*compressdev_stats_reset_t)(struct rte_compressdev *dev);
+
+
 /**
  * Function used to get specific information of a device.
  *
  * @param dev
  *   Compress device
+ * @param dev_info
+ *   Compress device information to populate
  */
 typedef void (*compressdev_info_get_t)(struct rte_compressdev *dev,
                                struct rte_compressdev_info *dev_info);
@@ -157,14 +176,40 @@ typedef int (*compressdev_queue_pair_release_t)(struct rte_compressdev *dev,
                uint16_t qp_id);
 
 /**
- * Get number of available queue pairs of a device.
+ * Create driver private stream data.
  *
  * @param dev
- *   Compress device
+ *   Compressdev device
+ * @param xform
+ *   xform data
+ * @param stream
+ *   ptr where handle of pmd's private stream data should be stored
+ * @return
+ *  - Returns 0 if private stream structure has been created successfully.
+ *  - Returns -EINVAL if input parameters are invalid.
+ *  - Returns -ENOTSUP if comp device does not support STATEFUL operations.
+ *  - Returns -ENOTSUP if comp device does not support the comp transform.
+ *  - Returns -ENOMEM if the private stream could not be allocated.
+ */
+typedef int (*compressdev_stream_create_t)(struct rte_compressdev *dev,
+               const struct rte_comp_xform *xform, void **stream);
+
+/**
+ * Free driver private stream data.
+ *
+ * @param dev
+ *   Compressdev device
+ * @param stream
+ *   handle of pmd's private stream data
  * @return
- *   Returns number of queue pairs on success.
+ *  - 0 if successful
+ *  - <0 in error cases
+ *  - Returns -EINVAL if input parameters are invalid.
+ *  - Returns -ENOTSUP if comp device does not support STATEFUL operations.
+ *  - Returns -EBUSY if can't free stream as there are inflight operations
  */
-typedef uint32_t (*compressdev_queue_pair_count_t)(struct rte_compressdev *dev);
+typedef int (*compressdev_stream_free_t)(struct rte_compressdev *dev,
+               void *stream);
 
 /**
  * Create driver private_xform data.
@@ -211,11 +256,21 @@ struct rte_compressdev_ops {
 
        compressdev_info_get_t dev_infos_get;   /**< Get device info. */
 
+       compressdev_stats_get_t stats_get;
+       /**< Get device statistics. */
+       compressdev_stats_reset_t stats_reset;
+       /**< Reset device statistics. */
+
        compressdev_queue_pair_setup_t queue_pair_setup;
        /**< Set up a device queue pair. */
        compressdev_queue_pair_release_t queue_pair_release;
        /**< Release a queue pair. */
 
+       compressdev_stream_create_t stream_create;
+       /**< Create a comp stream and initialise its private data. */
+       compressdev_stream_free_t stream_free;
+       /**< Free a comp stream's private data. */
+
        compressdev_private_xform_create_t private_xform_create;
        /**< Create a comp private_xform and initialise its private data. */
        compressdev_private_xform_free_t private_xform_free;
@@ -237,7 +292,8 @@ struct rte_compressdev_ops {
  * @return
  *   - Slot in the rte_dev_devices array for a new device;
  */
-struct rte_compressdev * __rte_experimental
+__rte_experimental
+struct rte_compressdev *
 rte_compressdev_pmd_allocate(const char *name, int socket_id);
 
 /**
@@ -252,7 +308,8 @@ rte_compressdev_pmd_allocate(const char *name, int socket_id);
  * @return
  *   - 0 on success, negative on error
  */
-int __rte_experimental
+__rte_experimental
+int
 rte_compressdev_pmd_release_device(struct rte_compressdev *dev);
 
 
@@ -274,7 +331,8 @@ rte_compressdev_pmd_release_device(struct rte_compressdev *dev);
  *  - 0 on success
  *  - errno on failure
  */
-int __rte_experimental
+__rte_experimental
+int
 rte_compressdev_pmd_parse_input_args(
                struct rte_compressdev_pmd_init_params *params,
                const char *args);
@@ -295,7 +353,8 @@ rte_compressdev_pmd_parse_input_args(
  *  - comp device instance on success
  *  - NULL on creation failure
  */
-struct rte_compressdev * __rte_experimental
+__rte_experimental
+struct rte_compressdev *
 rte_compressdev_pmd_create(const char *name,
                struct rte_device *device,
                size_t private_data_size,
@@ -313,7 +372,8 @@ rte_compressdev_pmd_create(const char *name,
  *  - 0 on success
  *  - errno on failure
  */
-int __rte_experimental
+__rte_experimental
+int
 rte_compressdev_pmd_destroy(struct rte_compressdev *dev);
 
 #ifdef __cplusplus