# HG changeset patch # User Florian Pose # Date 1245325213 0 # Node ID 0b19ac5acad23f8442faecefe5f414cf8ffc646b # Parent 76a463df511b4fe0b6d5eb850664d08a275c0c80 Redesign of EoE statemachine. diff -r 76a463df511b -r 0b19ac5acad2 documentation/graphs/Makefile --- a/documentation/graphs/Makefile Tue Jun 16 08:36:15 2009 +0000 +++ b/documentation/graphs/Makefile Thu Jun 18 11:40:13 2009 +0000 @@ -6,6 +6,7 @@ GRAPHS := \ fsm_change \ + fsm_eoe \ fsm_master \ fsm_pdo_conf \ fsm_pdo_entry_conf \ diff -r 76a463df511b -r 0b19ac5acad2 documentation/graphs/fsm_eoe.dot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/documentation/graphs/fsm_eoe.dot Thu Jun 18 11:40:13 2009 +0000 @@ -0,0 +1,70 @@ + +/* $Id$ */ + +digraph sii { + node [fontname="Helvetica"] + edge [fontname="Helvetica",fontsize=12] + + start [shape=point] + start -> query + + query [label="Query all Mailboxes"] + query -> check_read + + check_read [shape=diamond,label="Frames to read?"] + check_read -> unset_idle_read [label="yes"] + check_read -> check_idle_read [label="no"] + + unset_idle_read [label="Reset idle flag"] + unset_idle_read -> read + + read [label="Read next segment"] + read -> check_read_finished + + check_read_finished [shape=diamond,label="Frame complete?"] + check_read_finished -> read [label="no"] + check_read_finished -> check_write [label="yes"] + + check_idle_read [shape=diamond,label="Idle flag set?"] + check_idle_read -> set_idle_read [label="no"] + check_idle_read -> sleep_read [label="yes"] + + set_idle_read [label="Set idle flag"] + set_idle_read -> check_write + + sleep_read [label="Sleep"] + sleep_read -> check_write + + check_write [shape=diamond,label="Frames to write?"] + check_write -> unset_idle_write [label="yes"] + check_write -> check_idle_write [label="no"] + + unset_idle_write [label="Reset idle flag"] + unset_idle_write -> write + + write [label="Write next segment"] + write -> check_write_finished + + check_write_finished [shape=diamond,label="Frame complete?"] + check_write_finished -> check_read_remaining [label="yes"] + check_write_finished -> write [label="no"] + + check_read_remaining [shape=diamond,label="Remaining segments to read?"] + check_read_remaining -> query [label="no"] + check_read_remaining -> read [label="yes"] + + check_idle_write [shape=diamond,label="Idle flag set?"] + check_idle_write -> set_idle_write [label="no"] + check_idle_write -> sleep_write [label="yes"] + + set_idle_write [label="Set idle flag"] + set_idle_write -> check_read_remaining + + sleep_write [label="Sleep"] + sleep_write -> query + + /*{rank=same; check_read; check_idle_read} + {rank=same; unset_idle_read; set_idle_read; sleep_read} + {rank=same; check_write; check_idle_write} + {rank=same; unset_idle_write; set_idle_write; sleep_write}*/ +}