IgH EtherCAT Master  1.5.2
rtdm-ioctl.c File Reference

EtherCAT master character device. More...

Go to the source code of this file.

Macros

#define DEBUG_LATENCY   0
 Set to 1 to enable ioctl() latency tracing. More...
 
#define ATTRIBUTES
 Optional compiler attributes fo ioctl() functions.
 
#define EC_IOCTL   ec_ioctl
 ioctl() function to use.
 

Functions

static void ec_ioctl_strcpy (char *target, const char *source)
 Copies a string to an ioctl structure. More...
 
static ATTRIBUTES int ec_ioctl_module (void *arg)
 Get module information. More...
 
static ATTRIBUTES int ec_ioctl_master (ec_master_t *master, void *arg)
 Get master information. More...
 
static ATTRIBUTES int ec_ioctl_slave (ec_master_t *master, void *arg)
 Get slave information. More...
 
static ATTRIBUTES int ec_ioctl_slave_sync (ec_master_t *master, void *arg)
 Get slave sync manager information. More...
 
static ATTRIBUTES int ec_ioctl_slave_sync_pdo (ec_master_t *master, void *arg)
 Get slave sync manager PDO information. More...
 
static ATTRIBUTES int ec_ioctl_slave_sync_pdo_entry (ec_master_t *master, void *arg)
 Get slave sync manager PDO entry information. More...
 
static ATTRIBUTES int ec_ioctl_domain (ec_master_t *master, void *arg)
 Get domain information. More...
 
static ATTRIBUTES int ec_ioctl_domain_fmmu (ec_master_t *master, void *arg)
 Get domain FMMU information. More...
 
static ATTRIBUTES int ec_ioctl_domain_data (ec_master_t *master, void *arg)
 Get domain data. More...
 
static ATTRIBUTES int ec_ioctl_master_debug (ec_master_t *master, void *arg)
 Set master debug level. More...
 
static ATTRIBUTES int ec_ioctl_master_rescan (ec_master_t *master, void *arg)
 Issue a bus scan. More...
 
static ATTRIBUTES int ec_ioctl_slave_state (ec_master_t *master, void *arg)
 Set slave state. More...
 
static ATTRIBUTES int ec_ioctl_slave_sdo (ec_master_t *master, void *arg)
 Get slave SDO information. More...
 
static ATTRIBUTES int ec_ioctl_slave_sdo_entry (ec_master_t *master, void *arg)
 Get slave SDO entry information. More...
 
static ATTRIBUTES int ec_ioctl_slave_sdo_upload (ec_master_t *master, void *arg)
 Upload SDO. More...
 
static ATTRIBUTES int ec_ioctl_slave_sdo_download (ec_master_t *master, void *arg)
 Download SDO. More...
 
static ATTRIBUTES int ec_ioctl_slave_sii_read (ec_master_t *master, void *arg)
 Read a slave's SII. More...
 
static ATTRIBUTES int ec_ioctl_slave_sii_write (ec_master_t *master, void *arg)
 Write a slave's SII. More...
 
static ATTRIBUTES int ec_ioctl_slave_reg_read (ec_master_t *master, void *arg)
 Read a slave's registers. More...
 
static ATTRIBUTES int ec_ioctl_slave_reg_write (ec_master_t *master, void *arg)
 Write a slave's registers. More...
 
static ATTRIBUTES int ec_ioctl_config (ec_master_t *master, void *arg)
 Get slave configuration information. More...
 
static ATTRIBUTES int ec_ioctl_config_pdo (ec_master_t *master, void *arg)
 Get slave configuration PDO information. More...
 
static ATTRIBUTES int ec_ioctl_config_pdo_entry (ec_master_t *master, void *arg)
 Get slave configuration PDO entry information. More...
 
static ATTRIBUTES int ec_ioctl_config_sdo (ec_master_t *master, void *arg)
 Get slave configuration SDO information. More...
 
static ATTRIBUTES int ec_ioctl_config_idn (ec_master_t *master, void *arg)
 Get slave configuration IDN information. More...
 
static ATTRIBUTES int ec_ioctl_eoe_handler (ec_master_t *master, void *arg)
 Get EoE handler information. More...
 
