X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_compressdev%2Frte_compressdev.h;h=d3c0000f0154d4580d4e989f99ce8868f4c676f8;hb=5897ac139355e2d6602c89b0a1d28e609d6f6ebc;hp=d52103e15936ed713298a9ea2b645c585f3f7a1d;hpb=5d432f364078f04fb476ae910773ca4cbfee8ef2;p=dpdk.git diff --git a/lib/librte_compressdev/rte_compressdev.h b/lib/librte_compressdev/rte_compressdev.h index d52103e159..d3c0000f01 100644 --- a/lib/librte_compressdev/rte_compressdev.h +++ b/lib/librte_compressdev/rte_compressdev.h @@ -73,6 +73,12 @@ rte_compressdev_capability_get(uint8_t dev_id, /**< Utilises CPU SIMD AVX512 instructions */ #define RTE_COMPDEV_FF_CPU_NEON (1ULL << 5) /**< Utilises CPU NEON instructions */ +#define RTE_COMPDEV_FF_OP_DONE_IN_DEQUEUE (1ULL << 6) +/**< A PMD should set this if the bulk of the + * processing is done during the dequeue. It should leave it + * cleared if the processing is done during the enqueue (default). + * Applications can use this as a hint for tuning. + */ /** * Get the name of a compress device feature flag. @@ -111,6 +117,19 @@ struct rte_compressdev_stats { /**< Total error count on operations dequeued */ }; + +/** + * Get the device identifier for the named compress device. + * + * @param name + * Device name to select the device structure + * @return + * - Returns compress device identifier on success. + * - Return -1 on failure to find named compress device. + */ +int __rte_experimental +rte_compressdev_get_dev_id(const char *name); + /** * Get the compress device name given a device identifier. * @@ -395,6 +414,13 @@ rte_compressdev_dequeue_burst(uint8_t dev_id, uint16_t qp_id, * @note All compression operations are Out-of-place (OOP) operations, * as the size of the output data is different to the size of the input data. * + * @note The rte_comp_op contains both input and output parameters and is the + * vehicle for the application to pass data into and out of the PMD. While an + * op is inflight, i.e. once it has been enqueued, the private_xform or stream + * attached to it and any mbufs or memory referenced by it should not be altered + * or freed by the application. The PMD may use or change some of this data at + * any time until it has been returned in a dequeue operation. + * * @note The flush flag only applies to operations which return SUCCESS. * In OUT_OF_SPACE cases whether STATEFUL or STATELESS, data in dest buffer * is as if flush flag was FLUSH_NONE. @@ -503,6 +529,8 @@ rte_compressdev_private_xform_create(uint8_t dev_id, /** * This should clear the private_xform and return it to the device's mempool. + * It is the application's responsibility to ensure that private_xform data + * is not cleared while there are still in-flight operations using it. * * @param dev_id * Compress device identifier @@ -514,7 +542,6 @@ rte_compressdev_private_xform_create(uint8_t dev_id, * - 0 if successful * - <0 in error cases * - Returns -EINVAL if input parameters are invalid. - * - Returns -EBUSY if can't free private_xform due to inflight operations */ int __rte_experimental rte_compressdev_private_xform_free(uint8_t dev_id, void *private_xform);