src.dualinventive.com/dinet/sec-multi-proxy/libdi/doc/images/di_can_msg_state.gv

41 lines
2.2 KiB
Plaintext

digraph di_can_msg_states {
fontname="Helvetica";
init [shape = point ];
gc [shape = house label = "Garbage collect" ];
gc_exec [shape = rectangle, label = <<b>Execute</b><br/>di_can_msg_gc()> ];
reassm [shape = rectangle, label = <<b>Reassemble</b><br/>di_can_reassemble()> ];
crc [shape = rectangle, label = <<b>CRC</b><br/>di_can_crc_check()> ];
free [shape = rectangle, label = <<b>Free</b><br/>di_can_msg_free(<br/>struct di_can_msg **msg)> ];
send [shape = rectangle, label = <<b>Send</b><br/>di_can_send(<br/>struct di_can_msg **msg)> ];
send_async [shape = rectangle, label = <<b>Async send</b><br/>di_can_send_async(<br/>struct di_can_msg **msg)> ];
send_async_next [shape = house, label = <<b>Execute async send</b><br/>di_can_send_async_next(void)> ];
reset [shape = rectangle, label = <<b>Reset</b><br/>_di_can_msg_reset(<br/>struct di_can_msg *msg)> ];
init -> reset;
UNUSED -> APPLICATION [ label = <<b>Allocate</b><br/>di_can_msg_alloc()> ];
UNUSED -> reassm;
reassm -> REASSEMBLE [ label = <<b>Get (internal)</b><br/>di_can_msg_search()<br/>di_can_msg_get()> ];
REASSEMBLE -> crc;
READY -> APPLICATION [ label = <<b>Get ready</b><br/>di_can_msg_get_ready(<br/>enum di_can_msgtype type)> ];
APPLICATION -> free;
APPLICATION -> send;
APPLICATION -> send_async;
REASSEMBLE -> gc [ label = <<b>Timeout</b><br/>msg-&gt;timeout &gt;=<br/>di_time_get_uptime()> ];
READY -> gc [ label = <<b>Timeout</b><br/>msg-&gt;timeout &gt;=<br/>di_time_get_uptime()> ];
DIRTY -> gc;
crc -> free;
crc -> READY [ label = <<b>Set ready (internal)</b><br/>di_can_msg_set_ready(<br/>struct di_can_msg **msg)> ];
send -> free;
send -> ERROR;
send_async -> SEND;
SEND -> send_async_next;
send_async_next -> free;
send_async_next -> ERROR;
ERROR -> APPLICATION;
free -> DIRTY;
gc -> reset;
gc -> gc_exec [ dir=back ];
reset -> UNUSED;
}