Lines Matching refs:rose_node
38 static struct rose_node *rose_node_list;
54 struct rose_node *rose_node, *rose_tmpn, *rose_tmpp; in rose_add_node() local
61 rose_node = rose_node_list; in rose_add_node()
62 while (rose_node != NULL) { in rose_add_node()
63 if ((rose_node->mask == rose_route->mask) && in rose_add_node()
64 (rosecmpm(&rose_route->address, &rose_node->address, in rose_add_node()
67 rose_node = rose_node->next; in rose_add_node()
70 if (rose_node != NULL && rose_node->loopback) { in rose_add_node()
137 if (rose_node == NULL) { in rose_add_node()
151 rose_node = kmalloc_obj(*rose_node, GFP_ATOMIC); in rose_add_node()
152 if (rose_node == NULL) { in rose_add_node()
157 rose_node->address = rose_route->address; in rose_add_node()
158 rose_node->mask = rose_route->mask; in rose_add_node()
159 rose_node->count = 1; in rose_add_node()
160 rose_node->loopback = 0; in rose_add_node()
161 rose_node->neighbour[0] = rose_neigh; in rose_add_node()
165 rose_node_list = rose_node; in rose_add_node()
166 rose_node->next = NULL; in rose_add_node()
168 rose_tmpp->next = rose_node; in rose_add_node()
169 rose_node->next = NULL; in rose_add_node()
173 rose_node->next = rose_node_list; in rose_add_node()
174 rose_node_list = rose_node; in rose_add_node()
176 rose_tmpp->next = rose_node; in rose_add_node()
177 rose_node->next = rose_tmpn; in rose_add_node()
187 if (rose_node->count < 3) { in rose_add_node()
188 rose_node->neighbour[rose_node->count] = rose_neigh; in rose_add_node()
189 rose_node->count++; in rose_add_node()
204 static void rose_remove_node(struct rose_node *rose_node) in rose_remove_node() argument
206 struct rose_node *s; in rose_remove_node()
208 if ((s = rose_node_list) == rose_node) { in rose_remove_node()
209 rose_node_list = rose_node->next; in rose_remove_node()
210 kfree(rose_node); in rose_remove_node()
215 if (s->next == rose_node) { in rose_remove_node()
216 s->next = rose_node->next; in rose_remove_node()
217 kfree(rose_node); in rose_remove_node()
289 struct rose_node *rose_node; in rose_del_node() local
296 rose_node = rose_node_list; in rose_del_node()
297 while (rose_node != NULL) { in rose_del_node()
298 if ((rose_node->mask == rose_route->mask) && in rose_del_node()
299 (rosecmpm(&rose_route->address, &rose_node->address, in rose_del_node()
302 rose_node = rose_node->next; in rose_del_node()
305 if (rose_node == NULL || rose_node->loopback) { in rose_del_node()
324 for (i = 0; i < rose_node->count; i++) { in rose_del_node()
325 if (rose_node->neighbour[i] == rose_neigh) { in rose_del_node()
334 rose_node->count--; in rose_del_node()
336 if (rose_node->count == 0) { in rose_del_node()
337 rose_remove_node(rose_node); in rose_del_node()
341 rose_node->neighbour[0] = in rose_del_node()
342 rose_node->neighbour[1]; in rose_del_node()
345 rose_node->neighbour[1] = in rose_del_node()
346 rose_node->neighbour[2]; in rose_del_node()
403 struct rose_node *rose_node; in rose_add_loopback_node() local
408 rose_node = rose_node_list; in rose_add_loopback_node()
409 while (rose_node != NULL) { in rose_add_loopback_node()
410 if ((rose_node->mask == 10) && in rose_add_loopback_node()
411 (rosecmpm(address, &rose_node->address, 10) == 0) && in rose_add_loopback_node()
412 rose_node->loopback) in rose_add_loopback_node()
414 rose_node = rose_node->next; in rose_add_loopback_node()
417 if (rose_node != NULL) in rose_add_loopback_node()
420 if ((rose_node = kmalloc_obj(*rose_node, GFP_ATOMIC)) == NULL) { in rose_add_loopback_node()
425 rose_node->address = *address; in rose_add_loopback_node()
426 rose_node->mask = 10; in rose_add_loopback_node()
427 rose_node->count = 1; in rose_add_loopback_node()
428 rose_node->loopback = 1; in rose_add_loopback_node()
429 rose_node->neighbour[0] = rose_loopback_neigh; in rose_add_loopback_node()
432 rose_node->next = rose_node_list; in rose_add_loopback_node()
433 rose_node_list = rose_node; in rose_add_loopback_node()
449 struct rose_node *rose_node; in rose_del_loopback_node() local
453 rose_node = rose_node_list; in rose_del_loopback_node()
454 while (rose_node != NULL) { in rose_del_loopback_node()
455 if ((rose_node->mask == 10) && in rose_del_loopback_node()
456 (rosecmpm(address, &rose_node->address, 10) == 0) && in rose_del_loopback_node()
457 rose_node->loopback) in rose_del_loopback_node()
459 rose_node = rose_node->next; in rose_del_loopback_node()
462 if (rose_node == NULL) in rose_del_loopback_node()
465 rose_remove_node(rose_node); in rose_del_loopback_node()
480 struct rose_node *t, *rose_node; in rose_rt_device_down() local
493 rose_node = rose_node_list; in rose_rt_device_down()
495 while (rose_node != NULL) { in rose_rt_device_down()
496 t = rose_node; in rose_rt_device_down()
497 rose_node = rose_node->next; in rose_rt_device_down()
551 struct rose_node *t, *rose_node; in rose_clear_routes() local
558 rose_node = rose_node_list; in rose_clear_routes()
560 while (rose_node != NULL) { in rose_clear_routes()
561 t = rose_node; in rose_clear_routes()
562 rose_node = rose_node->next; in rose_clear_routes()
683 struct rose_node *node; in rose_get_neigh()
1100 struct rose_node *rose_node; in rose_node_start() local
1107 for (rose_node = rose_node_list; rose_node && i < *pos; in rose_node_start()
1108 rose_node = rose_node->next, ++i); in rose_node_start()
1110 return (i == *pos) ? rose_node : NULL; in rose_node_start()
1118 : ((struct rose_node *)v)->next; in rose_node_next()
1135 const struct rose_node *rose_node = v; in rose_node_show() local
1137 rose2asc(rsbuf, &rose_node->address), in rose_node_show()
1138 rose_node->mask, in rose_node_show()
1139 rose_node->count); in rose_node_show()
1141 for (i = 0; i < rose_node->count; i++) in rose_node_show()
1142 seq_printf(seq, " %05d", rose_node->neighbour[i]->number); in rose_node_show()
1306 struct rose_node *t, *rose_node = rose_node_list; in rose_rt_free() local
1318 while (rose_node != NULL) { in rose_rt_free()
1319 t = rose_node; in rose_rt_free()
1320 rose_node = rose_node->next; in rose_rt_free()