tmr 366 src/simh/sim_timer.c int32 tmr; tmr 368 src/simh/sim_timer.c for (tmr = 0; tmr <= SIM_NTIMERS; tmr++) tmr 369 src/simh/sim_timer.c if (rtc_initd[tmr] != 0) tmr 370 src/simh/sim_timer.c sim_rtcn_init (rtc_initd[tmr], tmr); tmr 374 src/simh/sim_timer.c int32 sim_rtcn_init (int32 time, int32 tmr) tmr 376 src/simh/sim_timer.c return sim_rtcn_init_unit (NULL, time, tmr); tmr 379 src/simh/sim_timer.c int32 sim_rtcn_init_unit (UNIT *uptr, int32 time, int32 tmr) tmr 383 src/simh/sim_timer.c if (tmr == SIM_INTERNAL_CLK) tmr 384 src/simh/sim_timer.c tmr = SIM_NTIMERS; tmr 386 src/simh/sim_timer.c if ((tmr < 0) || (tmr >= SIM_NTIMERS)) tmr 394 src/simh/sim_timer.c if (rtc_currd[tmr]) tmr 395 src/simh/sim_timer.c time = rtc_currd[tmr]; tmr 397 src/simh/sim_timer.c uptr = sim_clock_unit[tmr]; tmr 398 src/simh/sim_timer.c sim_debug (DBG_CAL, &sim_timer_dev, "_sim_rtcn_init_unit(unit=%s, time=%d, tmr=%d)\r\n", sim_uname(uptr), time, tmr); tmr 400 src/simh/sim_timer.c if (!sim_clock_unit[tmr]) tmr 401 src/simh/sim_timer.c sim_register_clock_unit_tmr (uptr, tmr); tmr 403 src/simh/sim_timer.c rtc_clock_start_gtime[tmr] = sim_gtime(); tmr 404 src/simh/sim_timer.c rtc_rtime[tmr] = sim_os_msec (); tmr 405 src/simh/sim_timer.c rtc_vtime[tmr] = rtc_rtime[tmr]; tmr 406 src/simh/sim_timer.c rtc_nxintv[tmr] = 1000; tmr 407 src/simh/sim_timer.c rtc_ticks[tmr] = 0; tmr 408 src/simh/sim_timer.c rtc_hz[tmr] = 0; tmr 409 src/simh/sim_timer.c rtc_based[tmr] = time; tmr 410 src/simh/sim_timer.c rtc_currd[tmr] = time; tmr 411 src/simh/sim_timer.c rtc_initd[tmr] = time; tmr 412 src/simh/sim_timer.c rtc_elapsed[tmr] = 0; tmr 413 src/simh/sim_timer.c rtc_calibrations[tmr] = 0; tmr 414 src/simh/sim_timer.c rtc_clock_ticks_tot[tmr] += rtc_clock_ticks[tmr]; tmr 415 src/simh/sim_timer.c rtc_clock_ticks[tmr] = 0; tmr 416 src/simh/sim_timer.c rtc_calib_tick_time_tot[tmr] += rtc_calib_tick_time[tmr]; tmr 417 src/simh/sim_timer.c rtc_calib_tick_time[tmr] = 0; tmr 418 src/simh/sim_timer.c rtc_clock_catchup_pending[tmr] = FALSE; tmr 419 src/simh/sim_timer.c rtc_clock_catchup_eligible[tmr] = FALSE; tmr 420 src/simh/sim_timer.c rtc_clock_catchup_ticks_tot[tmr] += rtc_clock_catchup_ticks[tmr]; tmr 421 src/simh/sim_timer.c rtc_clock_catchup_ticks[tmr] = 0; tmr 422 src/simh/sim_timer.c rtc_calib_ticks_acked_tot[tmr] += rtc_calib_ticks_acked[tmr]; tmr 423 src/simh/sim_timer.c rtc_calib_ticks_acked[tmr] = 0; tmr 424 src/simh/sim_timer.c ++rtc_calib_initializations[tmr]; tmr 425 src/simh/sim_timer.c _rtcn_configure_calibrated_clock (tmr); tmr 429 src/simh/sim_timer.c int32 sim_rtcn_calb (uint32 ticksper, int32 tmr) tmr 431 src/simh/sim_timer.c if (tmr == SIM_INTERNAL_CLK) tmr 432 src/simh/sim_timer.c tmr = SIM_NTIMERS; tmr 434 src/simh/sim_timer.c if ((tmr < 0) || (tmr >= SIM_NTIMERS)) tmr 437 src/simh/sim_timer.c if (rtc_hz[tmr] != ticksper) { /* changing tick rate? */ tmr 438 src/simh/sim_timer.c rtc_hz[tmr] = ticksper; tmr 439 src/simh/sim_timer.c rtc_clock_tick_size[tmr] = 1.0/ticksper; tmr 440 src/simh/sim_timer.c _rtcn_configure_calibrated_clock (tmr); tmr 441 src/simh/sim_timer.c rtc_currd[tmr] = (int32)(sim_timer_inst_per_sec()/ticksper); tmr 443 src/simh/sim_timer.c if (sim_clock_unit[tmr] == NULL) { /* Not using TIMER units? */ tmr 444 src/simh/sim_timer.c rtc_clock_ticks[tmr] += 1; tmr 445 src/simh/sim_timer.c rtc_calib_tick_time[tmr] += rtc_clock_tick_size[tmr]; tmr 447 src/simh/sim_timer.c if (rtc_clock_catchup_pending[tmr]) { /* catchup tick? */ tmr 448 src/simh/sim_timer.c ++rtc_clock_catchup_ticks[tmr]; /* accumulating which were catchups */ tmr 449 src/simh/sim_timer.c rtc_clock_catchup_pending[tmr] = FALSE; tmr 451 src/simh/sim_timer.c return rtc_currd[tmr]; /* return now avoiding counting catchup tick in calibration */ tmr 458 src/simh/sim_timer.c int tmr; tmr 462 src/simh/sim_timer.c for (tmr=0; tmr<=SIM_NTIMERS; tmr++) { tmr 463 src/simh/sim_timer.c sim_timer_units[tmr].action = &sim_timer_tick_svc; tmr 464 src/simh/sim_timer.c sim_timer_units[tmr].flags = UNIT_DIS | UNIT_IDLE; tmr 489 src/simh/sim_timer.c int tmr, clocks; tmr 494 src/simh/sim_timer.c for (tmr=clocks=0; tmr<=SIM_NTIMERS; ++tmr) { tmr 495 src/simh/sim_timer.c if (0 == rtc_initd[tmr]) tmr 498 src/simh/sim_timer.c if (sim_clock_unit[tmr]) { tmr 502 src/simh/sim_timer.c (tmr == SIM_NTIMERS) ? "Internal Calibrated Timer(" : "", tmr 503 src/simh/sim_timer.c sim_uname(sim_clock_unit[tmr]), tmr 504 src/simh/sim_timer.c (tmr == SIM_NTIMERS) ? ")" : ""); tmr 508 src/simh/sim_timer.c rtc_hz[tmr] ? "Calibrated " : "Uncalibrated ", tmr 509 src/simh/sim_timer.c tmr); tmr 510 src/simh/sim_timer.c if (rtc_hz[tmr]) { tmr 512 src/simh/sim_timer.c (unsigned long)rtc_hz[tmr]); tmr 514 src/simh/sim_timer.c sim_fmt_secs (rtc_clock_tick_size[tmr])); tmr 516 src/simh/sim_timer.c (unsigned long)rtc_ticks[tmr]); tmr 519 src/simh/sim_timer.c (unsigned long)rtc_elapsed[tmr], tmr 520 src/simh/sim_timer.c sim_fmt_secs ((double)rtc_elapsed[tmr])); tmr 521 src/simh/sim_timer.c if (tmr == calb_tmr) { tmr 523 src/simh/sim_timer.c (unsigned long)rtc_calibrations[tmr]); tmr 527 src/simh/sim_timer.c if (rtc_clock_calib_skip_idle[tmr]) tmr 529 src/simh/sim_timer.c (unsigned long)rtc_clock_calib_skip_idle[tmr]); tmr 530 src/simh/sim_timer.c if (rtc_clock_calib_backwards[tmr]) tmr 532 src/simh/sim_timer.c (unsigned long)rtc_clock_calib_backwards[tmr]); tmr 533 src/simh/sim_timer.c if (rtc_clock_calib_gap2big[tmr]) tmr 535 src/simh/sim_timer.c (unsigned long)rtc_clock_calib_gap2big[tmr]); tmr 537 src/simh/sim_timer.c if (rtc_gtime[tmr]) tmr 539 src/simh/sim_timer.c rtc_gtime[tmr]); tmr 541 src/simh/sim_timer.c (unsigned long)rtc_currd[tmr]); tmr 543 src/simh/sim_timer.c (unsigned long)rtc_calib_initializations[tmr]); tmr 545 src/simh/sim_timer.c (unsigned long)rtc_clock_ticks_tot[tmr]+(unsigned long)rtc_clock_ticks[tmr]); tmr 546 src/simh/sim_timer.c if (rtc_clock_skew_max[tmr] != 0.0) tmr 548 src/simh/sim_timer.c sim_fmt_secs (fabs(rtc_clock_skew_max[tmr])), tmr 549 src/simh/sim_timer.c (rtc_clock_skew_max[tmr] < 0) ? " fast" : " slow"); tmr 550 src/simh/sim_timer.c if (rtc_calib_ticks_acked[tmr]) tmr 552 src/simh/sim_timer.c (unsigned long)rtc_calib_ticks_acked[tmr]); tmr 553 src/simh/sim_timer.c if (rtc_calib_ticks_acked_tot[tmr]+rtc_calib_ticks_acked[tmr] != rtc_calib_ticks_acked[tmr]) //-V584 tmr 555 src/simh/sim_timer.c (unsigned long)rtc_calib_ticks_acked_tot[tmr]+(unsigned long)rtc_calib_ticks_acked[tmr]); tmr 556 src/simh/sim_timer.c if (rtc_calib_tick_time[tmr]) tmr 558 src/simh/sim_timer.c sim_fmt_secs (rtc_calib_tick_time[tmr])); tmr 559 src/simh/sim_timer.c if (rtc_calib_tick_time_tot[tmr]+rtc_calib_tick_time[tmr] != rtc_calib_tick_time[tmr]) tmr 561 src/simh/sim_timer.c sim_fmt_secs (rtc_calib_tick_time_tot[tmr]+rtc_calib_tick_time[tmr])); tmr 562 src/simh/sim_timer.c if (rtc_clock_catchup_ticks[tmr]) tmr 564 src/simh/sim_timer.c (unsigned long)rtc_clock_catchup_ticks[tmr]); tmr 565 src/simh/sim_timer.c if (rtc_clock_catchup_ticks_tot[tmr]+rtc_clock_catchup_ticks[tmr] != rtc_clock_catchup_ticks[tmr]) //-V584 tmr 567 src/simh/sim_timer.c (unsigned long)rtc_clock_catchup_ticks_tot[tmr]+(unsigned long)rtc_clock_catchup_ticks[tmr]); tmr 571 src/simh/sim_timer.c if (rtc_clock_catchup_eligible[tmr]) { tmr 572 src/simh/sim_timer.c _double_to_timespec (&now, rtc_clock_catchup_base_time[tmr]+rtc_calib_tick_time[tmr]); tmr 575 src/simh/sim_timer.c _double_to_timespec (&now, rtc_clock_catchup_base_time[tmr]); tmr 579 src/simh/sim_timer.c if (rtc_clock_time_idled[tmr]) tmr 580 src/simh/sim_timer.c fprintf (st, " Total Time Idled: %s\r\n", sim_fmt_secs (rtc_clock_time_idled[tmr]/1000.0)); tmr 589 src/simh/sim_timer.c int tmr; tmr 591 src/simh/sim_timer.c for (tmr=0; tmr<=SIM_NTIMERS; ++tmr) { tmr 592 src/simh/sim_timer.c if (sim_clock_unit[tmr] == NULL) tmr 594 src/simh/sim_timer.c if (sim_clock_cosched_queue[tmr] != QUEUE_LIST_END) { tmr 598 src/simh/sim_timer.c sim_name, sim_uname(sim_clock_unit[tmr])); tmr 600 src/simh/sim_timer.c for (uptr = sim_clock_cosched_queue[tmr]; uptr != QUEUE_LIST_END; uptr = uptr->next) { //-V763 tmr 663 src/simh/sim_timer.c int tmr = (int)(uptr-sim_timer_units); tmr 666 src/simh/sim_timer.c rtc_clock_ticks[tmr] += 1; tmr 667 src/simh/sim_timer.c rtc_calib_tick_time[tmr] += rtc_clock_tick_size[tmr]; tmr 676 src/simh/sim_timer.c if (sim_clock_unit[tmr]->action == NULL) tmr 678 src/simh/sim_timer.c stat = sim_clock_unit[tmr]->action (sim_clock_unit[tmr]); tmr 679 src/simh/sim_timer.c --sim_cosched_interval[tmr]; /* Countdown ticks */ tmr 681 src/simh/sim_timer.c if (rtc_clock_catchup_eligible[tmr]) { /* calibration started? */ tmr 686 src/simh/sim_timer.c skew = (_timespec_to_double(&now) - (rtc_calib_tick_time[tmr]+rtc_clock_catchup_base_time[tmr])); tmr 688 src/simh/sim_timer.c if (fabs(skew) > fabs(rtc_clock_skew_max[tmr])) tmr 689 src/simh/sim_timer.c rtc_clock_skew_max[tmr] = skew; tmr 691 src/simh/sim_timer.c while ((sim_clock_cosched_queue[tmr] != QUEUE_LIST_END) && tmr 692 src/simh/sim_timer.c (sim_cosched_interval[tmr] < sim_clock_cosched_queue[tmr]->time)) { tmr 693 src/simh/sim_timer.c UNIT *cptr = sim_clock_cosched_queue[tmr]; tmr 694 src/simh/sim_timer.c sim_clock_cosched_queue[tmr] = cptr->next; tmr 699 src/simh/sim_timer.c if (sim_clock_cosched_queue[tmr] != QUEUE_LIST_END) tmr 700 src/simh/sim_timer.c sim_cosched_interval[tmr] = sim_clock_cosched_queue[tmr]->time; tmr 702 src/simh/sim_timer.c sim_cosched_interval[tmr] = 0; tmr 704 src/simh/sim_timer.c sim_timer_activate_after (uptr, 1000000/rtc_hz[tmr]); tmr 790 src/simh/sim_timer.c int32 tmr; tmr 794 src/simh/sim_timer.c for (tmr=0; tmr<SIM_NTIMERS; tmr++) { tmr 795 src/simh/sim_timer.c if ((rtc_hz[tmr]) && tmr 796 src/simh/sim_timer.c (rtc_hz[tmr] <= (uint32)sim_os_tick_hz)) tmr 799 src/simh/sim_timer.c if (tmr == SIM_NTIMERS) { /* None found? */ tmr 800 src/simh/sim_timer.c if ((tmr != newtmr) && (!sim_is_active (&SIM_INTERNAL_UNIT))) { tmr 813 src/simh/sim_timer.c if ((tmr == newtmr) && tmr 819 src/simh/sim_timer.c tmr, rtc_hz[tmr]); tmr 833 src/simh/sim_timer.c sim_calb_tmr, rtc_hz[sim_calb_tmr], tmr, rtc_hz[tmr]); tmr 834 src/simh/sim_timer.c sim_calb_tmr = tmr; tmr 836 src/simh/sim_timer.c sim_calb_tmr = tmr; tmr 858 src/simh/sim_timer.c int tmr; tmr 862 src/simh/sim_timer.c for (tmr=0; tmr<=SIM_NTIMERS; tmr++) { tmr 865 src/simh/sim_timer.c if (sim_clock_unit[tmr]) { tmr 867 src/simh/sim_timer.c sim_cancel (&sim_timer_units[tmr]); tmr 868 src/simh/sim_timer.c if (rtc_hz[tmr]) tmr 869 src/simh/sim_timer.c sim_activate (sim_clock_unit[tmr], rtc_currd[tmr]); tmr 872 src/simh/sim_timer.c while (sim_clock_cosched_queue[tmr] != QUEUE_LIST_END) { tmr 873 src/simh/sim_timer.c UNIT *cptr = sim_clock_cosched_queue[tmr]; tmr 875 src/simh/sim_timer.c sim_clock_cosched_queue[tmr] = cptr->next; tmr 880 src/simh/sim_timer.c _sim_activate (cptr, accum*rtc_currd[tmr]); tmr 911 src/simh/sim_timer.c int inst_delay, tmr; tmr 915 src/simh/sim_timer.c for (tmr=0; tmr<=SIM_NTIMERS; tmr++) tmr 916 src/simh/sim_timer.c if (sim_clock_unit[tmr] == uptr) { tmr 917 src/simh/sim_timer.c uptr = &sim_timer_units[tmr]; tmr 936 src/simh/sim_timer.c t_stat sim_register_clock_unit_tmr (UNIT *uptr, int32 tmr) tmr 938 src/simh/sim_timer.c if (tmr == SIM_INTERNAL_CLK) tmr 939 src/simh/sim_timer.c tmr = SIM_NTIMERS; tmr 941 src/simh/sim_timer.c if ((tmr < 0) || (tmr >= SIM_NTIMERS)) tmr 945 src/simh/sim_timer.c while (sim_clock_cosched_queue[tmr] != QUEUE_LIST_END) { tmr 946 src/simh/sim_timer.c UNIT *uptr = sim_clock_cosched_queue[tmr]; tmr 951 src/simh/sim_timer.c sim_clock_unit[tmr] = NULL; tmr 954 src/simh/sim_timer.c if (NULL == sim_clock_unit[tmr]) tmr 955 src/simh/sim_timer.c sim_clock_cosched_queue[tmr] = QUEUE_LIST_END; tmr 956 src/simh/sim_timer.c sim_clock_unit[tmr] = uptr; tmr 958 src/simh/sim_timer.c sim_timer_units[tmr].flags = UNIT_DIS | (sim_clock_unit[tmr] ? UNIT_IDLE : 0); //-V547 tmr 966 src/simh/sim_timer.c int tmr; tmr 968 src/simh/sim_timer.c for (tmr=0; tmr<SIM_NTIMERS; tmr++) { tmr 969 src/simh/sim_timer.c if (uptr == sim_clock_cosched_queue[tmr]) { tmr 970 src/simh/sim_timer.c sim_clock_cosched_queue[tmr] = uptr->next; tmr 975 src/simh/sim_timer.c for (cptr = sim_clock_cosched_queue[tmr]; tmr 63 src/simh/sim_timer.h int32 sim_rtcn_init (int32 time, int32 tmr); tmr 64 src/simh/sim_timer.h int32 sim_rtcn_init_unit (UNIT *uptr, int32 time, int32 tmr); tmr 67 src/simh/sim_timer.h int32 sim_rtcn_calb (uint32 ticksper, int32 tmr); tmr 80 src/simh/sim_timer.h t_stat sim_register_clock_unit_tmr (UNIT *uptr, int32 tmr);