--- a/tool/cmd_domain.cpp Thu Jul 24 08:15:44 2008 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*****************************************************************************
- *
- * $Id$
- *
- ****************************************************************************/
-
-#include <iostream>
-#include <iomanip>
-using namespace std;
-
-#include "globals.h"
-
-/*****************************************************************************/
-
-const char *help_domains =
- "[OPTIONS]\n"
- "\n"
- "Show information about the application's configured domains.\n"
- "\n"
- "Without the --verbose option, the domains are displayed one-per-line.\n"
- "Example:\n"
- "\n"
- "Domain0: LogBaseAddr 0x00000000, Size 6, WorkingCounter 0/1\n"
- "\n"
- "The domain's base address for the logical datagram (LRD/LWR/LRW)\n"
- "is displayed followed by the domain's process data size in byte.\n"
- "The last values are the current datagram working counter sum and\n"
- "the expected working counter sum. If the values are equal, all\n"
- "Pdos are exchanged.\n"
- "\n"
- "If the --verbose option is given, the participating slave\n"
- "configurations/FMMUs and the current process data are additionally\n"
- "displayed:\n"
- "\n"
- "Domain1: LogBaseAddr 0x00000006, Size 6, WorkingCounter 0/1\n"
- " SlaveConfig 1001:0, SM3 ( Input), LogAddr 0x00000006, Size 6\n"
- " 00 00 00 00 00 00\n"
- "\n"
- "The process data are displayed as hexadecimal bytes.\n"
- "\n"
- "Command-specific options:\n"
- " --domain -d <index> Positive numerical domain index, or 'all'\n"
- " for all domains (default).\n"
- " --verbose -v Show FMMUs and process data additionally.\n"
- "\n"
- "Numerical values can be specified either with decimal (no prefix),\n"
- "octal (prefix '0') or hexadecimal (prefix '0x') base.\n";
-
-/****************************************************************************/
-
-void showDomain(unsigned int);
-
-/****************************************************************************/
-
-void command_domains(void)
-{
- masterDev.open(MasterDevice::Read);
-
- if (domainIndex == -1) {
- unsigned int i;
- ec_ioctl_master_t master;
-
- masterDev.getMaster(&master);
-
- for (i = 0; i < master.domain_count; i++) {
- showDomain(i);
- }
- } else {
- showDomain(domainIndex);
- }
-}
-
-/****************************************************************************/
-
-void showDomain(unsigned int domainIndex)
-{
- ec_ioctl_domain_t domain;
- unsigned char *processData;
- ec_ioctl_domain_data_t data;
- unsigned int i, j;
- ec_ioctl_domain_fmmu_t fmmu;
- unsigned int dataOffset;
-
- masterDev.getDomain(&domain, domainIndex);
-
- cout << "Domain" << dec << domainIndex << ":"
- << " LogBaseAddr 0x"
- << hex << setfill('0')
- << setw(8) << domain.logical_base_address
- << ", Size " << dec << setfill(' ')
- << setw(3) << domain.data_size
- << ", WorkingCounter "
- << domain.working_counter << "/"
- << domain.expected_working_counter << endl;
-
- if (!domain.data_size || verbosity != Verbose)
- return;
-
- processData = new unsigned char[domain.data_size];
-
- try {
- masterDev.getData(&data, domainIndex, domain.data_size, processData);
- } catch (MasterDeviceException &e) {
- delete [] processData;
- throw e;
- }
-
- for (i = 0; i < domain.fmmu_count; i++) {
- masterDev.getFmmu(&fmmu, domainIndex, i);
-
- cout << " SlaveConfig "
- << dec << fmmu.slave_config_alias
- << ":" << fmmu.slave_config_position
- << ", SM" << (unsigned int) fmmu.sync_index << " ("
- << setfill(' ') << setw(6)
- << (fmmu.dir == EC_DIR_INPUT ? "Input" : "Output")
- << "), LogAddr 0x"
- << hex << setfill('0')
- << setw(8) << fmmu.logical_address
- << ", Size " << dec << fmmu.data_size << endl;
-
- dataOffset = fmmu.logical_address - domain.logical_base_address;
- if (dataOffset + fmmu.data_size > domain.data_size) {
- stringstream err;
- delete [] processData;
- err << "Fmmu information corrupted!";
- throw CommandException(err);
- }
-
- cout << " " << hex << setfill('0');
- for (j = 0; j < fmmu.data_size; j++) {
- if (j && !(j % BreakAfterBytes))
- cout << endl << " ";
- cout << setw(2)
- << (unsigned int) *(processData + dataOffset + j) << " ";
- }
- cout << endl;
- }
-
- delete [] processData;
-}
-
-/*****************************************************************************/