tool/CommandDomains.cpp
branchstable-1.5
changeset 2453 d461b1f07296
parent 2369 2536d60dea6e
--- a/tool/CommandDomains.cpp	Fri Nov 30 15:24:38 2012 +0100
+++ b/tool/CommandDomains.cpp	Fri Nov 30 20:15:31 2012 +0100
@@ -108,16 +108,18 @@
     MasterIndexList::const_iterator mi;
     for (mi = masterIndices.begin();
             mi != masterIndices.end(); mi++) {
+        ec_ioctl_master_t io;
         MasterDevice m(*mi);
         m.open(MasterDevice::Read);
-        domains = selectedDomains(m);
+        m.getMaster(&io);
+        domains = selectedDomains(m, io);
 
         if (domains.size() && doIndent) {
             cout << "Master" << dec << *mi << endl;
         }
 
         for (di = domains.begin(); di != domains.end(); di++) {
-            showDomain(m, *di, doIndent);
+            showDomain(m, io, *di, doIndent);
         }
     }
 }
@@ -126,6 +128,7 @@
 
 void CommandDomains::showDomain(
         MasterDevice &m,
+        const ec_ioctl_master_t &master,
         const ec_ioctl_domain_t &domain,
         bool doIndent
         )
@@ -138,7 +141,7 @@
     string indent(doIndent ? "  " : "");
     unsigned int wc_sum = 0, dev_idx;
 
-    for (dev_idx = 0; dev_idx < EC_NUM_DEVICES; dev_idx++) {
+    for (dev_idx = EC_DEVICE_MAIN; dev_idx < master.num_devices; dev_idx++) {
         wc_sum += domain.working_counter[dev_idx];
     }
 
@@ -151,10 +154,16 @@
         << ", WorkingCounter "
         << wc_sum << "/"
         << domain.expected_working_counter;
-    if (EC_NUM_DEVICES == 2) {
-        cout << " (" << domain.working_counter[EC_DEVICE_MAIN]
-            << "+" << domain.working_counter[EC_DEVICE_BACKUP]
-            << ")";
+    if (master.num_devices > 1) {
+        cout << " (";
+        for (dev_idx = EC_DEVICE_MAIN; dev_idx < master.num_devices;
+                dev_idx++) {
+            cout << domain.working_counter[dev_idx];
+            if (dev_idx + 1 < master.num_devices) {
+                cout << "+";
+            }
+        }
+        cout << ")";
     }
     cout << endl;