summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/dataflow.h26
-rw-r--r--include/handshake.h6
-rw-r--r--makefile1
-rw-r--r--src/master_posix.c8
4 files changed, 36 insertions, 5 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 */
diff --git a/makefile b/makefile
index 438cf36..d08ab8d 100644
--- a/makefile
+++ b/makefile
@@ -35,6 +35,7 @@ src/handshake.pb.c \
src/data.pb.c \
src/master_posix.c \
src/handshake.c \
+src/dataflow.c
# set the main C source based on whether we're compiling the master or slave
diff --git a/src/master_posix.c b/src/master_posix.c
index 74cb38a..ac5ff55 100644
--- a/src/master_posix.c
+++ b/src/master_posix.c
@@ -55,10 +55,14 @@
#define BUS_DEVICE_LIMIT 2
-hs_func_t hs_jumptable[NUM_STATES] = {
+hs_func_t hs_jumptable[NUM_HS_STATES] = {
HS_STATE_TABLE(EXPAND_AS_JUMPTABLE)
};
+/* df_func_t df_jumptable[NUM_HS_STATES] = { */
+/* DF_STATE_TABLE(EXPAND_AS_JUMPTABLE) */
+/* }; */
+
device_info_t *device_info[BUS_DEVICE_LIMIT] = {NULL};
subscription_info_t* subs_info[BUS_DEVICE_LIMIT];
uint32_t allocated[4]={0};
@@ -219,7 +223,7 @@ static void *routing_func(void *pvArgs)
dataflow_status_t device_dataflow(uint8_t i2c_addr, uint32_t SOR_code, volatile uint8_t rbuf_idx)
{
- uint8_t dev_idx = GET_IDX_FROM_ADDR(i2c_addr);
+ uint8_t dev_idx = GET_IDX_FROM_ADDR(i2c_addr);
dataflow_status_t df_status = DF_IDLE;
uint8_t CTS_buf[2] = {0x2, 0xFF};