summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAditya Naik2020-08-07 14:47:02 -0400
committerAditya Naik2020-08-07 14:47:02 -0400
commitaef91bb9db4d09c8cc30400d69a6a11f5999d618 (patch)
tree58ee97fbc4eddaad9899de8cd7fad0ad7106e9e6 /include
parentcda9397f911dea0b57ffd3c041121885ab03b79c (diff)
Handshake state machine files, massive simplification in main
Diffstat (limited to 'include')
-rw-r--r--include/devices.h5
-rw-r--r--include/handshake.h28
2 files changed, 33 insertions, 0 deletions
diff --git a/include/devices.h b/include/devices.h
index b2cb825..d96d2b8 100644
--- a/include/devices.h
+++ b/include/devices.h
@@ -1,6 +1,9 @@
#include "handshake.pb.h"
+#ifndef __DEVICES_H
+#define __DEVICES_H
+
#define _MDR s2m_MDR_response
typedef struct _device_info {
@@ -41,3 +44,5 @@ typedef enum state {
/* Handshake message size definitions */
#define MDR_req_buf_len 2
+
+#endif /* __DEVICES_H */
diff --git a/include/handshake.h b/include/handshake.h
new file mode 100644
index 0000000..a777abb
--- /dev/null
+++ b/include/handshake.h
@@ -0,0 +1,28 @@
+#include "devices.h"
+#include "stream.h"
+
+#ifndef __HANDSHAKE_H
+#define __HANDSHAKE_H
+
+#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**);
+
+typedef hs_status_t (*hs_func_t)(p_stream_t, void**);
+
+#define HS_STATE_TABLE(ENTRY) \
+ ENTRY(HS_STATE_0, HS_func_0) \
+ ENTRY(HS_STATE_1, HS_func_1) \
+ ENTRY(HS_STATE_2, HS_func_2) \
+ ENTRY(HS_STATE_3, HS_func_3) \
+
+enum {
+ HS_STATE_TABLE(EXPAND_AS_ENUM)
+ NUM_STATES,
+ HS_STATE_FAIL,
+ HS_STATE_SUCCESS,
+};
+
+HS_STATE_TABLE(EXPAND_AS_PROTOTYPES);
+
+#endif /* __HANDSHAKE_H */