diff options
| author | Aditya Naik | 2020-08-07 14:47:02 -0400 |
|---|---|---|
| committer | Aditya Naik | 2020-08-07 14:47:02 -0400 |
| commit | aef91bb9db4d09c8cc30400d69a6a11f5999d618 (patch) | |
| tree | 58ee97fbc4eddaad9899de8cd7fad0ad7106e9e6 /include | |
| parent | cda9397f911dea0b57ffd3c041121885ab03b79c (diff) | |
Handshake state machine files, massive simplification in main
Diffstat (limited to 'include')
| -rw-r--r-- | include/devices.h | 5 | ||||
| -rw-r--r-- | include/handshake.h | 28 |
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 */ |
