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