diff -r 63bef67e812b -r fdb85a806585 lib/master.c --- a/lib/master.c Thu Sep 06 14:40:10 2012 +0200 +++ b/lib/master.c Thu Sep 06 18:28:57 2012 +0200 @@ -256,8 +256,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 +553,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;