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