From 4da4420a2b5c17978f7e73ee8ec3e9a27e3fb209 Mon Sep 17 00:00:00 2001 From: Florian Pose <fp@igh-essen.com> Date: Thu, 12 Jun 2008 09:44:18 +0000 Subject: [PATCH] Removed EC_IOCTL_DOMAIN_COUNT. --- TODO | 1 - master/cdev.c | 5 +---- master/ioctl.h | 28 ++++++++++++++-------------- tools/Master.cpp | 29 ++++++++++------------------- tools/Master.h | 1 - 5 files changed, 25 insertions(+), 39 deletions(-) diff --git a/TODO b/TODO index 5131430b..f9741f93 100644 --- a/TODO +++ b/TODO @@ -23,7 +23,6 @@ Version 1.4.0: * Make scanning and configuration run parallel (each). * List of commands that require a slave. * Remove configs_attached flag. -* Remove EC_IOCTL_DOMAIN_COUNT. * Rename master MODE to STATE. Future issues: diff --git a/master/cdev.c b/master/cdev.c index 7c62a41e..f126dad1 100644 --- a/master/cdev.c +++ b/master/cdev.c @@ -149,6 +149,7 @@ long eccdev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) data.slave_count = master->slave_count; data.config_count = ec_master_config_count(master); + data.domain_count = ec_master_domain_count(master); data.mode = (uint8_t) master->mode; memcpy(data.devices[0].address, master->main_mac, ETH_ALEN); @@ -368,10 +369,6 @@ long eccdev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) break; } - case EC_IOCTL_DOMAIN_COUNT: - retval = ec_master_domain_count(master); - break; - case EC_IOCTL_DOMAIN: { ec_ioctl_domain_t data; diff --git a/master/ioctl.h b/master/ioctl.h index 63c0ca3e..e5f9e82c 100644 --- a/master/ioctl.h +++ b/master/ioctl.h @@ -59,20 +59,19 @@ #define EC_IOCTL_SYNC EC_IOWR(0x02, ec_ioctl_sync_t) #define EC_IOCTL_PDO EC_IOWR(0x03, ec_ioctl_pdo_t) #define EC_IOCTL_PDO_ENTRY EC_IOWR(0x04, ec_ioctl_pdo_entry_t) -#define EC_IOCTL_DOMAIN_COUNT EC_IO(0x05) -#define EC_IOCTL_DOMAIN EC_IOWR(0x06, ec_ioctl_domain_t) -#define EC_IOCTL_DOMAIN_FMMU EC_IOWR(0x07, ec_ioctl_domain_fmmu_t) -#define EC_IOCTL_DATA EC_IOWR(0x08, ec_ioctl_data_t) -#define EC_IOCTL_SET_DEBUG EC_IO(0x09) -#define EC_IOCTL_SLAVE_STATE EC_IOW(0x0a, ec_ioctl_slave_state_t) -#define EC_IOCTL_SDO EC_IOWR(0x0b, ec_ioctl_sdo_t) -#define EC_IOCTL_SDO_ENTRY EC_IOWR(0x0c, ec_ioctl_sdo_entry_t) -#define EC_IOCTL_SDO_UPLOAD EC_IOWR(0x0d, ec_ioctl_sdo_upload_t) -#define EC_IOCTL_SDO_DOWNLOAD EC_IOW(0x0e, ec_ioctl_sdo_download_t) -#define EC_IOCTL_SII_READ EC_IOWR(0x0f, ec_ioctl_sii_t) -#define EC_IOCTL_SII_WRITE EC_IOW(0x10, ec_ioctl_sii_t) -#define EC_IOCTL_CONFIG EC_IOWR(0x11, ec_ioctl_config_t) -#define EC_IOCTL_CONFIG_PDO EC_IOWR(0x12, ec_ioctl_config_pdo_t) +#define EC_IOCTL_DOMAIN EC_IOWR(0x05, ec_ioctl_domain_t) +#define EC_IOCTL_DOMAIN_FMMU EC_IOWR(0x06, ec_ioctl_domain_fmmu_t) +#define EC_IOCTL_DATA EC_IOWR(0x07, ec_ioctl_data_t) +#define EC_IOCTL_SET_DEBUG EC_IO(0x08) +#define EC_IOCTL_SLAVE_STATE EC_IOW(0x09, ec_ioctl_slave_state_t) +#define EC_IOCTL_SDO EC_IOWR(0x0a, ec_ioctl_sdo_t) +#define EC_IOCTL_SDO_ENTRY EC_IOWR(0x0b, ec_ioctl_sdo_entry_t) +#define EC_IOCTL_SDO_UPLOAD EC_IOWR(0x0c, ec_ioctl_sdo_upload_t) +#define EC_IOCTL_SDO_DOWNLOAD EC_IOW(0x0d, ec_ioctl_sdo_download_t) +#define EC_IOCTL_SII_READ EC_IOWR(0x0e, ec_ioctl_sii_t) +#define EC_IOCTL_SII_WRITE EC_IOW(0x0f, ec_ioctl_sii_t) +#define EC_IOCTL_CONFIG EC_IOWR(0x10, ec_ioctl_config_t) +#define EC_IOCTL_CONFIG_PDO EC_IOWR(0x11, ec_ioctl_config_pdo_t) #define EC_IOCTL_CONFIG_PDO_ENTRY EC_IOWR(0x12, ec_ioctl_config_pdo_entry_t) #define EC_IOCTL_CONFIG_SDO EC_IOWR(0x13, ec_ioctl_config_sdo_t) @@ -83,6 +82,7 @@ typedef struct { uint32_t slave_count; uint32_t config_count; + uint32_t domain_count; uint8_t mode; struct { uint8_t address[6]; diff --git a/tools/Master.cpp b/tools/Master.cpp index 95556f01..4ce53cd0 100644 --- a/tools/Master.cpp +++ b/tools/Master.cpp @@ -266,9 +266,12 @@ void Master::outputData(int domainIndex) open(Read); if (domainIndex == -1) { - unsigned int numDomains = domainCount(), i; + unsigned int i; + ec_ioctl_master_t master; - for (i = 0; i < numDomains; i++) { + getMaster(&master); + + for (i = 0; i < master.domain_count; i++) { outputDomainData(i); } } else { @@ -314,9 +317,12 @@ void Master::showDomains(int domainIndex) open(Read); if (domainIndex == -1) { - unsigned int numDomains = domainCount(), i; + unsigned int i; + ec_ioctl_master_t master; + + getMaster(&master); - for (i = 0; i < numDomains; i++) { + for (i = 0; i < master.domain_count; i++) { showDomain(i); } } else { @@ -1498,21 +1504,6 @@ void Master::generateSlaveXml(uint16_t slavePosition) /****************************************************************************/ -unsigned int Master::domainCount() -{ - int ret; - - if ((ret = ioctl(fd, EC_IOCTL_DOMAIN_COUNT, 0)) < 0) { - stringstream err; - err << "Failed to get number of domains: " << strerror(errno); - throw MasterException(err.str()); - } - - return ret; -} - -/****************************************************************************/ - unsigned int Master::slaveCount() { ec_ioctl_master_t data; diff --git a/tools/Master.h b/tools/Master.h index c7618545..56f2781a 100644 --- a/tools/Master.h +++ b/tools/Master.h @@ -70,7 +70,6 @@ class Master void listSlaveSdos(uint16_t, bool = false, bool = false); void showSlave(uint16_t); void generateSlaveXml(uint16_t); - unsigned int domainCount(); unsigned int slaveCount(); void getMaster(ec_ioctl_master_t *); void getConfig(ec_ioctl_config_t *, unsigned int); -- GitLab