diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ca34548..651d0f7 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -11,6 +11,7 @@ ADD_EXECUTABLE(it2s-itss-facilities tpm.c vcm.c evm.c + edm.c ) TARGET_LINK_LIBRARIES(it2s-itss-facilities diff --git a/src/edm.c b/src/edm.c new file mode 100644 index 0000000..285faf5 --- /dev/null +++ b/src/edm.c @@ -0,0 +1,9 @@ +#include "edm.h" + +int edm_encap(void* its_msg, int its_msg_type) { + return 0; +} + +int edm_decap(uint8_t* data, uint16_t data_len) { + return 0; +} diff --git a/src/edm.h b/src/edm.h new file mode 100644 index 0000000..09f1742 --- /dev/null +++ b/src/edm.h @@ -0,0 +1,47 @@ +#pragma once + +#include + +#define EDM_VE_MAX_MSGS 16 +#define EDM_MAX_VES 16 + +typedef enum VE_MSG_TYPE { + iid, + hash +} VE_MSG_TYPE_e; + +/* + * event message + */ +typedef struct ve_msg { + VE_MSG_TYPE_e present; + union { + uint32_t iid; + uint8_t hash[32]; + } choice; +} ve_msg_t; + +/* + * event + */ +typedef struct ve { + uint32_t id; + + uint64_t t_init; + uint64_t t_la; + + ve_msg_t* ve_msgs[EDM_VE_MAX_MSGS]; + uint8_t ve_msgs_len; +} ve_t; + +/* + * event data manager + */ +typedef struct edm { + ve_t* ves[EDM_MAX_VES]; + uint8_t ves_len; +} edm_t; + + +int edm_encap(void* its_msg, int its_msg_type); +int edm_decap(uint8_t* data, uint16_t data_len);