1/* SPDX-License-Identifier: BSD-3-Clause */
2/* Copyright(c) 2007-2022 Intel Corporation */
3/**
4 *****************************************************************************
5 * @file sal_statistics.h
6 *
7 * @ingroup SalStats
8 *
9 * @description
10 *     Statistics related defines, structures and functions
11 *
12 *****************************************************************************/
13
14#ifndef SAL_STATISTICS_H
15#define SAL_STATISTICS_H
16
17#include "sal_statistics_strings.h"
18
19#define SAL_STATS_SYM 0
20#define SAL_STATS_DSA 1
21#define SAL_STATS_DSA2 2
22#define SAL_STATS_RSA 3
23#define SAL_STATS_DH 4
24#define SAL_STATS_KEYGEN 5
25#define SAL_STATS_LN 6
26#define SAL_STATS_PRIME 7
27#define SAL_STATS_ECC 8
28#define SAL_STATS_ECDH 9
29#define SAL_STATS_ECDSA 10
30/**< Numeric values for crypto statistics */
31
32#define SAL_STATISTICS_STRING_OFF "0"
33/**< String representing the value for disabled statistics */
34
35/**
36*****************************************************************************
37 * @ingroup SalStats
38 *      Structure describing stats enabled/disabled in the system
39 *
40 * @description
41 *      Structure describing stats enabled/disabled in the system
42 *
43 *****************************************************************************/
44typedef struct sal_statistics_collection_s {
45	CpaBoolean bStatsEnabled;
46	/**< If CPA_TRUE then statistics functionality is enabled */
47	CpaBoolean bDcStatsEnabled;
48	/**< If CPA_TRUE then Compression statistics are enabled */
49	CpaBoolean bDhStatsEnabled;
50	/**< If CPA_TRUE then Diffie-Helman statistics are enabled */
51	CpaBoolean bDsaStatsEnabled;
52	/**< If CPA_TRUE then DSA statistics are enabled */
53	CpaBoolean bEccStatsEnabled;
54	/**< If CPA_TRUE then ECC statistics are enabled */
55	CpaBoolean bKeyGenStatsEnabled;
56	/**< If CPA_TRUE then Key Gen statistics are enabled */
57	CpaBoolean bLnStatsEnabled;
58	/**< If CPA_TRUE then Large Number statistics are enabled */
59	CpaBoolean bPrimeStatsEnabled;
60	/**< If CPA_TRUE then Prime statistics are enabled */
61	CpaBoolean bRsaStatsEnabled;
62	/**< If CPA_TRUE then RSA statistics are enabled */
63	CpaBoolean bSymStatsEnabled;
64	/**< If CPA_TRUE then Symmetric Crypto statistics are enabled */
65} sal_statistics_collection_t;
66
67/**
68 ******************************************************************************
69 * @ingroup SalStats
70 *
71 * @description
72 *      Initializes structure describing which statistics
73 *      are enabled for the acceleration device.
74 *
75 * @param[in]  device             Pointer to an acceleration device structure
76 *
77 * @retval  CPA_STATUS_SUCCESS          Operation successful
78 * @retval  CPA_STATUS_INVALID_PARAM    Invalid param provided
79 * @retval  CPA_STATUS_RESOURCE         Memory alloc failed
80 * @retval  CPA_STATUS_FAIL             Operation failed
81 *
82 ******************************************************************************/
83CpaStatus SalStatistics_InitStatisticsCollection(icp_accel_dev_t *device);
84
85/**
86 ******************************************************************************
87 * @ingroup SalStats
88 *
89 * @description
90 *      Cleans structure describing which statistics
91 *      are enabled for the acceleration device.
92 *
93 * @param[in]  device             Pointer to an acceleration device structure
94 *
95 * @retval  CPA_STATUS_SUCCESS          Operation successful
96 * @retval  CPA_STATUS_INVALID_PARAM    Invalid param provided
97 * @retval  CPA_STATUS_FAIL             Operation failed
98 *
99 ******************************************************************************/
100CpaStatus SalStatistics_CleanStatisticsCollection(icp_accel_dev_t *device);
101#endif
102