malloc: check size hint when reserving the biggest element
[dpdk.git] / lib / librte_bbdev / rte_bbdev.h
index 37a0d05..25ef409 100644 (file)
@@ -31,6 +31,7 @@ extern "C" {
 #include <stdbool.h>
 #include <string.h>
 
+#include <rte_compat.h>
 #include <rte_atomic.h>
 #include <rte_bus.h>
 #include <rte_cpuflags.h>
@@ -54,7 +55,7 @@ enum rte_bbdev_state {
  * @return
  *   The total number of usable devices.
  */
-uint16_t
+uint16_t __rte_experimental
 rte_bbdev_count(void);
 
 /**
@@ -66,7 +67,7 @@ rte_bbdev_count(void);
  * @return
  *   true if device ID is valid and device is attached, false otherwise.
  */
-bool
+bool __rte_experimental
 rte_bbdev_is_valid(uint16_t dev_id);
 
 /**
@@ -79,7 +80,7 @@ rte_bbdev_is_valid(uint16_t dev_id);
  *   - The next device, or
  *   - RTE_BBDEV_MAX_DEVS if none found
  */
-uint16_t
+uint16_t __rte_experimental
 rte_bbdev_find_next(uint16_t dev_id);
 
 /** Iterate through all enabled devices */
@@ -108,7 +109,7 @@ rte_bbdev_find_next(uint16_t dev_id);
  *   - -EBUSY if the identified device has already started
  *   - -ENOMEM if unable to allocate memory
  */
-int
+int __rte_experimental
 rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);
 
 /**
@@ -125,7 +126,7 @@ rte_bbdev_setup_queues(uint16_t dev_id, uint16_t num_queues, int socket_id);
  *   - -EBUSY if the identified device has already started
  *   - -ENOTSUP if the interrupts are not supported by the device
  */
-int
+int __rte_experimental
 rte_bbdev_intr_enable(uint16_t dev_id);
 
 /** Device queue configuration structure */
@@ -154,7 +155,7 @@ struct rte_bbdev_queue_conf {
  *   - EINVAL if the identified queue size or priority are invalid
  *   - EBUSY if the identified queue or its device have already started
  */
-int
+int __rte_experimental
 rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
                const struct rte_bbdev_queue_conf *conf);
 
@@ -169,7 +170,7 @@ rte_bbdev_queue_configure(uint16_t dev_id, uint16_t queue_id,
  *   - 0 on success
  *   - negative value on failure - as returned from PMD driver
  */
-int
+int __rte_experimental
 rte_bbdev_start(uint16_t dev_id);
 
 /**
@@ -182,7 +183,7 @@ rte_bbdev_start(uint16_t dev_id);
  * @return
  *   - 0 on success
  */
-int
+int __rte_experimental
 rte_bbdev_stop(uint16_t dev_id);
 
 /**
@@ -195,7 +196,7 @@ rte_bbdev_stop(uint16_t dev_id);
  * @return
  *   - 0 on success
  */
-int
+int __rte_experimental
 rte_bbdev_close(uint16_t dev_id);
 
 /**
@@ -212,7 +213,7 @@ rte_bbdev_close(uint16_t dev_id);
  *   - 0 on success
  *   - negative value on failure - as returned from PMD driver
  */
-int
+int __rte_experimental
 rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);
 
 /**
@@ -227,7 +228,7 @@ rte_bbdev_queue_start(uint16_t dev_id, uint16_t queue_id);
  *   - 0 on success
  *   - negative value on failure - as returned from PMD driver
  */
-int
+int __rte_experimental
 rte_bbdev_queue_stop(uint16_t dev_id, uint16_t queue_id);
 
 /** Device statistics. */
@@ -238,6 +239,8 @@ struct rte_bbdev_stats {
        uint64_t enqueue_err_count;
        /** Total error count on operations dequeued */
        uint64_t dequeue_err_count;
+       /** Offload time */
+       uint64_t offload_time;
 };
 
 /**
@@ -253,7 +256,7 @@ struct rte_bbdev_stats {
  *   - 0 on success
  *   - EINVAL if invalid parameter pointer is provided
  */
-int
+int __rte_experimental
 rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);
 
 /**
@@ -264,7 +267,7 @@ rte_bbdev_stats_get(uint16_t dev_id, struct rte_bbdev_stats *stats);
  * @return
  *   - 0 on success
  */
-int
+int __rte_experimental
 rte_bbdev_stats_reset(uint16_t dev_id);
 
 /** Device information supplied by the device's driver */
