Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]

Diff markup

Differences between /linux/include/linux/timer.h (Version 2.6.25.8) and /linux/include/linux/timer.h (Version 2.6.11.8)


  1 #ifndef _LINUX_TIMER_H                              1 #ifndef _LINUX_TIMER_H
  2 #define _LINUX_TIMER_H                              2 #define _LINUX_TIMER_H
  3                                                     3 
                                                   >>   4 #include <linux/config.h>
  4 #include <linux/list.h>                             5 #include <linux/list.h>
  5 #include <linux/ktime.h>                       !!   6 #include <linux/spinlock.h>
  6 #include <linux/stddef.h>                           7 #include <linux/stddef.h>
  7                                                     8 
  8 struct tvec_base;                              !!   9 struct tvec_t_base_s;
  9                                                    10 
 10 struct timer_list {                                11 struct timer_list {
 11         struct list_head entry;                    12         struct list_head entry;
 12         unsigned long expires;                     13         unsigned long expires;
 13                                                    14 
                                                   >>  15         spinlock_t lock;
                                                   >>  16         unsigned long magic;
                                                   >>  17 
 14         void (*function)(unsigned long);           18         void (*function)(unsigned long);
 15         unsigned long data;                        19         unsigned long data;
 16                                                    20 
 17         struct tvec_base *base;                !!  21         struct tvec_t_base_s *base;
 18 #ifdef CONFIG_TIMER_STATS                      << 
 19         void *start_site;                      << 
 20         char start_comm[16];                   << 
 21         int start_pid;                         << 
 22 #endif                                         << 
 23 };                                                 22 };
 24                                                    23 
 25 extern struct tvec_base boot_tvec_bases;       !!  24 #define TIMER_MAGIC     0x4b87ad6e
 26                                                    25 
 27 #define TIMER_INITIALIZER(_function, _expires,     26 #define TIMER_INITIALIZER(_function, _expires, _data) {         \
 28                 .function = (_function),           27                 .function = (_function),                        \
 29                 .expires = (_expires),             28                 .expires = (_expires),                          \
 30                 .data = (_data),                   29                 .data = (_data),                                \
 31                 .base = &boot_tvec_bases,      !!  30                 .base = NULL,                                   \
                                                   >>  31                 .magic = TIMER_MAGIC,                           \
                                                   >>  32                 .lock = SPIN_LOCK_UNLOCKED,                     \
 32         }                                          33         }
 33                                                    34 
 34 #define DEFINE_TIMER(_name, _function, _expire !!  35 /***
 35         struct timer_list _name =              !!  36  * init_timer - initialize a timer.
 36                 TIMER_INITIALIZER(_function, _ !!  37  * @timer: the timer to be initialized
 37                                                !!  38  *
 38 void init_timer(struct timer_list *timer);     !!  39  * init_timer() must be done to a timer prior calling *any* of the
 39 void init_timer_deferrable(struct timer_list * !!  40  * other timer functions.
 40                                                !!  41  */
 41 static inline void setup_timer(struct timer_li !!  42 static inline void init_timer(struct timer_list * timer)
 42                                 void (*functio << 
 43                                 unsigned long  << 
 44 {                                                  43 {
 45         timer->function = function;            !!  44         timer->base = NULL;
 46         timer->data = data;                    !!  45         timer->magic = TIMER_MAGIC;
 47         init_timer(timer);                     !!  46         spin_lock_init(&timer->lock);
 48 }                                                  47 }
 49                                                    48 
 50 /**                                            !!  49 /***
 51  * timer_pending - is a timer pending?             50  * timer_pending - is a timer pending?
 52  * @timer: the timer in question                   51  * @timer: the timer in question
 53  *                                                 52  *
 54  * timer_pending will tell whether a given tim     53  * timer_pending will tell whether a given timer is currently pending,
 55  * or not. Callers must ensure serialization w     54  * or not. Callers must ensure serialization wrt. other operations done
 56  * to this timer, eg. interrupt contexts, or o     55  * to this timer, eg. interrupt contexts, or other CPUs on SMP.
 57  *                                                 56  *
 58  * return value: 1 if the timer is pending, 0      57  * return value: 1 if the timer is pending, 0 if not.
 59  */                                                58  */
 60 static inline int timer_pending(const struct t     59 static inline int timer_pending(const struct timer_list * timer)
 61 {                                                  60 {
 62         return timer->entry.next != NULL;      !!  61         return timer->base != NULL;
 63 }                                                  62 }
 64                                                    63 
 65 extern void add_timer_on(struct timer_list *ti     64 extern void add_timer_on(struct timer_list *timer, int cpu);
 66 extern int del_timer(struct timer_list * timer     65 extern int del_timer(struct timer_list * timer);
 67 extern int __mod_timer(struct timer_list *time     66 extern int __mod_timer(struct timer_list *timer, unsigned long expires);
 68 extern int mod_timer(struct timer_list *timer,     67 extern int mod_timer(struct timer_list *timer, unsigned long expires);
 69                                                    68 
 70 /*                                             << 
 71  * The jiffies value which is added to now, wh << 
 72  * in the timer wheel:                         << 
 73  */                                            << 
 74 #define NEXT_TIMER_MAX_DELTA    ((1UL << 30) - << 
 75                                                << 
 76 /*                                             << 
 77  * Return when the next timer-wheel timeout oc << 
 78  * locks the timer base:                       << 
 79  */                                            << 
 80 extern unsigned long next_timer_interrupt(void     69 extern unsigned long next_timer_interrupt(void);
 81 /*                                             << 
 82  * Return when the next timer-wheel timeout oc << 
 83  * locks the timer base and does the compariso << 
 84  * jiffie.                                     << 
 85  */                                            << 
 86 extern unsigned long get_next_timer_interrupt( << 
 87                                                << 
 88 /*                                             << 
 89  * Timer-statistics info:                      << 
 90  */                                            << 
 91 #ifdef CONFIG_TIMER_STATS                      << 
 92                                                << 
 93 #define TIMER_STATS_FLAG_DEFERRABLE     0x1    << 
 94                                                << 
 95 extern void init_timer_stats(void);            << 
 96                                                << 
 97 extern void timer_stats_update_stats(void *tim << 
 98                                      void *tim << 
 99                                      unsigned  << 
100                                                << 
101 extern void __timer_stats_timer_set_start_info << 
102                                                << 
103                                                << 
104 static inline void timer_stats_timer_set_start << 
105 {                                              << 
106         __timer_stats_timer_set_start_info(tim << 
107 }                                              << 
108                                                    70 
109 static inline void timer_stats_timer_clear_sta !!  71 /***
110 {                                              << 
111         timer->start_site = NULL;              << 
112 }                                              << 
113 #else                                          << 
114 static inline void init_timer_stats(void)      << 
115 {                                              << 
116 }                                              << 
117                                                << 
118 static inline void timer_stats_timer_set_start << 
119 {                                              << 
120 }                                              << 
121                                                << 
122 static inline void timer_stats_timer_clear_sta << 
123 {                                              << 
124 }                                              << 
125 #endif                                         << 
126                                                << 
127 /**                                            << 
128  * add_timer - start a timer                       72  * add_timer - start a timer
129  * @timer: the timer to be added                   73  * @timer: the timer to be added
130  *                                                 74  *
131  * The kernel will do a ->function(->data) cal     75  * The kernel will do a ->function(->data) callback from the
132  * timer interrupt at the ->expires point in t !!  76  * timer interrupt at the ->expired point in the future. The
133  * current time is 'jiffies'.                      77  * current time is 'jiffies'.
134  *                                                 78  *
135  * The timer's ->expires, ->function (and if t !!  79  * The timer's ->expired, ->function (and if the handler uses it, ->data)
136  * fields must be set prior calling this funct     80  * fields must be set prior calling this function.
137  *                                                 81  *
138  * Timers with an ->expires field in the past  !!  82  * Timers with an ->expired field in the past will be executed in the next
139  * timer tick.                                     83  * timer tick.
140  */                                                84  */
141 static inline void add_timer(struct timer_list !!  85 static inline void add_timer(struct timer_list * timer)
142 {                                                  86 {
143         BUG_ON(timer_pending(timer));          << 
144         __mod_timer(timer, timer->expires);        87         __mod_timer(timer, timer->expires);
145 }                                                  88 }
146                                                    89 
147 #if defined(CONFIG_SMP) || defined(CONFIG_PREE !!  90 #ifdef CONFIG_SMP
148   extern int timer_pending_sync(struct timer_l << 
149   extern int try_to_del_timer_sync(struct time << 
150   extern int del_timer_sync(struct timer_list      91   extern int del_timer_sync(struct timer_list *timer);
                                                   >>  92   extern int del_singleshot_timer_sync(struct timer_list *timer);
151 #else                                              93 #else
152 # define timer_pending_sync(t)          timer_ !!  94 # define del_timer_sync(t) del_timer(t)
153 # define try_to_del_timer_sync(t)       del_ti !!  95 # define del_singleshot_timer_sync(t) del_timer(t)
154 # define del_timer_sync(t)              del_ti << 
155 #endif                                             96 #endif
156                                                    97 
157 #define del_singleshot_timer_sync(t) del_timer << 
158                                                << 
159 extern void init_timers(void);                     98 extern void init_timers(void);
160 extern void run_local_timers(void);                99 extern void run_local_timers(void);
161 struct hrtimer;                                !! 100 extern void it_real_fn(unsigned long);
162 extern enum hrtimer_restart it_real_fn(struct  << 
163                                                << 
164 unsigned long __round_jiffies(unsigned long j, << 
165 unsigned long __round_jiffies_relative(unsigne << 
166 unsigned long round_jiffies(unsigned long j);  << 
167 unsigned long round_jiffies_relative(unsigned  << 
168                                                << 
169                                                   101 
170 #endif                                            102 #endif
171                                                   103 
  This page was automatically generated by the LXR engine.