Commit 02bf7e83 authored by Pietro Fezzardi's avatar Pietro Fezzardi Committed by Alessandro Rubini

time-sim: added sim_fast_forward_ns

It will be used to jump ahead in time when no machine is executing.
parent 202f3e82
......@@ -102,5 +102,6 @@ static inline int pp_sim_is_slave(struct pp_instance *ppi)
return ((ppi - ppi->glbs->pp_instances) == SIM_SLAVE);
}
extern int sim_fast_forward_ns(struct pp_globals *ppg, int64_t ff_ns);
extern int sim_set_global_DS(struct pp_instance *ppi);
extern void sim_main_loop(struct pp_globals *ppg);
......@@ -15,6 +15,20 @@
#include <ppsi/ppsi.h>
#include "../arch-sim/ppsi-sim.h"
int sim_fast_forward_ns(struct pp_globals *ppg, int64_t ff_ns)
{
struct pp_sim_time_instance *t_inst;
int i;
for (i = 0; i < ppg->nlinks; i++) {
t_inst = &SIM_PPI_ARCH(ppg->pp_instances + i)->time;
t_inst->current_ns += ff_ns +
(t_inst->freq_ppm_servo + t_inst->freq_ppm_real) *
ff_ns / 1000 / 1000 / 1000;
}
pp_diag(0, time, 1, "%s: %li ns\n", __func__, (long)ff_ns);
return 0;
}
static int sim_time_get(struct pp_instance *ppi, TimeInternal *t)
{
struct timespec ts;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment