I am a bit confused by this diagram: It feels to me that timers and timeout
have separate lives (even , if of course some dependency exist).
>From this diagram, it feels like these 2 separate objects (timers and time
out events) share states...? do they?
In my head, and from the understanding I had, it feels that the to 4 top
states are for timers, whereas time-out events have only 2 states:
Unallocated or allocated.
It feels you are doing 1 FSM out of two. Maybe , it should be two FSM
(keeping the same transition names to show the dependancy.)

And I guess there is a typo at "odp_timeout_freee().

Christophe

On 7 May 2016 at 18:15, Bill Fischofer <bill.fischo...@linaro.org> wrote:

> Signed-off-by: Bill Fischofer <bill.fischo...@linaro.org>
> ---
>  doc/images/.gitignore       |  1 +
>  doc/images/timer_fsm.gv     | 38 ++++++++++++++++++++++++++++++++++++++
>  doc/users-guide/Makefile.am |  1 +
>  3 files changed, 40 insertions(+)
>  create mode 100644 doc/images/timer_fsm.gv
>
> diff --git a/doc/images/.gitignore b/doc/images/.gitignore
> index a19aa75..72cf7ec 100644
> --- a/doc/images/.gitignore
> +++ b/doc/images/.gitignore
> @@ -1,2 +1,3 @@
>  resource_management.svg
>  pktio_fsm.svg
> +timer_fsm.svg
> diff --git a/doc/images/timer_fsm.gv b/doc/images/timer_fsm.gv
> new file mode 100644
> index 0000000..f8cb21a
> --- /dev/null
> +++ b/doc/images/timer_fsm.gv
> @@ -0,0 +1,38 @@
> +digraph timer_state_machine {
> +       rankdir=LR;
> +       size="12,20";
> +       node [fontsize=28];
> +       edge [fontsize=28];
> +       node [shape=doublecircle]; Timer_Unalloc
> +                                  Timeout_Unalloc
> +                                  Timeout_Delivered;
> +        node [shape=rectangle]; Timeout_Queued;
> +       node [shape=circle];
> +       Timer_Unalloc -> Timer_Alloc [label="odp_timer_alloc()"];
> +       Timer_Alloc -> Timer_Unalloc [label="odp_timer_free()"];
> +       Timer_Alloc -> Timer_Set [label="odp_timer_set_abs()"];
> +       Timer_Alloc -> Timer_Set [label="odp_timer_set_rel()"];
> +       Timer_Set -> Timer_Alloc [label="odp_timer_cancel()"];
> +       Timer_Set -> Timeout_Alloc
> +                       [label="odp_timer_cancel()" constraint=false];
> +       Timer_Set -> Timeout_Queued [label="=>odp_queue_enq()"];
> +       Timeout_Queued -> Timeout_Delivered [label="odp_schedule()"];
> +       Timeout_Unalloc -> Timeout_Alloc
> +                        [label="odp_timeout_alloc()" constraint=false];
> +       Timeout_Alloc -> Timeout_Unalloc
> +                        [label="odp_timeout_free()" constraint=false];
> +       Timeout_Alloc -> Timer_Set
> +                        [label="odp_timer_set_abs()" constraint=false];
> +       Timeout_Alloc -> Timer_Set
> +                        [label="odp_timer_set_rel()"];
> +       Timeout_Delivered -> Timer_Unalloc [label="odp_timer_free()"];
> +       Timeout_Delivered -> Timer_Set [label="odp_timer_set_abs()"];
> +       Timeout_Delivered -> Timer_Set [label="odp_timer_set_rel()"];
> +       Timeout_Delivered -> Timeout_Delivered
> +                         [label="odp_timeout_from_event()"];
> +       Timeout_Delivered -> Timeout_Delivered
> +                         [label="odp_timeout_timer()"];
> +       Timeout_Delivered -> Timeout_Unalloc
> +                         [label="odp_event_free() / odp_timeout_freee()"
> +                         constraint=false];
> +}
> diff --git a/doc/users-guide/Makefile.am b/doc/users-guide/Makefile.am
> index 74caa96..6bb0131 100644
> --- a/doc/users-guide/Makefile.am
> +++ b/doc/users-guide/Makefile.am
> @@ -30,6 +30,7 @@ IMAGES = $(top_srcdir)/doc/images/overview.svg \
>          $(top_srcdir)/doc/images/release_git.svg \
>          $(top_srcdir)/doc/images/segment.svg \
>          $(top_srcdir)/doc/images/simple_release_git.svg \
> +        $(top_srcdir)/doc/images/timer_fsm.svg \
>          $(top_srcdir)/doc/images/tm_hierarchy.svg \
>          $(top_srcdir)/doc/images/tm_node.svg
>
> --
> 2.5.0
>
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> https://lists.linaro.org/mailman/listinfo/lng-odp
>
_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to