static ATTRIBUTES int ec_ioctl_request (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Request the master from userspace. More...
 
static ATTRIBUTES int ec_ioctl_create_domain (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Create a domain. More...
 
static ATTRIBUTES int ec_ioctl_create_slave_config (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Create a slave configuration. More...
 
static ATTRIBUTES int ec_ioctl_select_ref_clock (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Select the DC reference clock. More...
 
static ATTRIBUTES int ec_ioctl_activate (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Activates the master. More...
 
static ATTRIBUTES int ec_ioctl_deactivate (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Deactivates the master. More...
 
static ATTRIBUTES int ec_ioctl_set_send_interval (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Set max. More...
 
static ATTRIBUTES int ec_ioctl_send (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Send frames. More...
 
static ATTRIBUTES int ec_ioctl_receive (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Receive frames. More...
 
static ATTRIBUTES int ec_ioctl_master_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get the master state. More...
 
static ATTRIBUTES int ec_ioctl_master_link_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get the link state. More...
 
static ATTRIBUTES int ec_ioctl_app_time (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Set the master DC application time. More...
 
static ATTRIBUTES int ec_ioctl_sync_ref (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sync the reference clock. More...
 
static ATTRIBUTES int ec_ioctl_sync_slaves (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sync the slave clocks. More...
 
static ATTRIBUTES int ec_ioctl_ref_clock_time (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get the system time of the reference clock. More...
 
static ATTRIBUTES int ec_ioctl_sync_mon_queue (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Queue the sync monitoring datagram. More...
 
static ATTRIBUTES int ec_ioctl_sync_mon_process (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Processes the sync monitoring datagram. More...
 
static ATTRIBUTES int ec_ioctl_reset (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Reset configuration. More...
 
static ATTRIBUTES int ec_ioctl_sc_sync (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Configure a sync manager. More...
 
static ATTRIBUTES int ec_ioctl_sc_watchdog (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Configure a slave's watchdogs. More...
 
static ATTRIBUTES int ec_ioctl_sc_add_pdo (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Add a PDO to the assignment. More...
 
static ATTRIBUTES int ec_ioctl_sc_clear_pdos (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Clears the PDO assignment. More...
 
static ATTRIBUTES int ec_ioctl_sc_add_entry (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Add an entry to a PDO's mapping. More...
 
static ATTRIBUTES int ec_ioctl_sc_clear_entries (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Clears the mapping of a PDO. More...
 
static ATTRIBUTES int ec_ioctl_sc_reg_pdo_entry (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Registers a PDO entry. More...
 
static ATTRIBUTES int ec_ioctl_sc_reg_pdo_pos (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Registers a PDO entry by its position. More...
 
static ATTRIBUTES int ec_ioctl_sc_dc (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets the DC AssignActivate word and the sync signal times. More...
 
static ATTRIBUTES int ec_ioctl_sc_sdo (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Configures an SDO. More...
 
static ATTRIBUTES int ec_ioctl_sc_emerg_size (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Set the emergency ring buffer size. More...
 
static ATTRIBUTES int ec_ioctl_sc_emerg_pop (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get an emergency message from the ring. More...
 
static ATTRIBUTES int ec_ioctl_sc_emerg_clear (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Clear the emergency ring. More...
 
static ATTRIBUTES int ec_ioctl_sc_emerg_overruns (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get the number of emergency overruns. More...
 
static ATTRIBUTES int ec_ioctl_sc_create_sdo_request (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Create an SDO request. More...
 
static ATTRIBUTES int ec_ioctl_sc_create_reg_request (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Create a register request. More...
 
static ATTRIBUTES int ec_ioctl_sc_create_voe_handler (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Create a VoE handler. More...
 
static ATTRIBUTES int ec_ioctl_sc_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get the slave configuration's state. More...
 
static ATTRIBUTES int ec_ioctl_sc_idn (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Configures an IDN. More...
 
static ATTRIBUTES int ec_ioctl_domain_size (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Gets the domain's data size. More...
 
static ATTRIBUTES int ec_ioctl_domain_offset (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Gets the domain's offset in the total process data. More...
 
static ATTRIBUTES int ec_ioctl_domain_process (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Process the domain. More...
 
static ATTRIBUTES int ec_ioctl_domain_queue (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Queue the domain. More...
 
static ATTRIBUTES int ec_ioctl_domain_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Get the domain state. More...
 
static ATTRIBUTES int ec_ioctl_sdo_request_index (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets an SDO request's SDO index and subindex. More...
 
static ATTRIBUTES int ec_ioctl_sdo_request_timeout (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets an SDO request's timeout. More...
 
static ATTRIBUTES int ec_ioctl_sdo_request_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Gets an SDO request's state. More...
 
static ATTRIBUTES int ec_ioctl_sdo_request_read (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts an SDO read operation. More...
 
static ATTRIBUTES int ec_ioctl_sdo_request_write (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts an SDO write operation. More...
 
static ATTRIBUTES int ec_ioctl_sdo_request_data (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Read SDO data. More...
 
static ATTRIBUTES int ec_ioctl_reg_request_data (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Read register data. More...
 
static ATTRIBUTES int ec_ioctl_reg_request_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Gets an register request's state. More...
 
static ATTRIBUTES int ec_ioctl_reg_request_write (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts an register write operation. More...
 
static ATTRIBUTES int ec_ioctl_reg_request_read (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts an register read operation. More...
 
static ATTRIBUTES int ec_ioctl_voe_send_header (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets the VoE send header. More...
 
static ATTRIBUTES int ec_ioctl_voe_rec_header (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Gets the received VoE header. More...
 
static ATTRIBUTES int ec_ioctl_voe_read (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts a VoE read operation. More...
 
static ATTRIBUTES int ec_ioctl_voe_read_nosync (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts a VoE read operation without sending a sync message first. More...
 
static ATTRIBUTES int ec_ioctl_voe_write (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts a VoE write operation. More...
 
static ATTRIBUTES int ec_ioctl_voe_exec (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Executes the VoE state machine. More...
 
static ATTRIBUTES int ec_ioctl_voe_data (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Reads the received VoE data. More...
 
static ATTRIBUTES int ec_ioctl_slave_foe_read (ec_master_t *master, void *arg)
 Read a file from a slave via FoE. More...
 
static ATTRIBUTES int ec_ioctl_slave_foe_write (ec_master_t *master, void *arg)
 Write a file to a slave via FoE. More...
 
static ATTRIBUTES int ec_ioctl_slave_soe_read (ec_master_t *master, void *arg)
 Read an SoE IDN. More...
 
static ATTRIBUTES int ec_ioctl_slave_soe_write (ec_master_t *master, void *arg)
 Write an IDN to a slave via SoE. More...
 
long EC_IOCTL (ec_master_t *master, ec_ioctl_context_t *ctx, unsigned int cmd, void *arg)
 Called when an ioctl() command is issued. More...
 

Detailed Description

EtherCAT master character device.

Definition in file rtdm-ioctl.c.

Macro Definition Documentation

#define DEBUG_LATENCY   0

Set to 1 to enable ioctl() latency tracing.

Requires CPU timestamp counter!

Definition at line 50 of file rtdm-ioctl.c.

Function Documentation

static void ec_ioctl_strcpy ( char *  target,
const char *  source 
)
static

Copies a string to an ioctl structure.

Parameters
targetTarget.
sourceSource.

Definition at line 64 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_module ( void *  arg)
static

Get module information.

Returns
Zero on success, otherwise a negative error code.
Parameters
argUserspace address to store the results.

Definition at line 83 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_master ( ec_master_t master,
void *  arg 
)
static

Get master information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 104 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave ( ec_master_t master,
void *  arg 
)
static

Get slave information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 199 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sync ( ec_master_t master,
void *  arg 
)
static

Get slave sync manager information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 286 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sync_pdo ( ec_master_t master,
void *  arg 
)
static

Get slave sync manager PDO information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 339 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sync_pdo_entry ( ec_master_t master,
void *  arg 
)
static

Get slave sync manager PDO entry information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 398 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain ( ec_master_t master,
void *  arg 
)
static

Get domain information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 467 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_fmmu ( ec_master_t master,
void *  arg 
)
static

Get domain FMMU information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 512 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_data ( ec_master_t master,
void *  arg 
)
static

Get domain data.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argUserspace address to store the results.

Definition at line 564 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_master_debug ( ec_master_t master,
void *  arg 
)
static

Set master debug level.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 609 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_master_rescan ( ec_master_t master,
void *  arg 
)
static

Issue a bus scan.

Returns
Always zero (success).
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 623 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_state ( ec_master_t master,
void *  arg 
)
static

Set slave state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 638 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sdo ( ec_master_t master,
void *  arg 
)
static

Get slave SDO information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 673 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sdo_entry ( ec_master_t master,
void *  arg 
)
static

Get slave SDO entry information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 722 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sdo_upload ( ec_master_t master,
void *  arg 
)
static

Upload SDO.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 802 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sdo_download ( ec_master_t master,
void *  arg 
)
static

Download SDO.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 848 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sii_read ( ec_master_t master,
void *  arg 
)
static

Read a slave's SII.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 896 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_sii_write ( ec_master_t master,
void *  arg 
)
static

Write a slave's SII.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 944 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_reg_read ( ec_master_t master,
void *  arg 
)
static

Read a slave's registers.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1032 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_reg_write ( ec_master_t master,
void *  arg 
)
static

Write a slave's registers.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1111 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_config ( ec_master_t master,
void *  arg 
)
static

Get slave configuration information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1196 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_config_pdo ( ec_master_t master,
void *  arg 
)
static

Get slave configuration PDO information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1254 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_config_pdo_entry ( ec_master_t master,
void *  arg 
)
static

Get slave configuration PDO entry information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1310 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_config_sdo ( ec_master_t master,
void *  arg 
)
static

Get slave configuration SDO information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1375 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_config_idn ( ec_master_t master,
void *  arg 
)
static

Get slave configuration IDN information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1439 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_eoe_handler ( ec_master_t master,
void *  arg 
)
static

Get EoE handler information.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 1505 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_request ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Request the master from userspace.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1557 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_create_domain ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Create a domain.

Returns
Domain index on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1582 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_create_slave_config ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Create a slave configuration.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1606 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_select_ref_clock ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Select the DC reference clock.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1652 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_activate ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Activates the master.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1693 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_deactivate ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Deactivates the master.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1776 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_set_send_interval ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Set max.

number of databytes in a cycle

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1795 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_send ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Send frames.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1827 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_receive ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Receive frames.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1847 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_master_state ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get the master state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1867 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_master_link_state ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get the link state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1889 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_app_time ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Set the master DC application time.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1921 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sync_ref ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Sync the reference clock.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1946 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sync_slaves ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Sync the slave clocks.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1966 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_ref_clock_time ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get the system time of the reference clock.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 1986 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sync_mon_queue ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Queue the sync monitoring datagram.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2017 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sync_mon_process ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Processes the sync monitoring datagram.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2037 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_reset ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Reset configuration.

Returns
Always zero (success).
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2062 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_sync ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Configure a sync manager.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2080 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_watchdog ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Configure a slave's watchdogs.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2133 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_add_pdo ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Add a PDO to the assignment.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2178 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_clear_pdos ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Clears the PDO assignment.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2212 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_add_entry ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Add an entry to a PDO's mapping.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2247 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_clear_entries ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Clears the mapping of a PDO.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2282 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_reg_pdo_entry ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Registers a PDO entry.

Returns
Process data offset on success, otherwise a negative error code.
Todo:
sc or domain could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2317 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_reg_pdo_pos ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Registers a PDO entry by its position.

Returns
Process data offset on success, otherwise a negative error code.
Todo:
sc or domain could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2364 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_dc ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Sets the DC AssignActivate word and the sync signal times.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2414 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_sdo ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Configures an SDO.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2454 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_emerg_size ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Set the emergency ring buffer size.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2513 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_emerg_pop ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get an emergency message from the ring.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2551 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_emerg_clear ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Clear the emergency ring.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2595 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_emerg_overruns ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get the number of emergency overruns.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2628 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_create_sdo_request ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Create an SDO request.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2673 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_create_reg_request ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Create a register request.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2724 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_create_voe_handler ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Create a VoE handler.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2778 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_state ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get the slave configuration's state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2828 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sc_idn ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Configures an IDN.

Returns
Zero on success, otherwise a negative error code.
Todo:
sc could be invalidated
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2866 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_size ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Gets the domain's data size.

Returns
Domain size, or a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2920 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_offset ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Gets the domain's offset in the total process data.

Returns
Domain offset, or a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2954 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_process ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Process the domain.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 2988 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_queue ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Queue the domain.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3016 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_domain_state ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get the domain state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3044 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sdo_request_index ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Sets an SDO request's SDO index and subindex.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3082 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sdo_request_timeout ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Sets an SDO request's timeout.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3119 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sdo_request_state ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Gets an SDO request's state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3156 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sdo_request_read ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts an SDO read operation.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3201 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sdo_request_write ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts an SDO write operation.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3238 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_sdo_request_data ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Read SDO data.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3289 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_reg_request_data ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Read register data.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3329 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_reg_request_state ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Gets an register request's state.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3376 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_reg_request_write ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts an register write operation.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3421 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_reg_request_read ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts an register read operation.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3469 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_send_header ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Sets the VoE send header.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3512 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_rec_header ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Gets the received VoE header.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3557 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_read ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts a VoE read operation.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3605 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_read_nosync ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts a VoE read operation without sending a sync message first.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3642 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_write ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Starts a VoE write operation.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3679 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_exec ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Executes the VoE state machine.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3725 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_voe_data ( ec_master_t master,
void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Reads the received VoE data.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.
ctxPrivate data structure of file handle.

Definition at line 3770 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_foe_read ( ec_master_t master,
void *  arg 
)
static

Read a file from a slave via FoE.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 3810 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_foe_write ( ec_master_t master,
void *  arg 
)
static

Write a file to a slave via FoE.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 3906 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_soe_read ( ec_master_t master,
void *  arg 
)
static

Read an SoE IDN.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 3994 of file rtdm-ioctl.c.

static ATTRIBUTES int ec_ioctl_slave_soe_write ( ec_master_t master,
void *  arg 
)
static

Write an IDN to a slave via SoE.

Returns
Zero on success, otherwise a negative error code.
Parameters
masterEtherCAT master.
argioctl() argument.

Definition at line 4043 of file rtdm-ioctl.c.

long EC_IOCTL ( ec_master_t master,
ec_ioctl_context_t *  ctx,
unsigned int  cmd,
void *  arg 
)

Called when an ioctl() command is issued.

Returns
ioctl() return code.
Parameters
masterEtherCAT master.
ctxDevice context.
cmdioctl() command identifier.
argioctl() argument.

Definition at line 4097 of file rtdm-ioctl.c.