Rev 2450 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2450 | Rev 2461 | ||
|---|---|---|---|
| Line 56... | Line 56... | ||
| 56 | { |
56 | { |
| 57 | spinlock_initialize(&CPU->timeoutlock, "timeout_lock"); |
57 | spinlock_initialize(&CPU->timeoutlock, "timeout_lock"); |
| 58 | 58 | ||
| 59 | #if defined CONFIG_TIMEOUT_AVL_TREE |
59 | #if defined CONFIG_TIMEOUT_AVL_TREE |
| 60 | avltree_create(&CPU->timeout_active_tree); |
60 | avltree_create(&CPU->timeout_active_tree); |
| - | 61 | #elif defined CONFIG_TIMEOUT_FAVL_TREE |
|
| - | 62 | favltree_create(&CPU->timeout_active_tree); |
|
| 61 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
63 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
| 62 | extavltree_create(&CPU->timeout_active_tree); |
64 | extavltree_create(&CPU->timeout_active_tree); |
| 63 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
65 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
| 64 | extavlreltree_create(&CPU->timeout_active_tree); |
66 | extavlreltree_create(&CPU->timeout_active_tree); |
| 65 | #else |
67 | #else |
| Line 81... | Line 83... | ||
| 81 | t->handler = NULL; |
83 | t->handler = NULL; |
| 82 | t->arg = NULL; |
84 | t->arg = NULL; |
| 83 | 85 | ||
| 84 | #if defined CONFIG_TIMEOUT_AVL_TREE |
86 | #if defined CONFIG_TIMEOUT_AVL_TREE |
| 85 | avltree_node_initialize(&t->node); |
87 | avltree_node_initialize(&t->node); |
| - | 88 | #elif defined CONFIG_TIMEOUT_FAVL_TREE |
|
| - | 89 | favltree_node_initialize(&t->node); |
|
| 86 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
90 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
| 87 | extavltree_node_initialize(&t->node); |
91 | extavltree_node_initialize(&t->node); |
| 88 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
92 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
| 89 | extavlreltree_node_initialize(&t->node); |
93 | extavlreltree_node_initialize(&t->node); |
| 90 | #else |
94 | #else |
| Line 106... | Line 110... | ||
| 106 | spinlock_initialize(&t->lock, "timeout_t_lock"); |
110 | spinlock_initialize(&t->lock, "timeout_t_lock"); |
| 107 | timeout_reinitialize(t); |
111 | timeout_reinitialize(t); |
| 108 | } |
112 | } |
| 109 | 113 | ||
| 110 | #if defined CONFIG_TIMEOUT_AVL_TREE || \ |
114 | #if defined CONFIG_TIMEOUT_AVL_TREE || \ |
| - | 115 | defined CONFIG_TIMEOUT_FAVL_TREE || \ |
|
| 111 | defined CONFIG_TIMEOUT_EXTAVL_TREE || \ |
116 | defined CONFIG_TIMEOUT_EXTAVL_TREE || \ |
| 112 | defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
117 | defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
| 113 | 118 | ||
| 114 | /** Register timeout |
119 | /** Register timeout |
| 115 | * |
120 | * |
| 116 | * Insert timeout handler f (with argument arg) |
121 | * Insert timeout handler f (with argument arg) |
| 117 | * to timeout ExtAVL tree and make it execute in |
122 | * to timeout tree and make it execute in |
| 118 | * time microseconds (or slightly more). |
123 | * time microseconds (or slightly more). |
| 119 | * |
124 | * |
| 120 | * @param t Timeout structure. |
125 | * @param t Timeout structure. |
| 121 | * @param time Number of usec in the future to execute |
126 | * @param time Number of usec in the future to execute |
| 122 | * the handler. |
127 | * the handler. |
| Line 139... | Line 144... | ||
| 139 | t->handler = f; |
144 | t->handler = f; |
| 140 | t->arg = arg; |
145 | t->arg = arg; |
| 141 | t->node.key = us2ticks(time); |
146 | t->node.key = us2ticks(time); |
| 142 | 147 | ||
| 143 | /* |
148 | /* |
| 144 | * Put timeout into tree structure. |
149 | * Insert timeout into tree structure. |
| 145 | */ |
150 | */ |
| 146 | #if defined CONFIG_TIMEOUT_AVL_TREE |
151 | #if defined CONFIG_TIMEOUT_AVL_TREE |
| 147 | avltree_insert(&CPU->timeout_active_tree,&t->node); |
152 | avltree_insert(&CPU->timeout_active_tree,&t->node); |
| - | 153 | #elif defined CONFIG_TIMEOUT_FAVL_TREE |
|
| - | 154 | favltree_insert(&CPU->timeout_active_tree,&t->node); |
|
| 148 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
155 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
| 149 | extavltree_insert(&CPU->timeout_active_tree,&t->node); |
156 | extavltree_insert(&CPU->timeout_active_tree,&t->node); |
| 150 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
157 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
| 151 | extavlreltree_insert(&CPU->timeout_active_tree,&t->node); |
158 | extavlreltree_insert(&CPU->timeout_active_tree,&t->node); |
| 152 | #endif |
159 | #endif |
| Line 157... | Line 164... | ||
| 157 | } |
164 | } |
| 158 | 165 | ||
| 159 | 166 | ||
| 160 | /** Unregister timeout |
167 | /** Unregister timeout |
| 161 | * |
168 | * |
| 162 | * Remove timeout from timeout ExtAVL tree structure. |
169 | * Remove timeout from timeout tree structure. |
| 163 | * |
170 | * |
| 164 | * @param t Timeout to unregister. |
171 | * @param t Timeout to unregister. |
| 165 | * |
172 | * |
| 166 | * @return true on success, false on failure. |
173 | * @return true on success, false on failure. |
| 167 | */ |
174 | */ |
| Line 190... | Line 197... | ||
| 190 | /* |
197 | /* |
| 191 | * Delete timeout from tree structure. |
198 | * Delete timeout from tree structure. |
| 192 | */ |
199 | */ |
| 193 | #if defined CONFIG_TIMEOUT_AVL_TREE |
200 | #if defined CONFIG_TIMEOUT_AVL_TREE |
| 194 | avltree_delete(&t->cpu->timeout_active_tree,&t->node); |
201 | avltree_delete(&t->cpu->timeout_active_tree,&t->node); |
| - | 202 | #elif defined CONFIG_TIMEOUT_FAVL_TREE |
|
| - | 203 | favltree_delete(&t->cpu->timeout_active_tree,&t->node); |
|
| 195 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
204 | #elif defined CONFIG_TIMEOUT_EXTAVL_TREE |
| 196 | extavltree_delete(&t->cpu->timeout_active_tree,&t->node); |
205 | extavltree_delete(&t->cpu->timeout_active_tree,&t->node); |
| 197 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
206 | #elif defined CONFIG_TIMEOUT_EXTAVLREL_TREE |
| 198 | extavlreltree_delete(&t->cpu->timeout_active_tree,&t->node); |
207 | extavlreltree_delete(&t->cpu->timeout_active_tree,&t->node); |
| 199 | #endif |
208 | #endif |