Lines Matching refs:systick
42 } systick; member
58 if (s->systick.control & SYSTICK_CLKSOURCE) in systick_scale()
67 s->systick.tick = qemu_get_clock_ns(vm_clock); in systick_reload()
68 s->systick.tick += (s->systick.reload + 1) * systick_scale(s); in systick_reload()
69 qemu_mod_timer(s->systick.timer, s->systick.tick); in systick_reload()
75 s->systick.control |= SYSTICK_COUNTFLAG; in systick_timer_tick()
76 if (s->systick.control & SYSTICK_TICKINT) { in systick_timer_tick()
80 if (s->systick.reload == 0) { in systick_timer_tick()
81 s->systick.control &= ~SYSTICK_ENABLE; in systick_timer_tick()
129 val = s->systick.control; in nvic_readl()
130 s->systick.control &= ~SYSTICK_COUNTFLAG; in nvic_readl()
133 return s->systick.reload; in nvic_readl()
137 if ((s->systick.control & SYSTICK_ENABLE) == 0) in nvic_readl()
140 if (t >= s->systick.tick) in nvic_readl()
142 val = ((s->systick.tick - (t + 1)) / systick_scale(s)) + 1; in nvic_readl()
146 if (val > s->systick.reload) in nvic_readl()
272 oldval = s->systick.control; in nvic_writel()
273 s->systick.control &= 0xfffffff8; in nvic_writel()
274 s->systick.control |= value & 7; in nvic_writel()
278 if (s->systick.tick) { in nvic_writel()
279 s->systick.tick += now; in nvic_writel()
280 qemu_mod_timer(s->systick.timer, s->systick.tick); in nvic_writel()
285 qemu_del_timer(s->systick.timer); in nvic_writel()
286 s->systick.tick -= now; in nvic_writel()
287 if (s->systick.tick < 0) in nvic_writel()
288 s->systick.tick = 0; in nvic_writel()
297 s->systick.reload = value; in nvic_writel()
301 s->systick.control &= ~SYSTICK_COUNTFLAG; in nvic_writel()
372 qemu_put_be32(f, s->systick.control); in nvic_save()
373 qemu_put_be32(f, s->systick.reload); in nvic_save()
374 qemu_put_be64(f, s->systick.tick); in nvic_save()
375 qemu_put_timer(f, s->systick.timer); in nvic_save()
385 s->systick.control = qemu_get_be32(f); in nvic_load()
386 s->systick.reload = qemu_get_be32(f); in nvic_load()
387 s->systick.tick = qemu_get_be64(f); in nvic_load()
388 qemu_get_timer(f, s->systick.timer); in nvic_load()
399 s->systick.timer = qemu_new_timer_ns(vm_clock, systick_timer_tick, s); in armv7m_nvic_init()