IgH EtherCAT Master  1.6.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_lock(lock)   rt_mutex_lock(lock)
 
#define ec_ioctl_unlock(lock)   rt_mutex_unlock(lock)
 
#define ec_ioctl_lock_interruptible(lock)   rt_mutex_lock_interruptible(lock)
 
#define ec_copy_to_user(to, from, n, ctx)   copy_to_user(to, from, n)
 
#define ec_copy_from_user(to, from, n, ctx)   copy_from_user(to, from, n)
 

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, ec_ioctl_context_t *ctx)
 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_config_ip (ec_master_t *master, void *arg)
 Get configured EoE IP parameters for a given slave configuration. More...
 
static ATTRIBUTES int ec_ioctl_eoe_handler (ec_master_t *master, void *arg)
 Get EoE handler information. More...
 
static ATTRIBUTES int ec_ioctl_slave_eoe_ip_param (ec_master_t *master, void *arg)
 Request EoE IP parameter setting. 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_soe_request (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Create an SoE 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_sc_state_timeout (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets an AL state transition timeout. More...
 
static ATTRIBUTES int ec_ioctl_sc_ip (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Configures EoE IP parameters. 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_soe_request_index (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets an SoE request's drive number and IDN. More...
 
static ATTRIBUTES int ec_ioctl_soe_request_timeout (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Sets an CoE request's timeout. More...
 
static ATTRIBUTES int ec_ioctl_soe_request_state (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Gets an SoE request's state. More...
 
static ATTRIBUTES int ec_ioctl_soe_request_read (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts an SoE IDN read operation. More...
 
static ATTRIBUTES int ec_ioctl_soe_request_write (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Starts an SoE IDN write operation. More...
 
static ATTRIBUTES int ec_ioctl_soe_request_data (ec_master_t *master, void *arg, ec_ioctl_context_t *ctx)
 Read SoE IDN 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...
 
static long ec_ioctl_nrt (ec_master_t *master, ec_ioctl_context_t *ctx, unsigned int cmd, void *arg)
 ioctl() function to use. More...
 
static long ec_ioctl_both (ec_master_t *master, ec_ioctl_context_t *ctx, unsigned int cmd, void *arg)
 Called when an ioctl() command is issued. 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

◆ DEBUG_LATENCY

#define DEBUG_LATENCY   0

Set to 1 to enable ioctl() latency tracing.

Requires CPU timestamp counter!

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

Function Documentation

◆ ec_ioctl_strcpy()

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

Copies a string to an ioctl structure.

Parameters
targetTarget.
sourceSource.

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

◆ ec_ioctl_module()

static ATTRIBUTES int ec_ioctl_module ( void *  arg,
ec_ioctl_context_t *  ctx 
)
static

Get module information.

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

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

◆ ec_ioctl_master()

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 122 of file rtdm-ioctl.c.

◆ ec_ioctl_slave()

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 221 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sync()

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 308 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sync_pdo()

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 361 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sync_pdo_entry()

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 420 of file rtdm-ioctl.c.

◆ ec_ioctl_domain()

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 489 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_fmmu()

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 534 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_data()

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 586 of file rtdm-ioctl.c.

◆ ec_ioctl_master_debug()

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 631 of file rtdm-ioctl.c.

◆ ec_ioctl_master_rescan()

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 645 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_state()

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 660 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sdo()

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 695 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sdo_entry()

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 744 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sdo_upload()

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 824 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sdo_download()

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 870 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sii_read()

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 918 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_sii_write()

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 966 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_reg_read()

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 1054 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_reg_write()

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 1136 of file rtdm-ioctl.c.

◆ ec_ioctl_config()

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 1224 of file rtdm-ioctl.c.

◆ ec_ioctl_config_pdo()

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 1283 of file rtdm-ioctl.c.

◆ ec_ioctl_config_pdo_entry()

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 1339 of file rtdm-ioctl.c.

◆ ec_ioctl_config_sdo()

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 1404 of file rtdm-ioctl.c.

◆ ec_ioctl_config_idn()

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 1468 of file rtdm-ioctl.c.

◆ ec_ioctl_config_flag()

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 1532 of file rtdm-ioctl.c.

◆ ec_ioctl_config_ip()

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

Get configured EoE IP parameters for a given slave configuration.

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

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

◆ ec_ioctl_eoe_handler()

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 1665 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_eoe_ip_param()

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

Request EoE IP parameter setting.

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

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

◆ ec_ioctl_request()

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 1802 of file rtdm-ioctl.c.

◆ ec_ioctl_create_domain()

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 1827 of file rtdm-ioctl.c.

◆ ec_ioctl_create_slave_config()

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 1851 of file rtdm-ioctl.c.

◆ ec_ioctl_select_ref_clock()

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 1897 of file rtdm-ioctl.c.

◆ ec_ioctl_activate()

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 1938 of file rtdm-ioctl.c.

◆ ec_ioctl_deactivate()

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 2022 of file rtdm-ioctl.c.

◆ ec_ioctl_set_send_interval()

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 2040 of file rtdm-ioctl.c.

◆ ec_ioctl_send()

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 2072 of file rtdm-ioctl.c.

◆ ec_ioctl_receive()

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 2098 of file rtdm-ioctl.c.

◆ ec_ioctl_master_state()

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 2124 of file rtdm-ioctl.c.

◆ ec_ioctl_master_link_state()

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 2149 of file rtdm-ioctl.c.

◆ ec_ioctl_app_time()

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 2182 of file rtdm-ioctl.c.

◆ ec_ioctl_sync_ref()

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 2206 of file rtdm-ioctl.c.

◆ ec_ioctl_sync_ref_to()

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 2232 of file rtdm-ioctl.c.

◆ ec_ioctl_sync_slaves()

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 2262 of file rtdm-ioctl.c.

◆ ec_ioctl_ref_clock_time()

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 2288 of file rtdm-ioctl.c.

◆ ec_ioctl_sync_mon_queue()

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 2319 of file rtdm-ioctl.c.

◆ ec_ioctl_sync_mon_process()

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 2345 of file rtdm-ioctl.c.

◆ ec_ioctl_reset()

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 2371 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_sync()

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 2392 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_watchdog()

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 2445 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_add_pdo()

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 2490 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_clear_pdos()

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 2524 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_add_entry()

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 2558 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_clear_entries()

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 2593 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_reg_pdo_entry()

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 2627 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_reg_pdo_pos()

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 2674 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_dc()

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 2724 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_sdo()

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 2765 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_emerg_size()

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 2824 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_emerg_pop()

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 2862 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_emerg_clear()

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 2906 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_emerg_overruns()

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 2939 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_create_sdo_request()

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 2984 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_create_soe_request()

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

Create an SoE 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 3035 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_create_reg_request()

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 3088 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_create_voe_handler()

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 3142 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_state()

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 3192 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_idn()

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 3234 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_flag()

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 3288 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_state_timeout()

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

Sets an AL state transition timeout.

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 3345 of file rtdm-ioctl.c.

◆ ec_ioctl_sc_ip()

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

Configures EoE IP parameters.

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 3387 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_size()

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 3446 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_offset()

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 3480 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_process()

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 3514 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_queue()

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 3541 of file rtdm-ioctl.c.

◆ ec_ioctl_domain_state()

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 3574 of file rtdm-ioctl.c.

◆ ec_ioctl_sdo_request_index()

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 3616 of file rtdm-ioctl.c.

◆ ec_ioctl_sdo_request_timeout()

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 3652 of file rtdm-ioctl.c.

◆ ec_ioctl_sdo_request_state()

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.

Also pre-fetches the size of incoming data.

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

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

◆ ec_ioctl_sdo_request_read()

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 3735 of file rtdm-ioctl.c.

◆ ec_ioctl_sdo_request_write()

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 3771 of file rtdm-ioctl.c.

◆ ec_ioctl_sdo_request_data()

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 3820 of file rtdm-ioctl.c.

◆ ec_ioctl_soe_request_index()

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

Sets an SoE request's drive number and IDN.

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

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

◆ ec_ioctl_soe_request_timeout()

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

Sets an CoE 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 3896 of file rtdm-ioctl.c.

◆ ec_ioctl_soe_request_state()

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

Gets an SoE 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 3932 of file rtdm-ioctl.c.

◆ ec_ioctl_soe_request_read()

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

Starts an SoE IDN 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 3979 of file rtdm-ioctl.c.

◆ ec_ioctl_soe_request_write()

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

Starts an SoE IDN 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 4015 of file rtdm-ioctl.c.

◆ ec_ioctl_soe_request_data()

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

Read SoE IDN data.

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

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

◆ ec_ioctl_reg_request_data()

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 4104 of file rtdm-ioctl.c.

◆ ec_ioctl_reg_request_state()

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 4151 of file rtdm-ioctl.c.

◆ ec_ioctl_reg_request_write()

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 4196 of file rtdm-ioctl.c.

◆ ec_ioctl_reg_request_read()

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 4243 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_send_header()

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 4285 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_rec_header()

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 4330 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_read()

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 4383 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_read_nosync()

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 4419 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_write()

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 4455 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_exec()

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 4500 of file rtdm-ioctl.c.

◆ ec_ioctl_voe_data()

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 4549 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_foe_read()

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 4589 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_foe_write()

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 4685 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_soe_read()

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 4773 of file rtdm-ioctl.c.

◆ ec_ioctl_slave_soe_write()

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 4822 of file rtdm-ioctl.c.

◆ ec_ioctl_nrt()

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

ioctl() function to use.

Called when an ioctl() command is issued.

For RTDM, there will be ec_ioctl_rtdm_rt and ec_ioctl_rtdm_nrt. For "normal" cdev, there will be ec_ioctl_rt only.

nRT context only.

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

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

◆ ec_ioctl_both()

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

Called when an ioctl() command is issued.

Both RT and nRT context.

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

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

◆ ec_ioctl()

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

Called when an ioctl() command is issued.

RTDM: RT only.

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

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