diff -r 326d47aa986c -r 1baac79a40cf lib/master.c --- a/lib/master.c Thu Nov 19 14:39:10 2009 +0100 +++ b/lib/master.c Thu Nov 19 14:44:57 2009 +0100 @@ -336,6 +336,16 @@ /*****************************************************************************/ +void ecrt_master_deactivate(ec_master_t *master) +{ + if (ioctl(master->fd, EC_IOCTL_DEACTIVATE, NULL) == -1) { + fprintf(stderr, "Failed to deactivate master: %s\n", strerror(errno)); + return; + } +} + +/*****************************************************************************/ + void ecrt_master_send(ec_master_t *master) { if (ioctl(master->fd, EC_IOCTL_SEND, NULL) == -1) { @@ -395,3 +405,28 @@ } /*****************************************************************************/ + +void ecrt_master_sync_monitor_queue(ec_master_t *master) +{ + if (ioctl(master->fd, EC_IOCTL_SYNC_MON_QUEUE, NULL) == -1) { + fprintf(stderr, "Failed to queue sync monitor datagram: %s\n", + strerror(errno)); + } +} + +/*****************************************************************************/ + +uint32_t ecrt_master_sync_monitor_process(ec_master_t *master) +{ + uint32_t time_diff; + + if (ioctl(master->fd, EC_IOCTL_SYNC_MON_PROCESS, &time_diff) == -1) { + time_diff = 0xffffffff; + fprintf(stderr, "Failed to process sync monitor datagram: %s\n", + strerror(errno)); + } + + return time_diff; +} + +/*****************************************************************************/