IgH EtherCAT Master  1.5.2
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_config_flag (ec_master_t *master, void *arg)
 Get slave configuration feature flag 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_ref_to (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_sc_flag (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Configures a feature flag. 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 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 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 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 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 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 202 of file 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 289 of file 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 342 of file 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 401 of file 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 470 of file 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 515 of file 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 567 of file 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 612 of file 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 626 of file 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 641 of file 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 676 of file 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 725 of file 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 805 of file 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 851 of file 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 899 of file 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 947 of file 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 1035 of file 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 1114 of file 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 1199 of file 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 1258 of file 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 1314 of file 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 1379 of file 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 1443 of file ioctl.c.

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

Get slave configuration feature flag information.

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

Definition at line 1507 of file 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 1572 of file 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 1624 of file 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 1649 of file 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 1673 of file 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 1719 of file 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 1760 of file 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 1843 of file 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 1862 of file 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 1894 of file 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 1916 of file 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 1938 of file 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 1960 of file 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 1992 of file 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 2017 of file ioctl.c.

static ATTRIBUTES int ec_ioctl_sync_ref_to ( 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 2039 of file 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 2066 of file 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 2088 of file 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 2119 of file 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 2141 of file 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 2166 of file 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 2184 of file 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 2237 of file 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 2282 of file 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 2316 of file 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 2351 of file 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 2386 of file 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 2421 of file 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 2468 of file 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 2518 of file 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 2558 of file 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 2617 of file 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 2655 of file 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 2699 of file 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 2732 of file 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 2777 of file 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 2828 of file 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 2882 of file 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 2932 of file 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 2970 of file ioctl.c.

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

Configures a feature flag.

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 3024 of file 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 3080 of file 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 3114 of file 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 3148 of file 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 3176 of file 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 3206 of file 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 3244 of file 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 3281 of file 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 3318 of file 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 3363 of file 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 3400 of file 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 3451 of file 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 3491 of file 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 3538 of file 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 3583 of file 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 3631 of file 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 3674 of file 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 3719 of file 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 3767 of file 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 3804 of file 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 3841 of file 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 3887 of file 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 3934 of file 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 3974 of file 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 4070 of file 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 4158 of file 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 4207 of file 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 4261 of file ioctl.c.