#include <stdlib.h>#include <string.h>#include <stdint.h>#include "emu/emu_list.h"

Go to the source code of this file.
Classes | |
| struct | emu_edge |
| struct | emu_vertex |
| struct | emu_graph |
Typedefs | |
| typedef void(* | emu_graph_destructor )(void *data) |
Enumerations | |
| enum | emu_color { black, blue, cyan, green, grey, magenta, red, white, yellow } |
Functions | |
| header_list_typedefs (emu_edge_root, emu_edge, emu_edge_link) | |
| header_list_functions (emu_edges, emu_edge_root, emu_edge, link) | |
| struct emu_edge * | emu_edge_new (void) |
| void | emu_edge_free (struct emu_edge *ee) |
| header_list_typedefs (emu_vertex_root, emu_vertex, emu_vertex_link) | |
| header_list_functions (emu_vertexes, emu_vertex_root, emu_vertex, link) | |
| struct emu_vertex * | emu_vertex_new (void) |
| void | emu_vertex_free (struct emu_vertex *ev) |
| void | emu_vertex_data_set (struct emu_vertex *ev, void *data) |
| void * | emu_vertex_data_get (struct emu_vertex *ev) |
| struct emu_edge * | emu_vertex_edge_add (struct emu_vertex *ev, struct emu_vertex *to) |
| struct emu_graph * | emu_graph_new (void) |
| void | emu_graph_free (struct emu_graph *eg) |
| void | emu_graph_vertex_add (struct emu_graph *eg, struct emu_vertex *ev) |
| bool | emu_graph_path_exists (struct emu_graph *eg, struct emu_vertex *from, struct emu_vertex *to) |
| bool | emu_graph_loop_detect (struct emu_graph *eg, struct emu_vertex *from) |
| int32_t | emu_graph_distance (struct emu_graph *eg, struct emu_vertex *from, struct emu_vertex *to) |
| typedef void(* emu_graph_destructor)(void *data) |
| enum emu_color |
| void emu_edge_free | ( | struct emu_edge * | ee | ) |
| struct emu_edge* emu_edge_new | ( | void | ) | [read] |
Referenced by emu_vertex_edge_add().
| int32_t emu_graph_distance | ( | struct emu_graph * | eg, | |
| struct emu_vertex * | from, | |||
| struct emu_vertex * | to | |||
| ) |
References emu_vertex::distance, and emu_graph_path_exists().

| void emu_graph_free | ( | struct emu_graph * | eg | ) |
References emu_vertex::backedges, emu_vertex::data, emu_vertex::edges, emu_graph::vertex_destructor, and emu_graph::vertexes.
Referenced by emu_track_and_source_free().
| bool emu_graph_loop_detect | ( | struct emu_graph * | eg, | |
| struct emu_vertex * | from | |||
| ) |
References black, emu_vertex::color, emu_edge::destination, emu_vertex::edges, emu_graph_path_exists(), emu_queue_dequeue(), emu_queue_empty(), emu_queue_enqueue(), emu_queue_free(), emu_queue_new(), grey, emu_graph::vertexes, and white.

| struct emu_graph* emu_graph_new | ( | void | ) | [read] |
References emu_graph::vertexes.
Referenced by emu_source_instruction_graph_create().
| bool emu_graph_path_exists | ( | struct emu_graph * | eg, | |
| struct emu_vertex * | from, | |||
| struct emu_vertex * | to | |||
| ) |
References black, emu_vertex::color, emu_edge::destination, emu_vertex::distance, emu_vertex::edges, emu_queue_dequeue(), emu_queue_empty(), emu_queue_enqueue(), emu_queue_free(), emu_queue_new(), grey, emu_graph::vertexes, and white.
Referenced by emu_graph_distance(), and emu_graph_loop_detect().

| void emu_graph_vertex_add | ( | struct emu_graph * | eg, | |
| struct emu_vertex * | ev | |||
| ) |
References emu_graph::vertexes.
Referenced by emu_source_instruction_graph_create().
| void* emu_vertex_data_get | ( | struct emu_vertex * | ev | ) |
References emu_vertex::data.
| void emu_vertex_data_set | ( | struct emu_vertex * | ev, | |
| void * | data | |||
| ) |
References emu_vertex::data.
| struct emu_edge* emu_vertex_edge_add | ( | struct emu_vertex * | ev, | |
| struct emu_vertex * | to | |||
| ) | [read] |
References emu_vertex::backedges, emu_vertex::backlinks, emu_edge::count, emu_edge::destination, emu_vertex::edges, and emu_edge_new().
Referenced by emu_source_instruction_graph_create().

| void emu_vertex_free | ( | struct emu_vertex * | ev | ) |
| struct emu_vertex* emu_vertex_new | ( | void | ) | [read] |
References emu_vertex::backedges, and emu_vertex::edges.
Referenced by emu_source_instruction_graph_create().
| header_list_functions | ( | emu_vertexes | , | |
| emu_vertex_root | , | |||
| emu_vertex | , | |||
| link | ||||
| ) |
| header_list_functions | ( | emu_edges | , | |
| emu_edge_root | , | |||
| emu_edge | , | |||
| link | ||||
| ) |
| header_list_typedefs | ( | emu_vertex_root | , | |
| emu_vertex | , | |||
| emu_vertex_link | ||||
| ) |
| header_list_typedefs | ( | emu_edge_root | , | |
| emu_edge | , | |||
| emu_edge_link | ||||
| ) |
1.6.1