/* Execute the simulator for at least the specified timeout, then return. Note that this does not affect event timing, so the "next
event" may be significantly after the request if the hardware has not been configured to e.g. send an interrupt when expected.  */
void nsi_exec_for(uint64_t us)
/* Execute the simulator for at least the specified timeout, then return. Note that this does not affect event timing, so the "next
event" may be significantly after the request if the hardware has not been configured to e.g. send an interrupt when expected.  */
void nsi_exec_for(uint64_t us)
{
	uint64_t start = nsi_hws_get_time();
	do {
		nsi_hws_one_event();
	} while (nsi_hws_get_time() < (start + us));
}