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_async_message_id_t;
60typedef osal_uint32_t ec_async_message_payload_t;
64 ec_async_message_id_t
id;
78typedef struct ec_message_pool_queue ec_message_pool_queue_t;
86#define EC_ASYNC_MESSAGE_LOOP_COUNT 100
97 osal_timer_t next_check_group;
ethercat master common stuff
Definition async_loop.h:87
struct ec * pec
ethercat master pointer
Definition async_loop.h:95
ec_message_pool_t avail
empty messages
Definition async_loop.h:90
osal_task_t loop_tid
loop thread id
Definition async_loop.h:94
int loop_running
loop thread run flag
Definition async_loop.h:93
ec_message_pool_t exec
execute messages
Definition async_loop.h:91
Message queue qentry.
Definition async_loop.h:70
ec_message_t msg
message itself
Definition async_loop.h:74
TAILQ_ENTRY(ec_message_entry) qh
handle to message entry queue
Definition async_loop.h:80
ec_message_pool_queue_t queue
message pool queue
Definition async_loop.h:81
osal_mutex_t lock
pool lock
Definition async_loop.h:83
osal_semaphore_t avail_cnt
available messages in pool queue
Definition async_loop.h:82
Message for asynchronous loop.
Definition async_loop.h:63
ec_async_message_payload_t payload
payload
Definition async_loop.h:65
ec_async_message_id_t id
index
Definition async_loop.h:64
ethercat master structure
Definition ec.h:188