libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
|
ethercat mailbox common access functions More...
#include <libosal/types.h>
#include <libosal/osal.h>
#include "libethercat/common.h"
#include "libethercat/pool.h"
#include "libethercat/datagram.h"
Go to the source code of this file.
Data Structures | |
struct | ec_mbx_header |
ethercat mailbox header More... | |
struct | ec_mbx_buffer |
ethercat mailbox data More... | |
struct | ec_mbx |
Macros | |
#define | MAILBOX_WRITE (osal_uint16_t)(0u) |
Write mailbox number. | |
#define | MAILBOX_READ (osal_uint16_t)(1u) |
Read mailbox number. | |
#define | MESSAGE_POOL_DEBUG(type) {} |
#define | ec_mbx_get_free_recv_buffer(pec, slave, entry, timeout, lock) pool_get(&(pec)->mbx_message_pool_recv_free, &(entry), (timeout)) |
#define | ec_mbx_get_free_send_buffer_old(pec, slave, entry, timeout, lock) pool_get(&(pec)->mbx_message_pool_send_free, &(entry), (timeout)) |
#define | ec_mbx_return_free_send_buffer(pec, slave, entry) pool_put(&(pec)->mbx_message_pool_send_free, (entry)) |
#define | ec_mbx_return_free_recv_buffer(pec, slave, entry) pool_put(&(pec)->mbx_message_pool_recv_free, (entry)) |
Typedefs | |
typedef struct ec | ec_t |
typedef struct PACKED ec_mbx_header | ec_mbx_header_t |
ethercat mailbox header | |
typedef struct PACKED ec_mbx_buffer | ec_mbx_buffer_t |
ethercat mailbox data | |
typedef struct ec_mbx | ec_mbx_t |
Enumerations | |
enum | { EC_MBX_ERR = 0x00 , EC_MBX_AOE , EC_MBX_EOE , EC_MBX_COE , EC_MBX_FOE , EC_MBX_SOE , EC_MBX_VOE = 0x0f } |
mailbox types More... | |
Functions | |
void | ec_mbx_init (ec_t *pec, osal_uint16_t slave) |
Initialize mailbox structure. | |
void | ec_mbx_deinit (ec_t *pec, osal_uint16_t slave) |
Deinit mailbox structure. | |
void | ec_mbx_enqueue_head (ec_t *pec, osal_uint16_t slave, pool_entry_t *p_entry) |
Enqueue mailbox message to send queue. | |
void | ec_mbx_enqueue_tail (ec_t *pec, osal_uint16_t slave, pool_entry_t *p_entry) |
Enqueue mailbox message to send queue. | |
void | ec_mbx_sched_read (ec_t *pec, osal_uint16_t slave) |
Trigger read of mailbox. | |
int | ec_mbx_check (ec_t *pec, int slave, osal_uint16_t mbx_flag) |
Checks if mailbox protocol is supported by slave. | |
int | ec_mbx_next_counter (ec_t *pec, int slave, int *seq_counter) |
Get next sequence counter. | |
int | ec_mbx_get_free_send_buffer (ec_t *pec, osal_uint16_t slave, pool_entry_t **pp_entry, osal_timer_t *timeout) |
Get free mailbox send buffer from slaves send message pool. | |
ethercat mailbox common access functions