1/* SPDX-License-Identifier: BSD-3-Clause */ 2/* Copyright(c) 2007-2022 Intel Corporation */ 3/** 4 *************************************************************************** 5 * @file icp_sal_versions.h 6 * 7 * @defgroup SalVersions 8 * 9 * @ingroup SalVersions 10 * 11 * API and structures definition for obtaining software and hardware versions 12 * 13 ***************************************************************************/ 14 15#ifndef _ICP_SAL_VERSIONS_H_ 16#define _ICP_SAL_VERSIONS_H_ 17 18#define ICP_SAL_VERSIONS_FW_VERSION_SIZE 16 19/**< Max length of firmware version string */ 20#define ICP_SAL_VERSIONS_SW_VERSION_SIZE 16 21/**< Max length of software version string */ 22#define ICP_SAL_VERSIONS_MMP_VERSION_SIZE 16 23/**< Max length of MMP binary version string */ 24#define ICP_SAL_VERSIONS_HW_VERSION_SIZE 4 25/**< Max length of hardware version string */ 26 27/* Part name and number of the accelerator device */ 28#define SAL_INFO2_DRIVER_SW_VERSION_MAJ_NUMBER 3 29#define SAL_INFO2_DRIVER_SW_VERSION_MIN_NUMBER 14 30#define SAL_INFO2_DRIVER_SW_VERSION_PATCH_NUMBER 0 31 32/** 33******************************************************************************* 34 * @ingroup SalVersions 35 * Structure holding versions information 36 * 37 * @description 38 * This structure stores information about versions of software 39 * and hardware being run on a particular device. 40 *****************************************************************************/ 41typedef struct icp_sal_dev_version_info_s { 42 Cpa32U devId; 43 /**< Number of acceleration device for which this structure holds 44 * version 45 * information */ 46 Cpa8U firmwareVersion[ICP_SAL_VERSIONS_FW_VERSION_SIZE]; 47 /**< String identifying the version of the firmware associated with 48 * the device. */ 49 Cpa8U mmpVersion[ICP_SAL_VERSIONS_MMP_VERSION_SIZE]; 50 /**< String identifying the version of the MMP binary associated with 51 * the device. */ 52 Cpa8U softwareVersion[ICP_SAL_VERSIONS_SW_VERSION_SIZE]; 53 /**< String identifying the version of the software associated with 54 * the device. */ 55 Cpa8U hardwareVersion[ICP_SAL_VERSIONS_HW_VERSION_SIZE]; 56 /**< String identifying the version of the hardware (stepping and 57 * revision ID) associated with the device. */ 58} icp_sal_dev_version_info_t; 59 60/** 61******************************************************************************* 62 * @ingroup SalVersions 63 * Obtains the version information for a given device 64 * @description 65 * This function obtains hardware and software version information 66 * associated with a given device. 67 * 68 * @param[in] accelId ID of the acceleration device for which version 69 * information is to be obtained. 70 * @param[out] pVerInfo Pointer to a structure that will hold version 71 * information 72 * 73 * @context 74 * This function might sleep. It cannot be executed in a context that 75 * does not permit sleeping. 76 * @assumptions 77 * The system has been started 78 * @sideEffects 79 * None 80 * @blocking 81 * No 82 * @reentrant 83 * No 84 * @threadSafe 85 * Yes 86 * 87 * @return CPA_STATUS_SUCCESS Operation finished successfully 88 * @return CPA_STATUS_INVALID_PARAM Invalid parameter passed to the function 89 * @return CPA_STATUS_RESOURCE System resources problem 90 * @return CPA_STATUS_FAIL Operation failed 91 * 92 *****************************************************************************/ 93CpaStatus icp_sal_getDevVersionInfo(Cpa32U accelId, 94 icp_sal_dev_version_info_t *pVerInfo); 95 96#endif 97