1 /* SPDX-License-Identifier: BSD-3-Clause */ 2 /* Copyright(c) 2007-2022 Intel Corporation */ 3 /** 4 *************************************************************************** 5 * @file sal_service_state.h 6 * 7 * @defgroup SalServiceState 8 * 9 * @ingroup SalCtrl 10 * 11 * Checks state for generic service instance 12 * 13 ***************************************************************************/ 14 15 #ifndef SAL_SERVICE_STATE_H_ 16 #define SAL_SERVICE_STATE_H_ 17 18 /** 19 ******************************************************************************* 20 * @ingroup SalServiceState 21 * Check to see if the instance is in the running state 22 * 23 * @description 24 * This function checks the state of an instance to see if it is in the 25 * running state 26 * 27 * @param[in] instance Instance handle (assumes this is valid, i.e. checked 28 * before this function is called) 29 * @retval CPA_TRUE Instance in the RUNNING state 30 * @retval CPA_FALSE Instance not in RUNNING state 31 * 32 *****************************************************************************/ 33 CpaBoolean Sal_ServiceIsRunning(CpaInstanceHandle instanceHandle); 34 35 /** 36 ******************************************************************************* 37 * @ingroup SalServiceState 38 * Check to see if the instance is beign restarted 39 * 40 * @description 41 * This function checks the state of an instance to see if the device it 42 * uses is being restarted because of hardware error. 43 * 44 * @param[in] instance Instance handle (assumes this is valid, i.e. checked 45 * before this function is called) 46 * @retval CPA_TRUE Device the instance is using is restarting. 47 * @retval CPA_FALSE Device the instance is running. 48 * 49 *****************************************************************************/ 50 CpaBoolean Sal_ServiceIsRestarting(CpaInstanceHandle instanceHandle); 51 52 /** 53 ******************************************************************************* 54 * @ingroup SalServiceState 55 * This macro checks if an instance is running. An error message is logged 56 * if it is not in a running state. 57 * 58 * @return CPA_STATUS_FAIL Instance not in RUNNING state. 59 * @return void Instance is in RUNNING state. 60 ******************************************************************************/ 61 #define SAL_RUNNING_CHECK(instanceHandle) \ 62 do { \ 63 if (unlikely(CPA_TRUE != \ 64 Sal_ServiceIsRunning(instanceHandle))) { \ 65 if (CPA_TRUE == \ 66 Sal_ServiceIsRestarting(instanceHandle)) { \ 67 return CPA_STATUS_RESTARTING; \ 68 } \ 69 QAT_UTILS_LOG("Instance not in a Running state\n"); \ 70 return CPA_STATUS_FAIL; \ 71 } \ 72 } while (0) 73 74 /** 75 ******************************************************************************* 76 * @ingroup SalServiceState 77 * This macro checks if an instance is in a state to get init event. 78 * 79 * @return CPA_STATUS_FAIL Instance not in good state. 80 * @return void Instance is in good state. 81 ******************************************************************************/ 82 #define SAL_SERVICE_GOOD_FOR_INIT(instanceHandle) \ 83 do { \ 84 sal_service_t *pService = (sal_service_t *)instanceHandle; \ 85 if ((SAL_SERVICE_STATE_UNINITIALIZED != pService->state) && \ 86 (SAL_SERVICE_STATE_RESTARTING != pService->state)) { \ 87 QAT_UTILS_LOG( \ 88 "Not in the correct state to call init\n"); \ 89 return CPA_STATUS_FAIL; \ 90 } \ 91 } while (0) 92 93 #endif /*SAL_SERVICE_STATE_H_*/ 94