|  | /* Copyright (c) 2013 The Regents of the University of California | 
|  | * Barret Rhoden <brho@cs.berkeley.edu> | 
|  | * See LICENSE for details. | 
|  | * | 
|  | * Alarm device includes (needed for the linkage to struct proc) */ | 
|  |  | 
|  | #ifndef ROS_KERN_DEVALARM_H | 
|  | #define ROS_KERN_DEVALARM_H | 
|  |  | 
|  | #include <sys/queue.h> | 
|  | #include <kref.h> | 
|  | #include <alarm.h> | 
|  | #include <event.h> | 
|  | #include <atomic.h> | 
|  |  | 
|  | struct proc_alarm { | 
|  | TAILQ_ENTRY(proc_alarm)		link; | 
|  | int							id; | 
|  | struct kref					kref; | 
|  | struct alarm_waiter			a_waiter; | 
|  | struct proc					*proc; | 
|  | struct event_queue			*ev_q; | 
|  | }; | 
|  | TAILQ_HEAD(proc_alarm_list, proc_alarm); | 
|  |  | 
|  | struct proc_alarm_set { | 
|  | struct proc_alarm_list 		list; | 
|  | spinlock_t 					lock; | 
|  | struct timer_chain			*tchain; | 
|  | int							id_counter; | 
|  | }; | 
|  |  | 
|  | void devalarm_init(struct proc *p); | 
|  |  | 
|  | #endif /* ROS_KERN_DEVALARM_H */ |