| digraph T { |
| /* Make sure our payloads are always drawn below the driver node */ |
| subgraph cluster_driver { |
| fillcolor = grey; |
| style = filled; |
| edge [dir=none]; |
| driver -> payload1; |
| driver -> payload2 [penwidth=3]; |
| edge [dir=""]; |
| } |
| |
| /* Driver malloc references */ |
| edge [style=dashed]; |
| driver -> port1; |
| driver -> port2; |
| driver -> port3:e; |
| driver -> port4 [color=grey]; |
| payload1:s -> port1:e; |
| payload2:s -> port3:e [penwidth=3]; |
| edge [style=""]; |
| |
| subgraph cluster_topology { |
| label="Topology Manager"; |
| labelloc=bottom; |
| |
| /* Topology references */ |
| mstb1 -> {port1, port2}; |
| port1 -> mstb2; |
| edge [color=grey]; |
| port2 -> mstb3 -> {port3, port4}; |
| port3 -> mstb4; |
| edge [color=""]; |
| |
| /* Malloc references */ |
| edge [style=dashed;dir=back]; |
| mstb1 -> {port1, port2}; |
| port1 -> mstb2; |
| port2 -> mstb3 [penwidth=3]; |
| mstb3 -> port3 [penwidth=3]; |
| edge [color=grey]; |
| mstb3 -> port4; |
| port3 -> mstb4; |
| } |
| |
| mstb1 [label="MSTB #1";style=filled;fillcolor=palegreen]; |
| mstb2 [label="MSTB #2";style=filled;fillcolor=palegreen]; |
| mstb3 [label="MSTB #3";style=filled;fillcolor=palegreen;penwidth=3]; |
| mstb4 [label="MSTB #4";style=filled;fillcolor=grey]; |
| |
| port1 [label="Port #1"]; |
| port2 [label="Port #2";penwidth=5]; |
| port3 [label="Port #3";penwidth=3]; |
| port4 [label="Port #4";style=filled;fillcolor=grey]; |
| |
| driver [label="DRM driver";style=filled;shape=box;fillcolor=lightblue]; |
| |
| payload1 [label="Payload #1";style=filled;shape=box;fillcolor=lightblue]; |
| payload2 [label="Payload #2";style=filled;shape=box;fillcolor=lightblue;penwidth=3]; |
| } |