1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106
|
# SPDX-FileCopyrightText: 2022 Stefano Babic <stefano.babic@swupdate.org>
#
# SPDX-License-Identifier: GPL-2.0-only
digraph G {
ratio="fill";
size="8.3,11.7!";
node [fontname = "Handlee"];
edge [fontname = "Handlee"];
start [
label = "System start";
shape = rect;
style=filled;
fillcolor=blue;
];
inccounter [
label = "bootcounter++";
shape = rect;
];
bootcounter [
label = "bootcounter < bootlimit ?";
shape = diamond;
];
ustate [
label = "ustate == 1 ?";
shape = diamond;
];
failed [
label = "ustate = 3 (FAILED)";
shape = rect;
];
toggle [
label = "toggle devices";
shape = rect;
];
normal [
label = "normal boot";
shape = rect;
];
success [
label = "Success ?";
shape = diamond;
];
reset [
label = "System reset";
shape = rect;
];
rescue [
label = "Rescue System (ramdisk)";
shape = rect;
style=filled;
fillcolor=red;
];
running [
label = "OS running";
shape = rect;
];
running [
label = "OS running";
shape = rect;
];
notworking [
label = "Panic ?\nWatchdog ?\nApp not functional ?";
shape = diamond;
];
final [
label = "ustate = 0, bootcounter = 0";
shape = rect;
];
operational [
label = "OPERATIONAL";
shape = oval;
style=filled;
fillcolor=green;
];
start -> inccounter;
inccounter -> bootcounter;
bootcounter -> ustate [ label = "No" ];
bootcounter -> normal [ label = "Yes" ];
ustate:s -> failed [ label = "Yes" ];
failed -> toggle;
toggle -> normal;
normal -> success;
success -> reset [ label = "No" ];
success -> running [ label = "Yes" ];
reset -> start;
running -> notworking;
ustate:w -> rescue [ label = "No" ];
{
rank=same;
rescue;
}
notworking -> final [ label = "No" ];
notworking:e -> reset [ label = "Yes"];
final -> operational;
}
|