diff -r 6f100ee02e65 -r cf9db49bcce8 lib/master.c --- a/lib/master.c Thu May 31 09:50:29 2012 +0200 +++ b/lib/master.c Thu May 31 11:03:58 2012 +0200 @@ -235,11 +235,14 @@ for ( i = 0; i < EC_MAX_PORTS; i++ ) { slave_info->ports[i].desc = data.ports[i].desc; slave_info->ports[i].link.link_up = data.ports[i].link.link_up; - slave_info->ports[i].link.loop_closed = data.ports[i].link.loop_closed; - slave_info->ports[i].link.signal_detected = data.ports[i].link.signal_detected; + slave_info->ports[i].link.loop_closed = + data.ports[i].link.loop_closed; + slave_info->ports[i].link.signal_detected = + data.ports[i].link.signal_detected; slave_info->ports[i].receive_time = data.ports[i].receive_time; slave_info->ports[i].next_slave = data.ports[i].next_slave; - slave_info->ports[i].delay_to_next_dc = data.ports[i].delay_to_next_dc; + slave_info->ports[i].delay_to_next_dc = + data.ports[i].delay_to_next_dc; } slave_info->al_state = data.al_state; slave_info->error_flag = data.error_flag; @@ -256,8 +259,9 @@ { ec_ioctl_slave_sync_t data; - if (sync_index >= EC_MAX_SYNC_MANAGERS) + if (sync_index >= EC_MAX_SYNC_MANAGERS) { return -ENOENT; + } memset(&data, 0x00, sizeof(ec_ioctl_slave_sync_t)); data.slave_position = slave_position; @@ -552,6 +556,21 @@ /*****************************************************************************/ +int ecrt_master_link_state(const ec_master_t *master, unsigned int dev_idx, + ec_master_link_state_t *state) +{ + ec_ioctl_link_state_t io; + + io.dev_idx = dev_idx; + io.state = state; + if (ioctl(master->fd, EC_IOCTL_MASTER_LINK_STATE, &io) == -1) { + fprintf(stderr, "Failed to get link state: %s\n", strerror(errno)); + return -errno; + } +} + +/*****************************************************************************/ + void ecrt_master_application_time(ec_master_t *master, uint64_t app_time) { ec_ioctl_app_time_t data;