Lines Matching refs:tmr
680 static void openpic_tmr_set_tmr(OpenPICTimer *tmr, uint32_t val, bool enabled);
684 OpenPICTimer *tmr = opaque; in qemu_timer_cb() local
685 OpenPICState *opp = tmr->opp; in qemu_timer_cb()
686 uint32_t n_IRQ = tmr->n_IRQ; in qemu_timer_cb()
687 uint32_t val = tmr->tbcr & ~TBCR_CI; in qemu_timer_cb()
688 uint32_t tog = ((tmr->tccr & TCCR_TOG) ^ TCCR_TOG); /* invert toggle. */ in qemu_timer_cb()
692 tmr->tccr = val | tog; in qemu_timer_cb()
693 openpic_tmr_set_tmr(tmr, val, /*enabled=*/true); in qemu_timer_cb()
704 static void openpic_tmr_set_tmr(OpenPICTimer *tmr, uint32_t val, bool enabled) in openpic_tmr_set_tmr() argument
715 tmr->qemu_timer_active = false; in openpic_tmr_set_tmr()
716 tmr->tccr = tmr->tccr & TCCR_TOG; in openpic_tmr_set_tmr()
717 timer_del(tmr->qemu_timer); /* set timer to never expire. */ in openpic_tmr_set_tmr()
719 tmr->qemu_timer_active = true; in openpic_tmr_set_tmr()
721 tmr->origin_time = now; in openpic_tmr_set_tmr()
722 timer_mod(tmr->qemu_timer, now + ns); /* set timer expiration. */ in openpic_tmr_set_tmr()
730 static uint64_t openpic_tmr_get_timer(OpenPICTimer *tmr) in openpic_tmr_get_timer() argument
733 if (!tmr->qemu_timer_active) { in openpic_tmr_get_timer()
734 retval = tmr->tccr; in openpic_tmr_get_timer()
737 uint64_t used = now - tmr->origin_time; /* nsecs */ in openpic_tmr_get_timer()
739 uint32_t count = (tmr->tccr & ~TCCR_TOG) - used_ticks; in openpic_tmr_get_timer()
740 retval = (uint32_t)((tmr->tccr & TCCR_TOG) | (count & ~TCCR_TOG)); in openpic_tmr_get_timer()