X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fcrypto%2Fbcmfs%2Fbcmfs_qp.c;h=cb5ff6c61b0cdfdbff657ae7a846b9687f892d42;hb=4ad4b20a79052d9c8062b64eaf0170c16a333ff8;hp=864e7bb746199d17fe21555084c5d44054653972;hpb=47dcca067f4ab978df3414741be8fa00ddbac4f0;p=dpdk.git diff --git a/drivers/crypto/bcmfs/bcmfs_qp.c b/drivers/crypto/bcmfs/bcmfs_qp.c index 864e7bb746..cb5ff6c61b 100644 --- a/drivers/crypto/bcmfs/bcmfs_qp.c +++ b/drivers/crypto/bcmfs/bcmfs_qp.c @@ -227,6 +227,7 @@ bcmfs_qp_setup(struct bcmfs_qp **qp_addr, qp->qpair_id = queue_pair_id; qp->ioreg = qp_conf->iobase; qp->nb_descriptors = nb_descriptors; + qp->ops = qp_conf->ops; qp->stats.enqueued_count = 0; qp->stats.dequeued_count = 0; @@ -343,3 +344,40 @@ bcmfs_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops) return deq; } + +void bcmfs_qp_stats_get(struct bcmfs_qp **qp, int num_qp, + struct bcmfs_qp_stats *stats) +{ + int i; + + if (stats == NULL) { + BCMFS_LOG(ERR, "invalid param: stats %p", + stats); + return; + } + + for (i = 0; i < num_qp; i++) { + if (qp[i] == NULL) { + BCMFS_LOG(DEBUG, "Uninitialised qp %d", i); + continue; + } + + stats->enqueued_count += qp[i]->stats.enqueued_count; + stats->dequeued_count += qp[i]->stats.dequeued_count; + stats->enqueue_err_count += qp[i]->stats.enqueue_err_count; + stats->dequeue_err_count += qp[i]->stats.dequeue_err_count; + } +} + +void bcmfs_qp_stats_reset(struct bcmfs_qp **qp, int num_qp) +{ + int i; + + for (i = 0; i < num_qp; i++) { + if (qp[i] == NULL) { + BCMFS_LOG(DEBUG, "Uninitialised qp %d", i); + continue; + } + memset(&qp[i]->stats, 0, sizeof(qp[i]->stats)); + } +}