@@ -278,8 +281,10 @@ struct rte_bbdev_driver_info {
        uint32_t queue_size_lim;
        /** Set if device off-loads operation to hardware  */
        bool hardware_accelerated;
-       /** Max value supported by queue priority */
-       uint8_t max_queue_priority;
+       /** Max value supported by queue priority for DL */
+       uint8_t max_dl_queue_priority;
+       /** Max value supported by queue priority for UL */
+       uint8_t max_ul_queue_priority;
        /** Set if device supports per-queue interrupts */
        bool queue_intr_supported;
        /** Minimum alignment of buffers, in bytes */
@@ -322,7 +327,7 @@ struct rte_bbdev_info {
  *   - 0 on success
  *   - EINVAL if invalid parameter pointer is provided
  */
-int
+int __rte_experimental
 rte_bbdev_info_get(uint16_t dev_id, struct rte_bbdev_info *dev_info);
 
 /** Queue information */
@@ -348,7 +353,7 @@ struct rte_bbdev_queue_info {
  *   - 0 on success
  *   - EINVAL if invalid parameter pointer is provided
  */
-int
+int __rte_experimental
 rte_bbdev_queue_info_get(uint16_t dev_id, uint16_t queue_id,
                struct rte_bbdev_queue_info *queue_info);
 
@@ -462,12 +467,7 @@ rte_bbdev_enqueue_enc_ops(uint16_t dev_id, uint16_t queue_id,
 {
        struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
        struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
-       uint16_t n = dev->enqueue_enc_ops(q_data, ops, num_ops);
-
-       rte_bbdev_log_verbose("%u encode ops enqueued to dev%u,q%u.\n",
-                       num_ops, dev_id, queue_id);
-
-       return n;
+       return dev->enqueue_enc_ops(q_data, ops, num_ops);
 }
 
 /**
@@ -497,12 +497,7 @@ rte_bbdev_enqueue_dec_ops(uint16_t dev_id, uint16_t queue_id,
 {
        struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
        struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
-       uint16_t n = dev->enqueue_dec_ops(q_data, ops, num_ops);
-
-       rte_bbdev_log_verbose("%u decode ops enqueued to dev%u,q%u.\n",
-                       num_ops, dev_id, queue_id);
-
-       return n;
+       return dev->enqueue_dec_ops(q_data, ops, num_ops);
 }
 
 /**
@@ -532,12 +527,7 @@ rte_bbdev_dequeue_enc_ops(uint16_t dev_id, uint16_t queue_id,
 {
        struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
        struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
-       uint16_t n = dev->dequeue_enc_ops(q_data, ops, num_ops);
-
-       rte_bbdev_log_verbose("%u encode ops dequeued to dev%u,q%u\n",
-                       n, dev_id, queue_id);
-
-       return n;
+       return dev->dequeue_enc_ops(q_data, ops, num_ops);
 }
 
 /**
@@ -568,12 +558,7 @@ rte_bbdev_dequeue_dec_ops(uint16_t dev_id, uint16_t queue_id,
 {
        struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
        struct rte_bbdev_queue_data *q_data = &dev->data->queues[queue_id];
-       uint16_t n = dev->dequeue_dec_ops(q_data, ops, num_ops);
-
-       rte_bbdev_log_verbose("%u decode ops dequeued to dev%u,q%u\n",
-                       n, dev_id, queue_id);
-
-       return n;
+       return dev->dequeue_dec_ops(q_data, ops, num_ops);
 }
 
 /** Definitions of device event types */
@@ -618,7 +603,7 @@ typedef void (*rte_bbdev_cb_fn)(uint16_t dev_id,
  * @return
  *   Zero on success, negative value on failure.
  */
-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);
 
@@ -641,7 +626,7 @@ rte_bbdev_callback_register(uint16_t dev_id, enum rte_bbdev_event_type event,
  *   - EINVAL if invalid parameter pointer is provided
  *   - EAGAIN if the provided callback pointer does not exist
  */
-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);
 
@@ -661,7 +646,7 @@ rte_bbdev_callback_unregister(uint16_t dev_id, enum rte_bbdev_event_type event,
  *   - 0 on success
  *   - negative value on failure - as returned from PMD driver
  */
-int
+int __rte_experimental
 rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);
 
 /**
@@ -677,7 +662,7 @@ rte_bbdev_queue_intr_enable(uint16_t dev_id, uint16_t queue_id);
  *   - 0 on success
  *   - negative value on failure - as returned from PMD driver
  */
-int
+int __rte_experimental
 rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);
 
 /**
@@ -704,7 +689,7 @@ rte_bbdev_queue_intr_disable(uint16_t dev_id, uint16_t queue_id);
  *   - ENOTSUP if interrupts are not supported by the identified device
  *   - negative value on failure - as returned from PMD driver
  */
-int
+int __rte_experimental
 rte_bbdev_queue_intr_ctl(uint16_t dev_id, uint16_t queue_id, int epfd, int op,
                void *data);