libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
Loading...
Searching...
No Matches
mbx.h File Reference

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.
 

Detailed Description

ethercat mailbox common access functions

Author
Robert Burger rober.nosp@m.t.bu.nosp@m.rger@.nosp@m.dlr..nosp@m.de
Date
11 Nov 2016