LCOV - code coverage report
Current view: top level - drivers/crypto/cnxk - cn10k_cryptodev_ops.h (source / functions) Hit Total Coverage
Test: Code coverage Lines: 0 9 0.0 %
Date: 2025-01-02 22:41:34 Functions: 0 0 -
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 0 30 0.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: BSD-3-Clause
       2                 :            :  * Copyright(C) 2021 Marvell.
       3                 :            :  */
       4                 :            : 
       5                 :            : #ifndef _CN10K_CRYPTODEV_OPS_H_
       6                 :            : #define _CN10K_CRYPTODEV_OPS_H_
       7                 :            : 
       8                 :            : #include <cryptodev_pmd.h>
       9                 :            : #include <rte_compat.h>
      10                 :            : #include <rte_cryptodev.h>
      11                 :            : #include <rte_eventdev.h>
      12                 :            : 
      13                 :            : #if defined(__aarch64__)
      14                 :            : #include "roc_io.h"
      15                 :            : #else
      16                 :            : #include "roc_io_generic.h"
      17                 :            : #endif
      18                 :            : 
      19                 :            : #include "cnxk_cryptodev.h"
      20                 :            : 
      21                 :            : #define CN10K_PKTS_PER_STEORL     32
      22                 :            : #define CN10K_LMTLINES_PER_STEORL 16
      23                 :            : 
      24                 :            : extern struct rte_cryptodev_ops cn10k_cpt_ops;
      25                 :            : 
      26                 :            : void cn10k_cpt_set_enqdeq_fns(struct rte_cryptodev *dev, struct cnxk_cpt_vf *vf);
      27                 :            : 
      28                 :            : __rte_internal
      29                 :            : uint16_t __rte_hot cn10k_cryptodev_sec_inb_rx_inject(void *dev, struct rte_mbuf **pkts,
      30                 :            :                                                      struct rte_security_session **sess,
      31                 :            :                                                      uint16_t nb_pkts);
      32                 :            : 
      33                 :            : __rte_internal
      34                 :            : int cn10k_cryptodev_sec_rx_inject_configure(void *device, uint16_t port_id, bool enable);
      35                 :            : 
      36                 :            : __rte_internal
      37                 :            : uint16_t __rte_hot cn10k_cpt_sg_ver1_crypto_adapter_enqueue(void *ws, struct rte_event ev[],
      38                 :            :                 uint16_t nb_events);
      39                 :            : __rte_internal
      40                 :            : uint16_t __rte_hot cn10k_cpt_sg_ver2_crypto_adapter_enqueue(void *ws, struct rte_event ev[],
      41                 :            :                 uint16_t nb_events);
      42                 :            : 
      43                 :            : static __rte_always_inline void __rte_hot
      44                 :            : cn10k_cpt_lmtst_dual_submit(uint64_t *io_addr, const uint16_t lmt_id, int *i)
      45                 :            : {
      46                 :            :         uint64_t lmt_arg;
      47                 :            : 
      48                 :            :         /* Check if the total number of instructions is odd or even. */
      49                 :          0 :         const int flag_odd = *i & 0x1;
      50                 :            : 
      51                 :            :         /* Reduce i by 1 when odd number of instructions.*/
      52                 :          0 :         *i -= flag_odd;
      53                 :            : 
      54   [ #  #  #  #  :          0 :         if (*i > CN10K_PKTS_PER_STEORL) {
          #  #  #  #  #  
                      # ]
      55                 :            :                 lmt_arg = ROC_CN10K_DUAL_CPT_LMT_ARG | (CN10K_LMTLINES_PER_STEORL - 1) << 12 |
      56                 :            :                           (uint64_t)lmt_id;
      57                 :            :                 roc_lmt_submit_steorl(lmt_arg, *io_addr);
      58                 :            :                 lmt_arg = ROC_CN10K_DUAL_CPT_LMT_ARG |
      59                 :            :                           (*i / 2 - CN10K_LMTLINES_PER_STEORL - 1) << 12 |
      60                 :            :                           (uint64_t)(lmt_id + CN10K_LMTLINES_PER_STEORL);
      61                 :            :                 roc_lmt_submit_steorl(lmt_arg, *io_addr);
      62   [ #  #  #  #  :          0 :                 if (flag_odd) {
          #  #  #  #  #  
                      # ]
      63                 :            :                         *io_addr = (*io_addr & ~(uint64_t)(0x7 << 4)) |
      64                 :            :                                    (ROC_CN10K_CPT_INST_DW_M1 << 4);
      65                 :            :                         lmt_arg = (uint64_t)(lmt_id + *i / 2);
      66                 :            :                         roc_lmt_submit_steorl(lmt_arg, *io_addr);
      67                 :            :                         *io_addr = (*io_addr & ~(uint64_t)(0x7 << 4)) |
      68                 :            :                                    (ROC_CN10K_TWO_CPT_INST_DW_M1 << 4);
      69                 :          0 :                         *i += 1;
      70                 :            :                 }
      71                 :            :         } else {
      72                 :            :                 if (*i != 0) {
      73                 :            :                         lmt_arg =
      74                 :            :                                 ROC_CN10K_DUAL_CPT_LMT_ARG | (*i / 2 - 1) << 12 | (uint64_t)lmt_id;
      75                 :            :                         roc_lmt_submit_steorl(lmt_arg, *io_addr);
      76                 :            :                 }
      77                 :            : 
      78   [ #  #  #  #  :          0 :                 if (flag_odd) {
          #  #  #  #  #  
                      # ]
      79                 :            :                         *io_addr = (*io_addr & ~(uint64_t)(0x7 << 4)) |
      80                 :            :                                    (ROC_CN10K_CPT_INST_DW_M1 << 4);
      81                 :            :                         lmt_arg = (uint64_t)(lmt_id + *i / 2);
      82                 :            :                         roc_lmt_submit_steorl(lmt_arg, *io_addr);
      83                 :            :                         *io_addr = (*io_addr & ~(uint64_t)(0x7 << 4)) |
      84                 :            :                                    (ROC_CN10K_TWO_CPT_INST_DW_M1 << 4);
      85                 :          0 :                         *i += 1;
      86                 :            :                 }
      87                 :            :         }
      88                 :            : 
      89                 :          0 :         rte_io_wmb();
      90                 :          0 : }
      91                 :            : #endif /* _CN10K_CRYPTODEV_OPS_H_ */

Generated by: LCOV version 1.14