mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-09-21 17:44:04 +08:00
Updated Doxygen documentation.
This commit is contained in:
+652
-154
File diff suppressed because it is too large
Load Diff
+9
-3
@@ -175,15 +175,15 @@
|
||||
*/
|
||||
#define EC_HAVE_REG_ACCESS
|
||||
|
||||
/* Defined if the method ecrt_master_select_reference_clock() is available.
|
||||
/** Defined if the method ecrt_master_select_reference_clock() is available.
|
||||
*/
|
||||
#define EC_HAVE_SELECT_REF_CLOCK
|
||||
|
||||
/* Defined if the method ecrt_master_reference_clock_time() is available.
|
||||
/** Defined if the method ecrt_master_reference_clock_time() is available.
|
||||
*/
|
||||
#define EC_HAVE_REF_CLOCK_TIME
|
||||
|
||||
/* Defined if the method ecrt_slave_config_reg_pdo_entry_pos() is available.
|
||||
/** Defined if the method ecrt_slave_config_reg_pdo_entry_pos() is available.
|
||||
*/
|
||||
#define EC_HAVE_REG_BY_POS
|
||||
|
||||
@@ -1449,6 +1449,8 @@ int ecrt_slave_config_emerg_overruns(
|
||||
*
|
||||
* The created SDO request object is freed automatically when the master is
|
||||
* released.
|
||||
*
|
||||
* \return New SDO request, or NULL on error.
|
||||
*/
|
||||
ec_sdo_request_t *ecrt_slave_config_create_sdo_request(
|
||||
ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
@@ -1466,6 +1468,8 @@ ec_sdo_request_t *ecrt_slave_config_create_sdo_request(
|
||||
*
|
||||
* The created VoE handler object is freed automatically when the master is
|
||||
* released.
|
||||
*
|
||||
* \return New VoE handler, or NULL on error.
|
||||
*/
|
||||
ec_voe_handler_t *ecrt_slave_config_create_voe_handler(
|
||||
ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
@@ -1480,6 +1484,8 @@ ec_voe_handler_t *ecrt_slave_config_create_voe_handler(
|
||||
*
|
||||
* The created register request object is freed automatically when the master
|
||||
* is released.
|
||||
*
|
||||
* \return New register request, or NULL on error.
|
||||
*/
|
||||
ec_reg_request_t *ecrt_slave_config_create_reg_request(
|
||||
ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
|
||||
+8
-2
@@ -222,6 +222,8 @@ long eccdev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
|
||||
*
|
||||
* The actual mapping will be done in the eccdev_vma_nopage() callback of the
|
||||
* virtual memory area.
|
||||
*
|
||||
* \return Always zero (success).
|
||||
*/
|
||||
int eccdev_mmap(
|
||||
struct file *filp,
|
||||
@@ -247,6 +249,8 @@ int eccdev_mmap(
|
||||
*
|
||||
* Called at the first access on a virtual-memory area retrieved with
|
||||
* ecdev_mmap().
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
static int eccdev_vma_fault(
|
||||
struct vm_area_struct *vma, /**< Virtual memory area. */
|
||||
@@ -257,12 +261,14 @@ static int eccdev_vma_fault(
|
||||
ec_cdev_priv_t *priv = (ec_cdev_priv_t *) vma->vm_private_data;
|
||||
struct page *page;
|
||||
|
||||
if (offset >= priv->ctx.process_data_size)
|
||||
if (offset >= priv->ctx.process_data_size) {
|
||||
return VM_FAULT_SIGBUS;
|
||||
}
|
||||
|
||||
page = vmalloc_to_page(priv->ctx.process_data + offset);
|
||||
if (!page)
|
||||
if (!page) {
|
||||
return VM_FAULT_SIGBUS;
|
||||
}
|
||||
|
||||
get_page(page);
|
||||
vmf->page = page;
|
||||
|
||||
+11
-4
@@ -29,10 +29,9 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/**
|
||||
\file
|
||||
EtherCAT CoE emergency ring buffer methods.
|
||||
*/
|
||||
/** \file
|
||||
* EtherCAT CoE emergency ring buffer methods.
|
||||
*/
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -73,6 +72,8 @@ void ec_coe_emerg_ring_clear(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Set the ring size.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_coe_emerg_ring_size(
|
||||
ec_coe_emerg_ring_t *ring, /**< Emergency ring. */
|
||||
@@ -128,6 +129,8 @@ void ec_coe_emerg_ring_push(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Remove an emergency message from the ring.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_coe_emerg_ring_pop(
|
||||
ec_coe_emerg_ring_t *ring, /**< Emergency ring. */
|
||||
@@ -146,6 +149,8 @@ int ec_coe_emerg_ring_pop(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Clear the ring.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_coe_emerg_ring_clear_ring(
|
||||
ec_coe_emerg_ring_t *ring /**< Emergency ring. */
|
||||
@@ -159,6 +164,8 @@ int ec_coe_emerg_ring_clear_ring(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Read the number of overruns.
|
||||
*
|
||||
* \return Number of overruns.
|
||||
*/
|
||||
int ec_coe_emerg_ring_overruns(
|
||||
ec_coe_emerg_ring_t *ring /**< Emergency ring. */
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
/** EtherCAT CoE emergency message record.
|
||||
*/
|
||||
typedef struct {
|
||||
u8 data[EC_COE_EMERGENCY_MSG_SIZE];
|
||||
u8 data[EC_COE_EMERGENCY_MSG_SIZE]; /**< Message data. */
|
||||
} ec_coe_emerg_msg_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -54,12 +54,12 @@ typedef struct {
|
||||
typedef struct {
|
||||
ec_slave_config_t *sc; /**< Slave configuration owning the ring. */
|
||||
|
||||
ec_coe_emerg_msg_t *msgs;
|
||||
size_t size;
|
||||
ec_coe_emerg_msg_t *msgs; /**< Message ring. */
|
||||
size_t size; /**< Ring size. */
|
||||
|
||||
unsigned int read_index;
|
||||
unsigned int write_index;
|
||||
unsigned int overruns;
|
||||
unsigned int read_index; /**< Read index. */
|
||||
unsigned int write_index; /**< Write index. */
|
||||
unsigned int overruns; /**< Number of overruns since last reset. */
|
||||
} ec_coe_emerg_ring_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -636,6 +636,8 @@ void ec_datagram_output_stats(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Returns a string describing the datagram type.
|
||||
*
|
||||
* \return Pointer on a static memory containing the requested string.
|
||||
*/
|
||||
const char *ec_datagram_type_string(
|
||||
const ec_datagram_t *datagram /**< EtherCAT datagram. */
|
||||
|
||||
@@ -42,12 +42,14 @@
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Datagram pair constructor.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_datagram_pair_init(
|
||||
ec_datagram_pair_t *pair, /**< Datagram pair. */
|
||||
ec_domain_t *domain, /**< Parent domain. */
|
||||
uint32_t logical_offset,
|
||||
uint8_t *data,
|
||||
uint32_t logical_offset, /**< Logical offset. */
|
||||
uint8_t *data, /**< Data pointer. */
|
||||
size_t data_size, /**< Data size. */
|
||||
const unsigned int used[] /**< input/output use count. */
|
||||
)
|
||||
@@ -168,6 +170,8 @@ void ec_datagram_pair_clear(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Process received data.
|
||||
*
|
||||
* \return Working counter sum over all devices.
|
||||
*/
|
||||
uint16_t ec_datagram_pair_process(
|
||||
ec_datagram_pair_t *pair, /**< Datagram pair. */
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
*/
|
||||
typedef struct {
|
||||
struct list_head list; /**< List header. */
|
||||
ec_domain_t *domain;
|
||||
ec_domain_t *domain; /**< Parent domain. */
|
||||
ec_datagram_t datagrams[EC_MAX_NUM_DEVICES]; /**< Datagrams. */
|
||||
#if EC_MAX_NUM_DEVICES > 1
|
||||
uint8_t *send_buffer;
|
||||
|
||||
@@ -200,6 +200,8 @@ void ec_debug_send(
|
||||
*****************************************************************************/
|
||||
|
||||
/** Opens the virtual network device.
|
||||
*
|
||||
* \return Always zero (success).
|
||||
*/
|
||||
int ec_dbgdev_open(
|
||||
struct net_device *dev /**< debug net_device */
|
||||
@@ -215,6 +217,8 @@ int ec_dbgdev_open(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Stops the virtual network device.
|
||||
*
|
||||
* \return Always zero (success).
|
||||
*/
|
||||
int ec_dbgdev_stop(
|
||||
struct net_device *dev /**< debug net_device */
|
||||
@@ -230,6 +234,8 @@ int ec_dbgdev_stop(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Transmits data via the virtual network device.
|
||||
*
|
||||
* \return Always zero (success).
|
||||
*/
|
||||
int ec_dbgdev_tx(
|
||||
struct sk_buff *skb, /**< transmit socket buffer */
|
||||
@@ -246,6 +252,8 @@ int ec_dbgdev_tx(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Gets statistics about the virtual network device.
|
||||
*
|
||||
* \return Statistics.
|
||||
*/
|
||||
struct net_device_stats *ec_dbgdev_stats(
|
||||
struct net_device *dev /**< debug net_device */
|
||||
|
||||
@@ -698,6 +698,8 @@ void ecdev_set_link(
|
||||
/** Reads the link state.
|
||||
*
|
||||
* \ingroup DeviceInterface
|
||||
*
|
||||
* \return Link state.
|
||||
*/
|
||||
uint8_t ecdev_get_link(
|
||||
const ec_device_t *device /**< EtherCAT device */
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
#include "domain.h"
|
||||
#include "datagram_pair.h"
|
||||
|
||||
/** Extra debug output for redundancy functions.
|
||||
*/
|
||||
#define DEBUG_REDUNDANCY 0
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -187,6 +189,8 @@ int ec_domain_add_datagram_pair(
|
||||
*
|
||||
* Walks through the list of all FMMU configurations for the current datagram
|
||||
* and ends before the current datagram.
|
||||
*
|
||||
* \return Non-zero if slave connfig was already counted.
|
||||
*/
|
||||
int shall_count(
|
||||
const ec_fmmu_config_t *cur_fmmu, /**< Current FMMU with direction to
|
||||
@@ -340,6 +344,8 @@ unsigned int ec_domain_fmmu_count(const ec_domain_t *domain)
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Get a certain FMMU configuration via its position in the list.
|
||||
*
|
||||
* \return FMMU at position \a pos, or NULL.
|
||||
*/
|
||||
const ec_fmmu_config_t *ec_domain_find_fmmu(
|
||||
const ec_domain_t *domain, /**< EtherCAT domain. */
|
||||
|
||||
+14
-2
@@ -98,6 +98,8 @@ static const struct net_device_ops ec_eoedev_ops = {
|
||||
/** EoE constructor.
|
||||
*
|
||||
* Initializes the EoE handler, creates a net_device and registers it.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_eoe_init(
|
||||
ec_eoe_t *eoe, /**< EoE handler */
|
||||
@@ -246,6 +248,8 @@ void ec_eoe_flush(ec_eoe_t *eoe /**< EoE handler */)
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Sends a frame or the next fragment.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_eoe_send(ec_eoe_t *eoe /**< EoE handler */)
|
||||
{
|
||||
@@ -385,7 +389,7 @@ int ec_eoe_is_idle(const ec_eoe_t *eoe /**< EoE handler */)
|
||||
* Starts a new receiving sequence by queueing a datagram that checks the
|
||||
* slave's mailbox for a new EoE datagram.
|
||||
*
|
||||
* \fixme Use both devices.
|
||||
* \todo Use both devices.
|
||||
*/
|
||||
void ec_eoe_state_rx_start(ec_eoe_t *eoe /**< EoE handler */)
|
||||
{
|
||||
@@ -614,7 +618,7 @@ void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */)
|
||||
* Starts a new transmit sequence. If no data is available, a new receive
|
||||
* sequence is started instead.
|
||||
*
|
||||
* \fixme Use both devices.
|
||||
* \todo Use both devices.
|
||||
*/
|
||||
void ec_eoe_state_tx_start(ec_eoe_t *eoe /**< EoE handler */)
|
||||
{
|
||||
@@ -754,6 +758,8 @@ void ec_eoe_state_tx_sent(ec_eoe_t *eoe /**< EoE handler */)
|
||||
*****************************************************************************/
|
||||
|
||||
/** Opens the virtual network device.
|
||||
*
|
||||
* \return Always zero (success).
|
||||
*/
|
||||
int ec_eoedev_open(struct net_device *dev /**< EoE net_device */)
|
||||
{
|
||||
@@ -774,6 +780,8 @@ int ec_eoedev_open(struct net_device *dev /**< EoE net_device */)
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Stops the virtual network device.
|
||||
*
|
||||
* \return Always zero (success).
|
||||
*/
|
||||
int ec_eoedev_stop(struct net_device *dev /**< EoE net_device */)
|
||||
{
|
||||
@@ -794,6 +802,8 @@ int ec_eoedev_stop(struct net_device *dev /**< EoE net_device */)
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Transmits data via the virtual network device.
|
||||
*
|
||||
* \return Zero on success, non-zero on failure.
|
||||
*/
|
||||
int ec_eoedev_tx(struct sk_buff *skb, /**< transmit socket buffer */
|
||||
struct net_device *dev /**< EoE net_device */
|
||||
@@ -844,6 +854,8 @@ int ec_eoedev_tx(struct sk_buff *skb, /**< transmit socket buffer */
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Gets statistics about the virtual network device.
|
||||
*
|
||||
* \return Statistics.
|
||||
*/
|
||||
struct net_device_stats *ec_eoedev_stats(
|
||||
struct net_device *dev /**< EoE net_device */
|
||||
|
||||
@@ -103,7 +103,10 @@ void ec_foe_request_clear_data(
|
||||
|
||||
/** Pre-allocates the data memory.
|
||||
*
|
||||
* If the \a buffer_size is already bigger than \a size, nothing is done.
|
||||
* If the internal \a buffer_size is already bigger than \a size, nothing is
|
||||
* done.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_foe_request_alloc(
|
||||
ec_foe_request_t *req, /**< FoE request. */
|
||||
@@ -131,6 +134,8 @@ int ec_foe_request_alloc(
|
||||
/** Copies FoE data from an external source.
|
||||
*
|
||||
* If the \a buffer_size is to small, new memory is allocated.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_foe_request_copy_data(
|
||||
ec_foe_request_t *req, /**< FoE request. */
|
||||
|
||||
+22
-1
@@ -27,7 +27,8 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/** \file EtherCAT CoE state machines.
|
||||
/** \file
|
||||
* EtherCAT CoE state machines.
|
||||
*/
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -307,6 +308,10 @@ int ec_fsm_coe_check_emergency(
|
||||
* CoE dictionary state machine
|
||||
*****************************************************************************/
|
||||
|
||||
/** Prepare a dictionary request.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_fsm_coe_prepare_dict(
|
||||
ec_fsm_coe_t *fsm, /**< Finite state machine. */
|
||||
ec_datagram_t *datagram /**< Datagram to use. */
|
||||
@@ -455,6 +460,10 @@ void ec_fsm_coe_dict_check(
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prepare an object description request.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_fsm_coe_dict_prepare_desc(
|
||||
ec_fsm_coe_t *fsm, /**< Finite state machine. */
|
||||
ec_datagram_t *datagram /**< Datagram to use. */
|
||||
@@ -733,6 +742,10 @@ void ec_fsm_coe_dict_desc_check(
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prepare an entry description request.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_fsm_coe_dict_prepare_entry(
|
||||
ec_fsm_coe_t *fsm, /**< Finite state machine */
|
||||
ec_datagram_t *datagram /**< Datagram to use. */
|
||||
@@ -1172,6 +1185,10 @@ void ec_fsm_coe_dict_entry_response(
|
||||
* CoE state machine
|
||||
*****************************************************************************/
|
||||
|
||||
/** Prepare a donwnload request.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_fsm_coe_prepare_down_start(
|
||||
ec_fsm_coe_t *fsm, /**< Finite state machine. */
|
||||
ec_datagram_t *datagram /**< Datagram to use. */
|
||||
@@ -1814,6 +1831,10 @@ void ec_fsm_coe_down_seg_response(
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prepare an upload request.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_fsm_coe_prepare_up(
|
||||
ec_fsm_coe_t *fsm, /**< Finite state machine. */
|
||||
ec_datagram_t *datagram /**< Datagram to use. */
|
||||
|
||||
+9
-1
@@ -230,9 +230,11 @@ void ec_fsm_foe_end(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Sends a file or the next fragment.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_foe_prepare_data_send(
|
||||
ec_fsm_foe_t *fsm,
|
||||
ec_fsm_foe_t *fsm, /**< Finite state machine. */
|
||||
ec_datagram_t *datagram /**< Datagram to use. */
|
||||
)
|
||||
{
|
||||
@@ -270,6 +272,8 @@ int ec_foe_prepare_data_send(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prepare a write request (WRQ) with filename
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_foe_prepare_wrq_send(
|
||||
ec_fsm_foe_t *fsm, /**< Finite state machine. */
|
||||
@@ -545,6 +549,8 @@ void ec_fsm_foe_state_data_sent(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prepare a read request (RRQ) with filename
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_foe_prepare_rrq_send(
|
||||
ec_fsm_foe_t *fsm, /**< Finite state machine. */
|
||||
@@ -577,6 +583,8 @@ int ec_foe_prepare_rrq_send(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prepare to send an acknowledge.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_foe_prepare_send_ack(
|
||||
ec_fsm_foe_t *fsm, /**< FoE statemachine. */
|
||||
|
||||
@@ -959,6 +959,8 @@ void ec_fsm_master_enter_write_system_times(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Configure 32 bit time offset.
|
||||
*
|
||||
* \return New offset.
|
||||
*/
|
||||
u64 ec_fsm_master_dc_offset32(
|
||||
ec_fsm_master_t *fsm, /**< Master state machine. */
|
||||
@@ -999,6 +1001,8 @@ u64 ec_fsm_master_dc_offset32(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Configure 64 bit time offset.
|
||||
*
|
||||
* \return New offset.
|
||||
*/
|
||||
u64 ec_fsm_master_dc_offset64(
|
||||
ec_fsm_master_t *fsm, /**< Master state machine. */
|
||||
|
||||
+4
-1
@@ -27,7 +27,8 @@
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
/** \file EtherCAT PDO configuration state machine.
|
||||
/** \file
|
||||
* EtherCAT PDO configuration state machine.
|
||||
*/
|
||||
|
||||
/*****************************************************************************/
|
||||
@@ -396,6 +397,8 @@ void ec_fsm_pdo_conf_state_start(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Assign next PDO.
|
||||
*
|
||||
* \return Next PDO, or NULL.
|
||||
*/
|
||||
ec_pdo_t *ec_fsm_pdo_conf_action_next_pdo(
|
||||
const ec_fsm_pdo_t *fsm, /**< PDO configuration state machine. */
|
||||
|
||||
@@ -363,6 +363,8 @@ void ec_fsm_pdo_entry_conf_state_start(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Process next PDO entry.
|
||||
*
|
||||
* \return Next PDO entry, or NULL.
|
||||
*/
|
||||
ec_pdo_entry_t *ec_fsm_pdo_entry_conf_next_entry(
|
||||
const ec_fsm_pdo_entry_t *fsm, /**< PDO mapping state machine. */
|
||||
|
||||
@@ -158,6 +158,8 @@ void ec_fsm_slave_set_ready(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Returns, if the FSM is currently not busy and ready to execute.
|
||||
*
|
||||
* \return Non-zero if ready.
|
||||
*/
|
||||
int ec_fsm_slave_is_ready(
|
||||
const ec_fsm_slave_t *fsm /**< Slave state machine. */
|
||||
|
||||
+203
-15
File diff suppressed because it is too large
Load Diff
@@ -614,6 +614,8 @@ void ec_master_thread_stop(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Transition function from ORPHANED to IDLE phase.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_master_enter_idle_phase(
|
||||
ec_master_t *master /**< EtherCAT master */
|
||||
@@ -669,6 +671,8 @@ void ec_master_leave_idle_phase(ec_master_t *master /**< EtherCAT master */)
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Transition function from IDLE to OPERATION phase.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_master_enter_operation_phase(
|
||||
ec_master_t *master /**< EtherCAT master */
|
||||
@@ -897,6 +901,8 @@ void ec_master_set_send_interval(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Searches for a free datagram in the external datagram ring.
|
||||
*
|
||||
* \return Next free datagram, or NULL.
|
||||
*/
|
||||
ec_datagram_t *ec_master_get_external_datagram(
|
||||
ec_master_t *master /**< EtherCAT master */
|
||||
@@ -1779,6 +1785,8 @@ void ec_master_attach_slave_configs(
|
||||
} while (0)
|
||||
|
||||
/** Finds a slave in the bus, given the alias and position.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
ec_slave_t *ec_master_find_slave(
|
||||
ec_master_t *master, /**< EtherCAT master. */
|
||||
@@ -1793,6 +1801,8 @@ ec_slave_t *ec_master_find_slave(
|
||||
/** Finds a slave in the bus, given the alias and position.
|
||||
*
|
||||
* Const version.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
const ec_slave_t *ec_master_find_slave_const(
|
||||
const ec_master_t *master, /**< EtherCAT master. */
|
||||
@@ -2068,6 +2078,8 @@ void ec_master_find_dc_ref_clock(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Calculates the bus topology; recursion function.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_master_calc_topology_rec(
|
||||
ec_master_t *master, /**< EtherCAT master. */
|
||||
@@ -2199,6 +2211,8 @@ void ec_master_request_op(
|
||||
*****************************************************************************/
|
||||
|
||||
/** Same as ecrt_master_create_domain(), but with ERR_PTR() return value.
|
||||
*
|
||||
* \return New domain, or ERR_PTR() return value.
|
||||
*/
|
||||
ec_domain_t *ecrt_master_create_domain_err(
|
||||
ec_master_t *master /**< master */
|
||||
|
||||
@@ -103,6 +103,8 @@
|
||||
* where INDEX is the master index.
|
||||
*
|
||||
* \param master EtherCAT master
|
||||
* \param level Debug level. Master's debug level must be >= \a level for
|
||||
* output.
|
||||
* \param fmt format string (like in printf())
|
||||
* \param args arguments (optional)
|
||||
*/
|
||||
@@ -318,6 +320,8 @@ int ec_master_init(ec_master_t *, unsigned int, const uint8_t *,
|
||||
const uint8_t *, dev_t, struct class *, unsigned int);
|
||||
void ec_master_clear(ec_master_t *);
|
||||
|
||||
/** Number of Ethernet devices.
|
||||
*/
|
||||
#if EC_MAX_NUM_DEVICES > 1
|
||||
#define ec_master_num_devices(MASTER) ((MASTER)->num_devices)
|
||||
#else
|
||||
|
||||
@@ -388,6 +388,8 @@ void ec_print_data_diff(const uint8_t *d1, /**< first data */
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Prints slave states in clear text.
|
||||
*
|
||||
* \return Size of the created string.
|
||||
*/
|
||||
size_t ec_state_string(uint8_t states, /**< slave states */
|
||||
char *buffer, /**< target buffer
|
||||
@@ -522,6 +524,8 @@ ec_device_t *ecdev_offer(
|
||||
/** Request a master.
|
||||
*
|
||||
* Same as ecrt_request_master(), but with ERR_PTR() return value.
|
||||
*
|
||||
* \return Requested master.
|
||||
*/
|
||||
ec_master_t *ecrt_request_master_err(
|
||||
unsigned int master_index /**< Master index. */
|
||||
|
||||
@@ -273,6 +273,8 @@ unsigned int ec_pdo_entry_count(
|
||||
/** Finds a PDO entry via its position in the list.
|
||||
*
|
||||
* Const version.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
const ec_pdo_entry_t *ec_pdo_find_entry_by_pos_const(
|
||||
const ec_pdo_t *pdo, /**< PDO. */
|
||||
|
||||
@@ -237,6 +237,8 @@ int ec_pdo_list_equal(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Finds a PDO with the given index.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
ec_pdo_t *ec_pdo_list_find_pdo(
|
||||
const ec_pdo_list_t *pl, /**< PDO list. */
|
||||
@@ -257,6 +259,8 @@ ec_pdo_t *ec_pdo_list_find_pdo(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Finds a PDO with the given index and returns a const pointer.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
const ec_pdo_t *ec_pdo_list_find_pdo_const(
|
||||
const ec_pdo_list_t *pl, /**< PDO list. */
|
||||
@@ -279,6 +283,8 @@ const ec_pdo_t *ec_pdo_list_find_pdo_const(
|
||||
/** Finds a PDO via its position in the list.
|
||||
*
|
||||
* Const version.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
const ec_pdo_t *ec_pdo_list_find_pdo_by_pos_const(
|
||||
const ec_pdo_list_t *pl, /**< PDO list. */
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Register request constructor.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_reg_request_init(
|
||||
ec_reg_request_t *reg, /**< Register request. */
|
||||
|
||||
@@ -52,7 +52,7 @@ struct ec_reg_request {
|
||||
ec_direction_t dir; /**< Direction. EC_DIR_OUTPUT means writing to the
|
||||
slave, EC_DIR_INPUT means reading from the slave. */
|
||||
uint16_t address; /**< Register address. */
|
||||
size_t transfer_size; /*< Size of the data to transfer. */
|
||||
size_t transfer_size; /**< Size of the data to transfer. */
|
||||
ec_internal_request_state_t state; /**< Request state. */
|
||||
};
|
||||
|
||||
|
||||
+2
-2
@@ -45,8 +45,8 @@
|
||||
/** Context structure for an open RTDM file handle.
|
||||
*/
|
||||
typedef struct {
|
||||
rtdm_user_info_t *user_info;
|
||||
ec_ioctl_context_t ioctl_ctx;
|
||||
rtdm_user_info_t *user_info; /**< RTDM user info. */
|
||||
ec_ioctl_context_t ioctl_ctx; /**< Context structure. */
|
||||
} ec_rtdm_context_t;
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
+4
-2
@@ -35,9 +35,11 @@ struct rtdm_device;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
/** EtherCAT RTDM device.
|
||||
*/
|
||||
typedef struct ec_rtdm_dev {
|
||||
ec_master_t *master;
|
||||
struct rtdm_device *dev;
|
||||
ec_master_t *master; /**< Master pointer. */
|
||||
struct rtdm_device *dev; /**< RTDM device. */
|
||||
} ec_rtdm_dev_t;
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
@@ -85,6 +85,8 @@ void ec_sdo_request_clear(
|
||||
/** Copy another SDO request.
|
||||
*
|
||||
* \attention Only the index subindex and data are copied.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_sdo_request_copy(
|
||||
ec_sdo_request_t *req, /**< SDO request. */
|
||||
|
||||
@@ -797,6 +797,8 @@ void ec_slave_attach_pdo_names(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Returns the previous connected port of a given port.
|
||||
*
|
||||
* \return Port index.
|
||||
*/
|
||||
unsigned int ec_slave_get_previous_port(
|
||||
ec_slave_t *slave, /**< EtherCAT slave. */
|
||||
@@ -825,6 +827,8 @@ unsigned int ec_slave_get_previous_port(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Returns the next connected port of a given port.
|
||||
*
|
||||
* \return Port index.
|
||||
*/
|
||||
unsigned int ec_slave_get_next_port(
|
||||
ec_slave_t *slave, /**< EtherCAT slave. */
|
||||
@@ -853,6 +857,8 @@ unsigned int ec_slave_get_next_port(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Calculates the sum of round-trip-times of connected ports 1-3.
|
||||
*
|
||||
* \return Round-trip-time in ns.
|
||||
*/
|
||||
uint32_t ec_slave_calc_rtt_sum(
|
||||
ec_slave_t *slave /**< EtherCAT slave. */
|
||||
@@ -877,6 +883,8 @@ uint32_t ec_slave_calc_rtt_sum(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Finds the next slave supporting DC delay measurement.
|
||||
*
|
||||
* \return Next DC slave, or NULL.
|
||||
*/
|
||||
ec_slave_t *ec_slave_find_next_dc_slave(
|
||||
ec_slave_t *slave /**< EtherCAT slave. */
|
||||
|
||||
@@ -98,6 +98,8 @@
|
||||
* POSITION is the slave's ring position.
|
||||
*
|
||||
* \param slave EtherCAT slave
|
||||
* \param level Debug level. Master's debug level must be >= \a level for
|
||||
* output.
|
||||
* \param fmt format string (like in printf())
|
||||
* \param args arguments (optional)
|
||||
*/
|
||||
|
||||
@@ -388,6 +388,8 @@ unsigned int ec_slave_config_sdo_count(
|
||||
/** Finds an SDO configuration via its position in the list.
|
||||
*
|
||||
* Const version.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
const ec_sdo_request_t *ec_slave_config_get_sdo_by_pos_const(
|
||||
const ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
@@ -430,6 +432,8 @@ unsigned int ec_slave_config_idn_count(
|
||||
/** Finds an IDN configuration via its position in the list.
|
||||
*
|
||||
* Const version.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
const ec_soe_request_t *ec_slave_config_get_idn_by_pos_const(
|
||||
const ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
@@ -450,6 +454,8 @@ const ec_soe_request_t *ec_slave_config_get_idn_by_pos_const(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Finds a CoE handler via its position in the list.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
ec_sdo_request_t *ec_slave_config_find_sdo_request(
|
||||
ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
@@ -470,6 +476,8 @@ ec_sdo_request_t *ec_slave_config_find_sdo_request(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Finds a register handler via its position in the list.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
ec_reg_request_t *ec_slave_config_find_reg_request(
|
||||
ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
@@ -490,6 +498,8 @@ ec_reg_request_t *ec_slave_config_find_reg_request(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Finds a VoE handler via its position in the list.
|
||||
*
|
||||
* \return Search result, or NULL.
|
||||
*/
|
||||
ec_voe_handler_t *ec_slave_config_find_voe_handler(
|
||||
ec_slave_config_t *sc, /**< Slave configuration. */
|
||||
|
||||
@@ -98,6 +98,8 @@
|
||||
* and ALIAS and POSITION identify the configuration.
|
||||
*
|
||||
* \param sc EtherCAT slave configuration
|
||||
* \param level Debug level. Master's debug level must be >= \a level for
|
||||
* output.
|
||||
* \param fmt format string (like in printf())
|
||||
* \param args arguments (optional)
|
||||
*/
|
||||
|
||||
@@ -84,6 +84,8 @@ void ec_soe_request_clear(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Copy another SoE request.
|
||||
*
|
||||
* \return Zero on success, otherwise a negative error code.
|
||||
*/
|
||||
int ec_soe_request_copy(
|
||||
ec_soe_request_t *req, /**< SoE request. */
|
||||
|
||||
@@ -161,6 +161,8 @@ int ec_sync_add_pdo(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Determines the default direction from the control register.
|
||||
*
|
||||
* \return Direction.
|
||||
*/
|
||||
ec_direction_t ec_sync_default_direction(
|
||||
const ec_sync_t *sync /**< EtherCAT sync manager. */
|
||||
|
||||
@@ -106,6 +106,8 @@ void ec_voe_handler_clear(
|
||||
/*****************************************************************************/
|
||||
|
||||
/** Get usable memory size.
|
||||
*
|
||||
* \return Memory size.
|
||||
*/
|
||||
size_t ec_voe_handler_mem_size(
|
||||
const ec_voe_handler_t *voe /**< VoE handler. */
|
||||
|
||||
Reference in New Issue
Block a user