diff options
author | Uros Majstorovic <majstor@majstor.org> | 2020-08-05 03:38:22 +0200 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2020-08-05 03:38:22 +0200 |
commit | 5cd610a07468137066ea4daa5176c3e7045113b0 (patch) | |
tree | a6a5b572572f8f37ec2cb87332fa46e9bcc53aa7 /ecp/src/msgq.h | |
parent | 2473a7d5c51806ab8651cd3c4e07a15b62084eb5 (diff) |
ecp moved to root; fixed utils and tests
Diffstat (limited to 'ecp/src/msgq.h')
-rw-r--r-- | ecp/src/msgq.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/ecp/src/msgq.h b/ecp/src/msgq.h new file mode 100644 index 0000000..a81ff36 --- /dev/null +++ b/ecp/src/msgq.h @@ -0,0 +1,23 @@ +#ifdef ECP_WITH_MSGQ + +#define ECP_MSGQ_MAX_MSG 32 +#define ECP_MSGQ_ERR_MAX_MSG -110 + +typedef struct ECPConnMsgQ { + unsigned short idx_w[ECP_MAX_MTYPE]; + unsigned short idx_r[ECP_MAX_MTYPE]; + ecp_seq_t seq_start; + ecp_seq_t seq_max; + ecp_seq_t seq_msg[ECP_MAX_MTYPE][ECP_MSGQ_MAX_MSG]; + pthread_cond_t cond[ECP_MAX_MTYPE]; + pthread_mutex_t mutex; +} ECPConnMsgQ; + +int ecp_conn_msgq_create(ECPConnMsgQ *msgq); +void ecp_conn_msgq_destroy(ECPConnMsgQ *msgq); +int ecp_conn_msgq_start(ECPConnMsgQ *msgq, ecp_seq_t seq); + +int ecp_conn_msgq_push(struct ECPConnection *conn, ecp_seq_t seq, unsigned char mtype); +ssize_t ecp_conn_msgq_pop(struct ECPConnection *conn, unsigned char mtype, unsigned char *msg, size_t msg_size, ecp_cts_t timeout); + +#endif /* ECP_WITH_MSGQ */
\ No newline at end of file |