Lines Matching defs:timer
4 * general timer device for using in ISDN stacks
14 #include <linux/timer.h>
68 struct mISDNtimer *timer, *next;
75 timer = list_first_entry(list, struct mISDNtimer, list);
77 timer_shutdown_sync(&timer->tl);
80 list_del(&timer->list);
81 kfree(timer);
85 list_for_each_entry_safe(timer, next, &dev->expired, list) {
86 kfree(timer);
97 struct mISDNtimer *timer;
121 timer = list_first_entry(list, struct mISDNtimer, list);
122 list_del(&timer->list);
124 if (put_user(timer->id, (int __user *)buf))
128 kfree(timer);
158 struct mISDNtimer *timer = from_timer(timer, t, tl);
161 spin_lock_irqsave(&timer->dev->lock, flags);
162 if (timer->id >= 0)
163 list_move_tail(&timer->list, &timer->dev->expired);
164 wake_up_interruptible(&timer->dev->wait);
165 spin_unlock_irqrestore(&timer->dev->lock, flags);
172 struct mISDNtimer *timer;
179 timer = kzalloc(sizeof(struct mISDNtimer), GFP_KERNEL);
180 if (!timer)
182 timer->dev = dev;
183 timer_setup(&timer->tl, dev_expire_timer, 0);
185 id = timer->id = dev->next_id++;
188 list_add_tail(&timer->list, &dev->pending);
189 timer->tl.expires = jiffies + ((HZ * (u_long)timeout) / 1000);
190 add_timer(&timer->tl);
199 struct mISDNtimer *timer;
202 list_for_each_entry(timer, &dev->pending, list) {
203 if (timer->id == id) {
204 list_del_init(&timer->list);
205 timer->id = -1;
207 timer_shutdown_sync(&timer->tl);
208 kfree(timer);
286 printk(KERN_WARNING "mISDN: Could not register timer device\n");