diff options
| author | Aditya Naik | 2020-08-10 12:55:36 -0400 |
|---|---|---|
| committer | Aditya Naik | 2020-08-10 12:55:36 -0400 |
| commit | a3120f845c6e2f4cfb7a12810881024a802fc7f4 (patch) | |
| tree | f6a6597f68a308ffc5343c6c1f52b165dcdd4327 /include/dataflow.h | |
| parent | 77d909de362508ee81868d424a4f15fbb24cb6c1 (diff) | |
Dataflow state machine work
Diffstat (limited to 'include/dataflow.h')
| -rw-r--r-- | include/dataflow.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/include/dataflow.h b/include/dataflow.h index 2aed40a..665c92d 100644 --- a/include/dataflow.h +++ b/include/dataflow.h @@ -1,3 +1,4 @@ +#include "stream.h" /* * @@ -45,3 +46,28 @@ typedef enum DOC_codes { RESERVED = 0x4, DATA = 0x5 } DOC_codes_t; + + + +#define EXPAND_AS_ENUM(a, b) a, +#define EXPAND_AS_JUMPTABLE(a, b) b, +#define EXPAND_DF_PROTOTYPES(a, b) int b(p_stream_t, void**); + +#define DF_STATE_TABLE(ENTRY) \ + ENTRY(DF_IDLE, DF_func_idle) \ + ENTRY(DF_RX_DOC, DF_rx_doc) \ + ENTRY(DF_RX_DATA, DF_rx_data) \ + ENTRY(DF_RX_CMD, DF_rx_cmd) \ + ENTRY(DF_TX_DATA, DF_tx_data) \ + ENTRY(DF_TX_CMD, DF_tx_cmd) + +enum { + /* DF_STATE_TABLE(EXPAND_AS_ENUM) */ + /* NUM_DF_STATES, */ + DF_STATE_FAIL, + DF_STATE_SUCCESS +}; + +typedef int (*df_func_t)(p_stream_t, void**); + +DF_STATE_TABLE(EXPAND_DF_PROTOTYPES); |
