X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=lib%2Flibrte_bbdev%2Frte_bbdev.c;h=28434e08480f1286f26569d80489e59023552841;hb=dc49e6aa4879a3220ebd337155571887fde61721;hp=8a053e3d692be945d3063d9be4a07c4742f20f7f;hpb=4935e1e9f76e14e8b3420084d357c34bb397ef53;p=dpdk.git diff --git a/lib/librte_bbdev/rte_bbdev.c b/lib/librte_bbdev/rte_bbdev.c index 8a053e3d69..28434e0848 100644 --- a/lib/librte_bbdev/rte_bbdev.c +++ b/lib/librte_bbdev/rte_bbdev.c @@ -6,6 +6,7 @@ #include #include +#include #include #include #include @@ -27,6 +28,17 @@ #define DEV_NAME "BBDEV" +/* BBDev library logging ID */ +static int bbdev_logtype; + +/* Helper macro for logging */ +#define rte_bbdev_log(level, fmt, ...) \ + rte_log(RTE_LOG_ ## level, bbdev_logtype, fmt "\n", ##__VA_ARGS__) + +#define rte_bbdev_log_debug(fmt, ...) \ + rte_bbdev_log(DEBUG, RTE_STR(__LINE__) ":%s() " fmt, __func__, \ + ##__VA_ARGS__) + /* Helper macro to check dev_id is valid */ #define VALID_DEV_OR_RET_ERR(dev, dev_id) do { \ if (dev == NULL) { \ @@ -160,7 +172,7 @@ find_free_dev_id(void) return RTE_BBDEV_MAX_DEVS; } -struct rte_bbdev * +struct rte_bbdev * __rte_experimental rte_bbdev_allocate(const char *name) { int ret; @@ -219,7 +231,7 @@ rte_bbdev_allocate(const char *name) return bbdev; } -int +int __rte_experimental rte_bbdev_release(struct rte_bbdev *bbdev) { uint16_t dev_id; @@ -253,7 +265,7 @@ rte_bbdev_release(struct rte_bbdev *bbdev) return 0; } -struct rte_bbdev * +struct rte_bbdev * __rte_experimental rte_bbdev_get_named_dev(const char *name) { unsigned int i; @@ -273,13 +285,13 @@ rte_bbdev_get_named_dev(const char *name) return NULL; } -uint16_t +uint16_t __rte_experimental rte_bbdev_count(void) { return num_devs; } -bool +bool __rte_experimental rte_bbdev_is_valid(uint16_t dev_id) { if ((dev_id < RTE_BBDEV_MAX_DEVS) && @@ -288,7 +300,7 @@ rte_bbdev_is_valid(uint16_t dev_id) return false; } -uint16_t +uint16_t __rte_experimental rte_bbdev_find_next(uint16_t dev_id) { dev_id++; @@ -298,7 +310,7 @@ rte_bbdev_find_next(uint16_t dev_id) return dev_id; } -int +int __rte_experimental rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id) { unsigned int i; @@ -388,7 +400,7 @@ error: return ret; } -int +int __rte_experimental rte_bbdev_intr_enable(uint16_t dev_id) { int ret; @@ -420,7 +432,7 @@ rte_bbdev_intr_enable(uint16_t dev_id) return -ENOTSUP; } -int +int __rte_experimental rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id, const struct rte_bbdev_queue_conf *conf) { @@ -483,11 +495,20 @@ rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id, conf->queue_size, queue_id, dev_id); return -EINVAL; } - if (conf->priority > dev_info.max_queue_priority) { + if (conf->op_type == RTE_BBDEV_OP_TURBO_DEC && + conf->priority > dev_info.max_ul_queue_priority) { + rte_bbdev_log(ERR, + "Priority (%u) of queue %u of bdev %u must be <= %u", + conf->priority, queue_id, dev_id, + dev_info.max_ul_queue_priority); + return -EINVAL; + } + if (conf->op_type == RTE_BBDEV_OP_TURBO_ENC && + conf->priority > dev_info.max_dl_queue_priority) { rte_bbdev_log(ERR, "Priority (%u) of queue %u of bdev %u must be <= %u", conf->priority, queue_id, dev_id, - dev_info.max_queue_priority); + dev_info.max_dl_queue_priority); return -EINVAL; } } @@ -529,7 +550,7 @@ rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id, return 0; } -int +int __rte_experimental rte_bbdev_start(uint16_t dev_id) { int i; @@ -561,7 +582,7 @@ rte_bbdev_start(uint16_t dev_id) return 0; } -int +int __rte_experimental rte_bbdev_stop(uint16_t dev_id) { struct rte_bbdev *dev = get_dev(dev_id); @@ -582,7 +603,7 @@ rte_bbdev_stop(uint16_t dev_id) return 0; } -int +int __rte_experimental rte_bbdev_close(uint16_t dev_id) { int ret; @@ -627,7 +648,7 @@ rte_bbdev_close(uint16_t dev_id) return 0; } -int +int __rte_experimental rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id) { struct rte_bbdev *dev = get_dev(dev_id); @@ -657,7 +678,7 @@ rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id) return 0; } -int +int __rte_experimental rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id) { struct rte_bbdev *dev = get_dev(dev_id); @@ -717,7 +738,7 @@ reset_stats_in_queues(struct rte_bbdev *dev) rte_bbdev_log_debug("Reset stats on %u", dev->data->dev_id); } -int +int __rte_experimental rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats) { struct rte_bbdev *dev = get_dev(dev_id); @@ -740,7 +761,7 @@ rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats) return 0; } -int +int __rte_experimental rte_bbdev_stats_reset(uint16_t dev_id) { struct rte_bbdev *dev = get_dev(dev_id); @@ -757,7 +778,7 @@ rte_bbdev_stats_reset(uint16_t dev_id) return 0; } -int +int __rte_experimental rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info) { struct rte_bbdev *dev = get_dev(dev_id); @@ -785,7 +806,7 @@ rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info) return 0; } -int +int __rte_experimental rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id, struct rte_bbdev_queue_info *queue_info) { @@ -850,7 +871,7 @@ bbdev_op_init(struct rte_mempool *mempool, void *arg, void *element, } } -struct rte_mempool * +struct rte_mempool * __rte_experimental rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type, unsigned int num_elements, unsigned int cache_size, int socket_id) @@ -897,7 +918,7 @@ rte_bbdev_op_pool_create(const char *name, enum rte_bbdev_op_type type, return mp; } -int +int __rte_experimental rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void *cb_arg) { @@ -942,7 +963,7 @@ rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event, return (user_cb == NULL) ? -ENOMEM : 0; } -int +int __rte_experimental rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event, rte_bbdev_cb_fn cb_fn, void *cb_arg) { @@ -987,7 +1008,7 @@ rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event, return ret; } -void +void __rte_experimental rte_bbdev_pmd_callback_process(struct rte_bbdev *dev, enum rte_bbdev_event_type event, void *ret_param) { @@ -1029,7 +1050,7 @@ rte_bbdev_pmd_callback_process(struct rte_bbdev *dev, rte_spinlock_unlock(&rte_bbdev_cb_lock); } -int +int __rte_experimental rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id) { struct rte_bbdev *dev = get_dev(dev_id); @@ -1040,7 +1061,7 @@ rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id) return dev->dev_ops->queue_intr_enable(dev, queue_id); } -int +int __rte_experimental rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id) { struct rte_bbdev *dev = get_dev(dev_id); @@ -1051,7 +1072,7 @@ rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id) return dev->dev_ops->queue_intr_disable(dev, queue_id); } -int +int __rte_experimental rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op, void *data) { @@ -1088,7 +1109,7 @@ rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op, } -const char * +const char * __rte_experimental rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type) { static const char * const op_types[] = { @@ -1104,9 +1125,6 @@ rte_bbdev_op_type_str(enum rte_bbdev_op_type op_type) return NULL; } - -int bbdev_logtype; - RTE_INIT(rte_bbdev_init_log); static void rte_bbdev_init_log(void)