TMXR: Properly accept ticks rather than instructions in coschedule APIs

This commit is contained in:
Mark Pizzolato 2016-12-12 01:51:18 -08:00
parent 7db2dc10de
commit 180b03107e
2 changed files with 7 additions and 7 deletions

View file

@ -3902,10 +3902,10 @@ return tmxr_clock_coschedule_tmr (uptr, 0, interval);
#define MIN(a,b) (((a) < (b)) ? (a) : (b)) #define MIN(a,b) (((a) < (b)) ? (a) : (b))
t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 interval) t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 ticks)
{ {
TMXR *mp = (TMXR *)uptr->tmxr; TMXR *mp = (TMXR *)uptr->tmxr;
int32 ticks = (interval + (sim_rtcn_tick_size (tmr)/2))/sim_rtcn_tick_size (tmr);/* Convert to ticks */ int32 interval = ticks * sim_rtcn_tick_size (tmr);
#if defined(SIM_ASYNCH_MUX) #if defined(SIM_ASYNCH_MUX)
if ((!(uptr->dynflags & UNIT_TM_POLL)) || if ((!(uptr->dynflags & UNIT_TM_POLL)) ||
@ -3939,15 +3939,15 @@ if (mp) {
return _sim_activate (uptr, soon); return _sim_activate (uptr, soon);
} }
} }
sim_debug (TIMER_DBG_MUX, &sim_timer_dev, "scheduling %s after interval %d instructions\n", sim_uname (uptr), interval); sim_debug (TIMER_DBG_MUX, &sim_timer_dev, "coscheduling %s after interval %d ticks\n", sim_uname (uptr), ticks);
return sim_clock_coschedule_tmr (uptr, tmr, ticks); return sim_clock_coschedule_tmr (uptr, tmr, ticks);
#endif #endif
} }
t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 interval) t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 ticks)
{ {
sim_cancel (uptr); sim_cancel (uptr);
return tmxr_clock_coschedule_tmr (uptr, tmr, interval); return tmxr_clock_coschedule_tmr (uptr, tmr, ticks);
} }
/* Generic Multiplexer attach help */ /* Generic Multiplexer attach help */

View file

@ -282,8 +282,8 @@ t_stat tmxr_activate_after (UNIT *uptr, uint32 usecs_walltime);
t_stat tmxr_activate_after_abs (UNIT *uptr, uint32 usecs_walltime); t_stat tmxr_activate_after_abs (UNIT *uptr, uint32 usecs_walltime);
t_stat tmxr_clock_coschedule (UNIT *uptr, int32 interval); t_stat tmxr_clock_coschedule (UNIT *uptr, int32 interval);
t_stat tmxr_clock_coschedule_abs (UNIT *uptr, int32 interval); t_stat tmxr_clock_coschedule_abs (UNIT *uptr, int32 interval);
t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 interval); t_stat tmxr_clock_coschedule_tmr (UNIT *uptr, int32 tmr, int32 ticks);
t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 interval); t_stat tmxr_clock_coschedule_tmr_abs (UNIT *uptr, int32 tmr, int32 ticks);
t_stat tmxr_change_async (void); t_stat tmxr_change_async (void);
t_stat tmxr_locate_line_send (const char *dev_line, SEND **snd); t_stat tmxr_locate_line_send (const char *dev_line, SEND **snd);
t_stat tmxr_locate_line_expect (const char *dev_line, EXPECT **exp); t_stat tmxr_locate_line_expect (const char *dev_line, EXPECT **exp);