X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_compressdev%2Frte_compressdev_pmd.h;h=c8e017577cf3bc90d4b6a5f95ecc6ec2523a438c;hb=30f9f9f451531e41a1c51fe93ca965adb5a12e27;hp=14ce76b446ac8085ad17c1b8eb1864026f6cdbc0;hpb=24a0fef851fb0f94fc4dd23b8acaf885e9deaf93;p=dpdk.git diff --git a/lib/librte_compressdev/rte_compressdev_pmd.h b/lib/librte_compressdev/rte_compressdev_pmd.h index 14ce76b446..c8e017577c 100644 --- a/lib/librte_compressdev/rte_compressdev_pmd.h +++ b/lib/librte_compressdev/rte_compressdev_pmd.h @@ -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,6 +112,27 @@ 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. * @@ -166,6 +183,77 @@ typedef int (*compressdev_queue_pair_release_t)(struct rte_compressdev *dev, */ typedef uint32_t (*compressdev_queue_pair_count_t)(struct rte_compressdev *dev); +/** + * Create driver private stream data. + * + * @param dev + * 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 + * - 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 int (*compressdev_stream_free_t)(struct rte_compressdev *dev, + void *stream); + +/** + * Create driver private_xform data. + * + * @param dev + * Compressdev device + * @param xform + * xform data + * @param private_xform + * ptr where handle of pmd's private_xform data should be stored + * @return + * - if successful returns 0 + * and valid private_xform handle + * - <0 in error cases + * - Returns -EINVAL if input parameters are invalid. + * - Returns -ENOTSUP if comp device does not support the comp transform. + * - Returns -ENOMEM if the private_xform could not be allocated. + */ +typedef int (*compressdev_private_xform_create_t)(struct rte_compressdev *dev, + const struct rte_comp_xform *xform, void **private_xform); + +/** + * Free driver private_xform data. + * + * @param dev + * Compressdev device + * @param private_xform + * handle of pmd's private_xform data + * @return + * - 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 + */ +typedef int (*compressdev_private_xform_free_t)(struct rte_compressdev *dev, + void *private_xform); /** comp device operations function pointer table */ struct rte_compressdev_ops { @@ -176,10 +264,25 @@ 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; + /**< Free a comp private_xform's data. */ }; /** @@ -197,7 +300,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); /** @@ -212,7 +316,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); @@ -234,7 +339,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); @@ -255,7 +361,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, @@ -273,7 +380,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