diff options
| -rw-r--r-- | include/dataflow.h | 26 | ||||
| -rw-r--r-- | include/handshake.h | 6 | ||||
| -rw-r--r-- | makefile | 1 | ||||
| -rw-r--r-- | src/master_posix.c | 8 |
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 */ @@ -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}; |
