X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Fbcmfs%2Fbcmfs_qp.h;h=57fe0a93a33c13be30f1f10886fb7ce746adb47a;hb=f593944fc988dfccebed62205fd0b88c60ed7d77;hp=52c487956e005c99e67bcc99f8e0e44a89e59ef0;hpb=47dcca067f4ab978df3414741be8fa00ddbac4f0;p=dpdk.git diff --git a/drivers/crypto/bcmfs/bcmfs_qp.h b/drivers/crypto/bcmfs/bcmfs_qp.h index 52c487956e..57fe0a93a3 100644 --- a/drivers/crypto/bcmfs/bcmfs_qp.h +++ b/drivers/crypto/bcmfs/bcmfs_qp.h @@ -24,6 +24,13 @@ enum bcmfs_queue_type { BCMFS_RM_CPLQ }; +#define BCMFS_QP_IOBASE_XLATE(base, idx) \ + ((base) + ((idx) * BCMFS_HW_QUEUE_IO_ADDR_LEN)) + +/* Max pkts for preprocessing before submitting to h/w qp */ +#define BCMFS_MAX_REQS_BUFF 64 + +/* qp stats */ struct bcmfs_qp_stats { /* Count of all operations enqueued */ uint64_t enqueued_count; @@ -44,6 +51,8 @@ struct bcmfs_qp_config { uint16_t nb_descriptors; /* Maximum number of h/w descriptors needed by a request */ uint16_t max_descs_req; + /* h/w ops associated with qp */ + struct bcmfs_hw_queue_pair_ops *ops; }; struct bcmfs_queue { @@ -61,6 +70,8 @@ struct bcmfs_queue { /* s/w pointer for completion h/w queue*/ uint32_t cmpl_read_ptr; }; + /* number of inflight descriptor accumulated before next db ring */ + uint16_t descs_inflight; /* Memzone name */ char memz_name[RTE_MEMZONE_NAMESIZE]; }; @@ -88,6 +99,10 @@ struct bcmfs_qp { struct bcmfs_qp_stats stats; /* h/w ops associated with qp */ struct bcmfs_hw_queue_pair_ops *ops; + /* bcmfs requests pool*/ + struct rte_mempool *sr_mp; + /* a temporary buffer to keep message pointers */ + struct bcmfs_qp_message *infl_msgs[BCMFS_MAX_REQS_BUFF]; } __rte_cache_aligned; @@ -119,4 +134,9 @@ bcmfs_qp_setup(struct bcmfs_qp **qp_addr, uint16_t queue_pair_id, struct bcmfs_qp_config *bcmfs_conf); +/* stats functions*/ +void bcmfs_qp_stats_get(struct bcmfs_qp **qp, int num_qp, + struct bcmfs_qp_stats *stats); +void bcmfs_qp_stats_reset(struct bcmfs_qp **qp, int num_qp); + #endif /* _BCMFS_QP_H_ */