diff --git a/docs/sledge-states/Makefile b/docs/sledge-states/Makefile new file mode 100644 index 0000000..dcba62a --- /dev/null +++ b/docs/sledge-states/Makefile @@ -0,0 +1,15 @@ +# The double dollar is needed to prevent expansion of $2 in the awk program +OS := $(shell awk -F= '/^NAME/{print $$2}' /etc/os-release) + +.PHONY: graphviz +graphviz.install: + echo ${OS} +ifeq (${OS},"Ubuntu") + sudo apt install graphviz +endif + +states.svg: states.dot + dot -Tsvg states.dot > states.svg + +clean: + rm -f states.svg diff --git a/docs/sledge-states/README.md b/docs/sledge-states/README.md new file mode 100644 index 0000000..0d0adbb --- /dev/null +++ b/docs/sledge-states/README.md @@ -0,0 +1 @@ +This is a state transition diagram of a sandbox. This maps to the state transition functions defined in `runtime/include/sandbox_set_as_*.h` diff --git a/docs/sledge-states/states.dot b/docs/sledge-states/states.dot new file mode 100644 index 0000000..9db8bd4 --- /dev/null +++ b/docs/sledge-states/states.dot @@ -0,0 +1,8 @@ +digraph { + Uninitialized -> Initialized + Initialized -> {Runnable Error} + Runnable -> Running + Running -> {Blocked Runnable Returned Error} + Returned -> Complete + Blocked -> Runnable +} \ No newline at end of file diff --git a/docs/sledge-states/states.svg b/docs/sledge-states/states.svg new file mode 100644 index 0000000..4251d86 --- /dev/null +++ b/docs/sledge-states/states.svg @@ -0,0 +1,121 @@ + + + + + + +%3 + + + +Uninitialized + +Uninitialized + + + +Initialized + +Initialized + + + +Uninitialized->Initialized + + + + + +Runnable + +Runnable + + + +Initialized->Runnable + + + + + +Error + +Error + + + +Initialized->Error + + + + + +Running + +Running + + + +Runnable->Running + + + + + +Running->Runnable + + + + + +Running->Error + + + + + +Blocked + +Blocked + + + +Running->Blocked + + + + + +Returned + +Returned + + + +Running->Returned + + + + + +Blocked->Runnable + + + + + +Complete + +Complete + + + +Returned->Complete + + + + +