blob: 16849cda923b9732ef8eb17f58dfc7ca53e3b4d6 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
#ifndef OPENTITAN_SW_DEVICE_LIB_TESTING_AES_TESTUTILS_H_
#define OPENTITAN_SW_DEVICE_LIB_TESTING_AES_TESTUTILS_H_
#include "sw/device/lib/dif/dif_aes.h"
#include "sw/device/lib/runtime/ibex.h"
#include "sw/device/lib/testing/test_framework/check.h"
/**
* Returns the value of the AES status flag.
*
* @param aes An aes DIF handle.
* @param flag Status flag to query.
*/
inline bool aes_testutils_get_status(dif_aes_t *aes, dif_aes_status_t flag) {
bool status;
CHECK_DIF_OK(dif_aes_get_status(aes, flag, &status));
return status;
}
/**
* Waits for the given AES status flag to be set the the given value.
*
* @param aes An aes DIF handle.
* @param flag Status flag to query.
* @param value The status flag value.
* @param timeout_usec Timeout in microseconds.
*/
#define AES_TESTUTILS_WAIT_FOR_STATUS(aes_, flag_, value_, timeout_usec_) \
IBEX_SPIN_FOR(aes_testutils_get_status((aes_), (flag_)) == (value_), \
(timeout_usec_))
#endif // OPENTITAN_SW_DEVICE_LIB_TESTING_AES_TESTUTILS_H_