40#ifndef LIBETHERCAT_MESSAGE_POOL_H
41#define LIBETHERCAT_MESSAGE_POOL_H
43#include <libosal/queue.h>
45#include <libosal/types.h>
46#include <libosal/mutex.h>
47#include <libosal/semaphore.h>
54typedef enum ec_async_message_id {
58 EC_MSG_CHECK_DCSOFFSET
59} ec_async_message_id_t;
61typedef osal_uint32_t ec_async_message_payload_t;
65 ec_async_message_id_t
id;
79typedef struct ec_message_pool_queue ec_message_pool_queue_t;
87#define EC_ASYNC_MESSAGE_LOOP_COUNT 100
98 osal_timer_t next_check_group;
141void ec_async_check_dcsoffset(
ec_async_loop_t *paml, osal_int32_t correction_value);
ethercat master common stuff
Definition async_loop.h:88
struct ec * pec
ethercat master pointer
Definition async_loop.h:96
ec_message_pool_t avail
empty messages
Definition async_loop.h:91
osal_task_t loop_tid
loop thread id
Definition async_loop.h:95
int loop_running
loop thread run flag
Definition async_loop.h:94
ec_message_pool_t exec
execute messages
Definition async_loop.h:92
Message queue qentry.
Definition async_loop.h:71
ec_message_t msg
message itself
Definition async_loop.h:75
TAILQ_ENTRY(ec_message_entry) qh
handle to message entry queue
Definition async_loop.h:81
ec_message_pool_queue_t queue
message pool queue
Definition async_loop.h:82
osal_mutex_t lock
pool lock
Definition async_loop.h:84
osal_semaphore_t avail_cnt
available messages in pool queue
Definition async_loop.h:83
Message for asynchronous loop.
Definition async_loop.h:64
ec_async_message_payload_t payload
payload
Definition async_loop.h:66
ec_async_message_id_t id
index
Definition async_loop.h:65
ethercat master structure
Definition ec.h:192