summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAditya Naik2020-08-10 12:55:36 -0400
committerAditya Naik2020-08-10 12:55:36 -0400
commita3120f845c6e2f4cfb7a12810881024a802fc7f4 (patch)
treef6a6597f68a308ffc5343c6c1f52b165dcdd4327 /include
parent77d909de362508ee81868d424a4f15fbb24cb6c1 (diff)
Dataflow state machine work
Diffstat (limited to 'include')
-rw-r--r--include/dataflow.h26
-rw-r--r--include/handshake.h6
2 files changed, 29 insertions, 3 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);
diff --git a/include/handshake.h b/include/handshake.h
index a777abb..8ac34ab 100644
--- a/include/handshake.h
+++ b/include/handshake.h
@@ -6,7 +6,7 @@
#define EXPAND_AS_ENUM(a, b) a,
#define EXPAND_AS_JUMPTABLE(a, b) b,
-#define EXPAND_AS_PROTOTYPES(a, b) hs_status_t b(p_stream_t, void**);
+#define EXPAND_HS_PROTOTYPES(a, b) hs_status_t b(p_stream_t, void**);
typedef hs_status_t (*hs_func_t)(p_stream_t, void**);
@@ -18,11 +18,11 @@ typedef hs_status_t (*hs_func_t)(p_stream_t, void**);
enum {
HS_STATE_TABLE(EXPAND_AS_ENUM)
- NUM_STATES,
+ NUM_HS_STATES,
HS_STATE_FAIL,
HS_STATE_SUCCESS,
};
-HS_STATE_TABLE(EXPAND_AS_PROTOTYPES);
+HS_STATE_TABLE(EXPAND_HS_PROTOTYPES);
#endif /* __HANDSHAKE_H */