cryptodev: remove crypto device type enumeration
[dpdk.git] / drivers / crypto / scheduler / scheduler_pmd_private.h
index f0861cd..efb2bbc 100644 (file)
 
 #include "rte_cryptodev_scheduler.h"
 
-/**< Maximum number of bonded devices per devices */
-#ifndef MAX_SLAVES_NUM
-#define MAX_SLAVES_NUM                         (8)
-#endif
-
 #define PER_SLAVE_BUFF_SIZE                    (256)
 
 #define CS_LOG_ERR(fmt, args...)                                       \
@@ -68,7 +63,7 @@ struct scheduler_slave {
        uint16_t qp_id;
        uint32_t nb_inflight_cops;
 
-       enum rte_cryptodev_type dev_type;
+       uint8_t driver_id;
 };
 
 struct scheduler_ctx {
@@ -80,7 +75,7 @@ struct scheduler_ctx {
 
        uint32_t max_nb_queue_pairs;
 
-       struct scheduler_slave slaves[MAX_SLAVES_NUM];
+       struct scheduler_slave slaves[RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES];
        uint32_t nb_slaves;
 
        enum rte_cryptodev_scheduler_mode mode;
@@ -89,24 +84,30 @@ struct scheduler_ctx {
 
        uint8_t reordering_enabled;
 
-       struct rte_cryptodev_qp_conf qp_conf;
-
        char name[RTE_CRYPTODEV_SCHEDULER_NAME_MAX_LEN];
        char description[RTE_CRYPTODEV_SCHEDULER_DESC_MAX_LEN];
+
+       char *init_slave_names[RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES];
+       int nb_init_slaves;
 } __rte_cache_aligned;
 
 struct scheduler_qp_ctx {
        void *private_qp_ctx;
 
+       uint32_t max_nb_objs;
+
        struct rte_ring *order_ring;
        uint32_t seqn;
 } __rte_cache_aligned;
 
 struct scheduler_session {
-       struct rte_cryptodev_sym_session *sessions[MAX_SLAVES_NUM];
+       struct rte_cryptodev_sym_session *sessions[
+                       RTE_CRYPTODEV_SCHEDULER_MAX_NB_SLAVES];
 };
 
-static inline uint16_t __attribute__((always_inline))
+extern uint8_t cryptodev_driver_id;
+
+static __rte_always_inline uint16_t
 get_max_enqueue_order_count(struct rte_ring *order_ring, uint16_t nb_ops)
 {
        uint32_t count = rte_ring_free_count(order_ring);
@@ -114,7 +115,7 @@ get_max_enqueue_order_count(struct rte_ring *order_ring, uint16_t nb_ops)
        return count > nb_ops ? nb_ops : count;
 }
 
-static inline void __attribute__((always_inline))
+static __rte_always_inline void
 scheduler_order_insert(struct rte_ring *order_ring,
                struct rte_crypto_op **ops, uint16_t nb_ops)
 {
@@ -126,14 +127,14 @@ scheduler_order_insert(struct rte_ring *order_ring,
        op = ring[(order_ring->cons.head + pos) & order_ring->mask]; \
 } while (0)
 
-static inline uint16_t __attribute__((always_inline))
+static __rte_always_inline uint16_t
 scheduler_order_drain(struct rte_ring *order_ring,
                struct rte_crypto_op **ops, uint16_t nb_ops)
 {
        struct rte_crypto_op *op;
        uint32_t nb_objs = rte_ring_count(order_ring);
        uint32_t nb_ops_to_deq = 0;
-       int status = -1;
+       uint32_t nb_ops_deqd = 0;
 
        if (nb_objs > nb_ops)
                nb_objs = nb_ops;
@@ -146,10 +147,10 @@ scheduler_order_drain(struct rte_ring *order_ring,
        }
 
        if (nb_ops_to_deq)
-               status = rte_ring_sc_dequeue_bulk(order_ring, (void **)ops,
-                               nb_ops_to_deq, NULL);
+               nb_ops_deqd = rte_ring_sc_dequeue_bulk(order_ring,
+                               (void **)ops, nb_ops_to_deq, NULL);
 
-       return (status == 0) ? nb_ops_to_deq : 0;
+       return nb_ops_deqd;
 }
 /** device specific operations function pointer structure */
 extern struct rte_cryptodev_ops *rte_crypto_scheduler_pmd_ops;