Lines Matching refs:timer
34 u64 timer; in get_vtimer() local
36 asm volatile("stpt %0" : "=m" (timer)); in get_vtimer()
37 return timer; in get_vtimer()
42 u64 timer; in set_vtimer() local
47 : "=m" (timer) : "m" (expires)); in set_vtimer()
48 S390_lowcore.system_timer += S390_lowcore.last_update_timer - timer; in set_vtimer()
69 u64 timer, clock, user, system, steal; in do_account_vtime() local
73 timer = S390_lowcore.last_update_timer; in do_account_vtime()
84 S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer; in do_account_vtime()
171 u64 timer, system, system_scaled; in vtime_account_irq_enter() local
173 timer = S390_lowcore.last_update_timer; in vtime_account_irq_enter()
175 S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer; in vtime_account_irq_enter()
202 static void list_add_sorted(struct vtimer_list *timer, struct list_head *head) in list_add_sorted() argument
207 if (tmp->expires > timer->expires) { in list_add_sorted()
208 list_add_tail(&timer->entry, &tmp->entry); in list_add_sorted()
212 list_add_tail(&timer->entry, head); in list_add_sorted()
220 struct vtimer_list *timer, *tmp; in virt_timer_expire() local
227 list_for_each_entry_safe(timer, tmp, &virt_timer_list, entry) { in virt_timer_expire()
228 if (timer->expires < elapsed) in virt_timer_expire()
230 list_move_tail(&timer->entry, &cb_list); in virt_timer_expire()
232 timer->expires -= elapsed; in virt_timer_expire()
235 timer = list_first_entry(&virt_timer_list, in virt_timer_expire()
237 atomic64_set(&virt_timer_current, timer->expires); in virt_timer_expire()
243 list_for_each_entry_safe(timer, tmp, &cb_list, entry) { in virt_timer_expire()
244 list_del_init(&timer->entry); in virt_timer_expire()
245 timer->function(timer->data); in virt_timer_expire()
246 if (timer->interval) { in virt_timer_expire()
248 timer->expires = timer->interval + in virt_timer_expire()
251 list_add_sorted(timer, &virt_timer_list); in virt_timer_expire()
257 void init_virt_timer(struct vtimer_list *timer) in init_virt_timer() argument
259 timer->function = NULL; in init_virt_timer()
260 INIT_LIST_HEAD(&timer->entry); in init_virt_timer()
264 static inline int vtimer_pending(struct vtimer_list *timer) in vtimer_pending() argument
266 return !list_empty(&timer->entry); in vtimer_pending()
269 static void internal_add_vtimer(struct vtimer_list *timer) in internal_add_vtimer() argument
273 atomic64_set(&virt_timer_current, timer->expires); in internal_add_vtimer()
275 list_add(&timer->entry, &virt_timer_list); in internal_add_vtimer()
278 timer->expires += atomic64_read(&virt_timer_elapsed); in internal_add_vtimer()
279 if (likely((s64) timer->expires < in internal_add_vtimer()
282 atomic64_set(&virt_timer_current, timer->expires); in internal_add_vtimer()
284 list_add_sorted(timer, &virt_timer_list); in internal_add_vtimer()
288 static void __add_vtimer(struct vtimer_list *timer, int periodic) in __add_vtimer() argument
292 timer->interval = periodic ? timer->expires : 0; in __add_vtimer()
294 internal_add_vtimer(timer); in __add_vtimer()
301 void add_virt_timer(struct vtimer_list *timer) in add_virt_timer() argument
303 __add_vtimer(timer, 0); in add_virt_timer()
310 void add_virt_timer_periodic(struct vtimer_list *timer) in add_virt_timer_periodic() argument
312 __add_vtimer(timer, 1); in add_virt_timer_periodic()
316 static int __mod_vtimer(struct vtimer_list *timer, u64 expires, int periodic) in __mod_vtimer() argument
321 BUG_ON(!timer->function); in __mod_vtimer()
323 if (timer->expires == expires && vtimer_pending(timer)) in __mod_vtimer()
326 rc = vtimer_pending(timer); in __mod_vtimer()
328 list_del_init(&timer->entry); in __mod_vtimer()
329 timer->interval = periodic ? expires : 0; in __mod_vtimer()
330 timer->expires = expires; in __mod_vtimer()
331 internal_add_vtimer(timer); in __mod_vtimer()
339 int mod_virt_timer(struct vtimer_list *timer, u64 expires) in mod_virt_timer() argument
341 return __mod_vtimer(timer, expires, 0); in mod_virt_timer()
348 int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires) in mod_virt_timer_periodic() argument
350 return __mod_vtimer(timer, expires, 1); in mod_virt_timer_periodic()
359 int del_virt_timer(struct vtimer_list *timer) in del_virt_timer() argument
363 if (!vtimer_pending(timer)) in del_virt_timer()
366 list_del_init(&timer->entry); in del_virt_timer()