Lines Matching refs:timer
35 u64 timer; in get_vtimer() local
37 asm volatile("stpt %0" : "=m" (timer)); in get_vtimer()
38 return timer; in get_vtimer()
43 u64 timer; in set_vtimer() local
48 : "=m" (timer) : "m" (expires)); in set_vtimer()
49 S390_lowcore.system_timer += S390_lowcore.last_update_timer - timer; in set_vtimer()
98 u64 timer, clock, user, system, steal; in do_account_vtime() local
101 timer = S390_lowcore.last_update_timer; in do_account_vtime()
112 S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer; in do_account_vtime()
181 u64 timer, system, system_scaled; in vtime_account_irq_enter() local
183 timer = S390_lowcore.last_update_timer; in vtime_account_irq_enter()
185 S390_lowcore.system_timer += timer - S390_lowcore.last_update_timer; in vtime_account_irq_enter()
217 static void list_add_sorted(struct vtimer_list *timer, struct list_head *head) in list_add_sorted() argument
222 if (tmp->expires > timer->expires) { in list_add_sorted()
223 list_add_tail(&timer->entry, &tmp->entry); in list_add_sorted()
227 list_add_tail(&timer->entry, head); in list_add_sorted()
235 struct vtimer_list *timer, *tmp; in virt_timer_expire() local
242 list_for_each_entry_safe(timer, tmp, &virt_timer_list, entry) { in virt_timer_expire()
243 if (timer->expires < elapsed) in virt_timer_expire()
245 list_move_tail(&timer->entry, &cb_list); in virt_timer_expire()
247 timer->expires -= elapsed; in virt_timer_expire()
250 timer = list_first_entry(&virt_timer_list, in virt_timer_expire()
252 atomic64_set(&virt_timer_current, timer->expires); in virt_timer_expire()
258 list_for_each_entry_safe(timer, tmp, &cb_list, entry) { in virt_timer_expire()
259 list_del_init(&timer->entry); in virt_timer_expire()
260 timer->function(timer->data); in virt_timer_expire()
261 if (timer->interval) { in virt_timer_expire()
263 timer->expires = timer->interval + in virt_timer_expire()
266 list_add_sorted(timer, &virt_timer_list); in virt_timer_expire()
272 void init_virt_timer(struct vtimer_list *timer) in init_virt_timer() argument
274 timer->function = NULL; in init_virt_timer()
275 INIT_LIST_HEAD(&timer->entry); in init_virt_timer()
279 static inline int vtimer_pending(struct vtimer_list *timer) in vtimer_pending() argument
281 return !list_empty(&timer->entry); in vtimer_pending()
284 static void internal_add_vtimer(struct vtimer_list *timer) in internal_add_vtimer() argument
288 atomic64_set(&virt_timer_current, timer->expires); in internal_add_vtimer()
290 list_add(&timer->entry, &virt_timer_list); in internal_add_vtimer()
293 timer->expires += atomic64_read(&virt_timer_elapsed); in internal_add_vtimer()
294 if (likely((s64) timer->expires < in internal_add_vtimer()
297 atomic64_set(&virt_timer_current, timer->expires); in internal_add_vtimer()
299 list_add_sorted(timer, &virt_timer_list); in internal_add_vtimer()
303 static void __add_vtimer(struct vtimer_list *timer, int periodic) in __add_vtimer() argument
307 timer->interval = periodic ? timer->expires : 0; in __add_vtimer()
309 internal_add_vtimer(timer); in __add_vtimer()
316 void add_virt_timer(struct vtimer_list *timer) in add_virt_timer() argument
318 __add_vtimer(timer, 0); in add_virt_timer()
325 void add_virt_timer_periodic(struct vtimer_list *timer) in add_virt_timer_periodic() argument
327 __add_vtimer(timer, 1); in add_virt_timer_periodic()
331 static int __mod_vtimer(struct vtimer_list *timer, u64 expires, int periodic) in __mod_vtimer() argument
336 BUG_ON(!timer->function); in __mod_vtimer()
338 if (timer->expires == expires && vtimer_pending(timer)) in __mod_vtimer()
341 rc = vtimer_pending(timer); in __mod_vtimer()
343 list_del_init(&timer->entry); in __mod_vtimer()
344 timer->interval = periodic ? expires : 0; in __mod_vtimer()
345 timer->expires = expires; in __mod_vtimer()
346 internal_add_vtimer(timer); in __mod_vtimer()
354 int mod_virt_timer(struct vtimer_list *timer, u64 expires) in mod_virt_timer() argument
356 return __mod_vtimer(timer, expires, 0); in mod_virt_timer()
363 int mod_virt_timer_periodic(struct vtimer_list *timer, u64 expires) in mod_virt_timer_periodic() argument
365 return __mod_vtimer(timer, expires, 1); in mod_virt_timer_periodic()
374 int del_virt_timer(struct vtimer_list *timer) in del_virt_timer() argument
378 if (!vtimer_pending(timer)) in del_virt_timer()
381 list_del_init(&timer->entry); in del_virt_timer()