| digraph state_automaton { | |
| center = true; | |
| size = "7,11"; | |
| {node [shape = plaintext, style=invis, label=""] "__init_can_sched"}; | |
| {node [shape = doublecircle] "can_sched"}; | |
| {node [shape = circle] "can_sched"}; | |
| {node [shape = circle] "cant_sched"}; | |
| {node [shape = circle] "disable_to_switch"}; | |
| {node [shape = circle] "enable_to_exit"}; | |
| {node [shape = circle] "in_irq"}; | |
| {node [shape = circle] "scheduling"}; | |
| {node [shape = circle] "switching"}; | |
| "__init_can_sched" -> "can_sched"; | |
| "can_sched" [label = "can_sched", color = green3]; | |
| "can_sched" -> "cant_sched" [ label = "irq_disable" ]; | |
| "can_sched" -> "scheduling" [ label = "schedule_entry" ]; | |
| "cant_sched" [label = "cant_sched"]; | |
| "cant_sched" -> "can_sched" [ label = "irq_enable" ]; | |
| "cant_sched" -> "cant_sched" [ label = "irq_entry" ]; | |
| "disable_to_switch" [label = "disable_to_switch"]; | |
| "disable_to_switch" -> "enable_to_exit" [ label = "irq_enable" ]; | |
| "disable_to_switch" -> "in_irq" [ label = "irq_entry" ]; | |
| "disable_to_switch" -> "switching" [ label = "sched_switch" ]; | |
| "enable_to_exit" [label = "enable_to_exit"]; | |
| "enable_to_exit" -> "can_sched" [ label = "schedule_exit" ]; | |
| "enable_to_exit" -> "enable_to_exit" [ label = "irq_disable\nirq_entry\nirq_enable" ]; | |
| "in_irq" [label = "in_irq"]; | |
| "in_irq" -> "in_irq" [ label = "irq_entry" ]; | |
| "in_irq" -> "scheduling" [ label = "irq_enable" ]; | |
| "scheduling" [label = "scheduling"]; | |
| "scheduling" -> "disable_to_switch" [ label = "irq_disable" ]; | |
| "switching" [label = "switching"]; | |
| "switching" -> "enable_to_exit" [ label = "irq_enable" ]; | |
| { rank = min ; | |
| "__init_can_sched"; | |
| "can_sched"; | |
| } | |
| } |