00001 00043 #ifndef SOFTIRQ_H_INCLUDED 00044 #define SOFTIRQ_H_INCLUDED 00045 00046 #include <bitops.h> 00047 #include <util.h> 00048 #include <app/softirq.h> 00049 00069 typedef void (*softirq_handler_t)(void *data); 00070 00077 struct softirq_desc { 00079 softirq_handler_t handler; 00081 void *data; 00082 }; 00083 00084 #define SOFTIRQ_BITMAP_WORDS (div_ceil(SOFTIRQ_NR_IDS, 8 * sizeof(bit_word_t))) 00085 00086 extern bit_word_t softirq_priv_status[SOFTIRQ_BITMAP_WORDS]; 00087 extern struct softirq_desc softirq_priv_table[SOFTIRQ_NR_IDS]; 00088 00089 extern void softirq_set_handler(enum softirq_id id, 00090 softirq_handler_t handler, void *data); 00091 00102 static inline void softirq_raise(enum softirq_id id) 00103 { 00104 atomic_set_bit(id, softirq_priv_status); 00105 } 00106 00107 #include <arch/softirq.h> 00108 00109 /* Documentation for app/softirq.h follows */ 00110 00128 /* The rest of the file is common documentation for arch/softirq.h */ 00129 00183 00184 00185 #endif /* SOFTIRQ_H_INCLUDED */
1.6.3