Lines Matching full:edge

113 static struct unix_vertex *unix_edge_successor(struct unix_edge *edge)  in unix_edge_successor()  argument
118 if (edge->successor->listener) in unix_edge_successor()
119 return unix_sk(edge->successor->listener)->vertex; in unix_edge_successor()
121 return edge->successor->vertex; in unix_edge_successor()
149 static void unix_add_edge(struct scm_fp_list *fpl, struct unix_edge *edge) in unix_add_edge() argument
151 struct unix_vertex *vertex = edge->predecessor->vertex; in unix_add_edge()
161 edge->predecessor->vertex = vertex; in unix_add_edge()
165 list_add_tail(&edge->vertex_entry, &vertex->edges); in unix_add_edge()
167 unix_update_graph(unix_edge_successor(edge)); in unix_add_edge()
170 static void unix_del_edge(struct scm_fp_list *fpl, struct unix_edge *edge) in unix_del_edge() argument
172 struct unix_vertex *vertex = edge->predecessor->vertex; in unix_del_edge()
175 unix_update_graph(unix_edge_successor(edge)); in unix_del_edge()
177 list_del(&edge->vertex_entry); in unix_del_edge()
181 edge->predecessor->vertex = NULL; in unix_del_edge()
210 struct unix_edge *edge; in unix_add_edges() local
215 edge = fpl->edges + i++; in unix_add_edges()
216 edge->predecessor = inflight; in unix_add_edges()
217 edge->successor = receiver; in unix_add_edges()
219 unix_add_edge(fpl, edge); in unix_add_edges()
245 struct unix_edge *edge = fpl->edges + i++; in unix_del_edges() local
247 unix_del_edge(fpl, edge); in unix_del_edges()
318 struct unix_edge *edge; in unix_vertex_dead() local
322 list_for_each_entry(edge, &vertex->edges, vertex_entry) { in unix_vertex_dead()
323 struct unix_vertex *next_vertex = unix_edge_successor(edge); in unix_vertex_dead()
338 edge = list_first_entry(&vertex->edges, typeof(*edge), vertex_entry); in unix_vertex_dead()
339 u = edge->predecessor; in unix_vertex_dead()
355 struct unix_edge *edge; in unix_collect_skb() local
358 edge = list_first_entry(&vertex->edges, typeof(*edge), vertex_entry); in unix_collect_skb()
359 u = edge->predecessor; in unix_collect_skb()
385 struct unix_edge *edge; in unix_scc_cyclic() local
394 list_for_each_entry(edge, &vertex->edges, vertex_entry) { in unix_scc_cyclic()
395 if (unix_edge_successor(edge) == vertex) in unix_scc_cyclic()
409 struct unix_edge *edge; in __unix_walk_scc() local
424 list_for_each_entry(edge, &vertex->edges, vertex_entry) { in __unix_walk_scc()
425 struct unix_vertex *next_vertex = unix_edge_successor(edge); in __unix_walk_scc()
433 * 1. Push a forward edge to edge_stack and set in __unix_walk_scc()
436 list_add(&edge->stack_entry, &edge_stack); in __unix_walk_scc()
441 /* 2. Pop the edge directed to the current vertex in __unix_walk_scc()
445 edge = list_first_entry(&edge_stack, typeof(*edge), stack_entry); in __unix_walk_scc()
446 list_del_init(&edge->stack_entry); in __unix_walk_scc()
449 vertex = edge->predecessor->vertex; in __unix_walk_scc()
457 /* Loop detected by a back/cross edge. in __unix_walk_scc()