Lines Matching defs:new_timer
451 static int common_timer_create(struct k_itimer *new_timer)
453 hrtimer_setup(&new_timer->it.real.timer, posix_timer_fn, new_timer->it_clock, 0);
463 struct k_itimer *new_timer;
480 new_timer = alloc_posix_timer();
481 if (unlikely(!new_timer))
484 spin_lock_init(&new_timer->it_lock);
490 new_timer_id = posix_timer_add(new_timer, req_id);
492 posixtimer_free_timer(new_timer);
496 new_timer->it_clock = which_clock;
497 new_timer->kclock = kc;
498 new_timer->it_overrun = -1LL;
502 new_timer->it_pid = get_pid(good_sigevent(event));
503 if (!new_timer->it_pid) {
507 new_timer->it_sigev_notify = event->sigev_notify;
508 new_timer->sigq.info.si_signo = event->sigev_signo;
509 new_timer->sigq.info.si_value = event->sigev_value;
511 new_timer->it_sigev_notify = SIGEV_SIGNAL;
512 new_timer->sigq.info.si_signo = SIGALRM;
513 new_timer->sigq.info.si_value.sival_int = new_timer->it_id;
514 new_timer->it_pid = get_pid(task_tgid(current));
517 if (new_timer->it_sigev_notify & SIGEV_THREAD_ID)
518 new_timer->it_pid_type = PIDTYPE_PID;
520 new_timer->it_pid_type = PIDTYPE_TGID;
522 new_timer->sigq.info.si_tid = new_timer->it_id;
523 new_timer->sigq.info.si_code = SI_TIMER;
531 * now but not yet valid because new_timer::signal low order bit is 1.
536 error = kc->timer_create(new_timer);
546 scoped_guard (spinlock_irq, &new_timer->it_lock) {
549 * new_timer::it_signal contains the signal pointer with
553 WRITE_ONCE(new_timer->it_signal, current->signal);
554 hlist_add_head_rcu(&new_timer->list, ¤t->signal->posix_timers);
557 * After unlocking @new_timer is subject to concurrent removal and
562 posix_timer_unhash_and_free(new_timer);