equal
deleted
inserted
replaced
79 |
79 |
80 /****************************************************************************/ |
80 /****************************************************************************/ |
81 |
81 |
82 void CommandRegWrite::execute(const StringVector &args) |
82 void CommandRegWrite::execute(const StringVector &args) |
83 { |
83 { |
84 MasterIndexList masterIndices; |
|
85 stringstream strOffset, err; |
84 stringstream strOffset, err; |
86 ec_ioctl_slave_reg_t data; |
85 ec_ioctl_slave_reg_t data; |
87 ifstream file; |
86 ifstream file; |
88 SlaveList slaves; |
87 SlaveList slaves; |
89 |
88 |
99 if (strOffset.fail()) { |
98 if (strOffset.fail()) { |
100 err << "Invalid offset '" << args[0] << "'!"; |
99 err << "Invalid offset '" << args[0] << "'!"; |
101 throwInvalidUsageException(err); |
100 throwInvalidUsageException(err); |
102 } |
101 } |
103 |
102 |
104 masterIndices = getMasterIndices(); |
|
105 if (masterIndices.size() != 1) { |
|
106 err << getName() << " requires to select a single master!"; |
|
107 throwInvalidUsageException(err); |
|
108 } |
|
109 MasterDevice m(masterIndices.front()); |
|
110 |
|
111 if (getDataType().empty()) { |
103 if (getDataType().empty()) { |
112 if (args[1] == "-") { |
104 if (args[1] == "-") { |
113 loadRegData(&data, cin); |
105 loadRegData(&data, cin); |
114 } else { |
106 } else { |
115 file.open(args[1].c_str(), ifstream::in | ifstream::binary); |
107 file.open(args[1].c_str(), ifstream::in | ifstream::binary); |
155 err << "Offset and length exceeding 64k!"; |
147 err << "Offset and length exceeding 64k!"; |
156 delete [] data.data; |
148 delete [] data.data; |
157 throwInvalidUsageException(err); |
149 throwInvalidUsageException(err); |
158 } |
150 } |
159 |
151 |
|
152 MasterDevice m(getSingleMasterIndex()); |
160 try { |
153 try { |
161 m.open(MasterDevice::ReadWrite); |
154 m.open(MasterDevice::ReadWrite); |
162 } catch (MasterDeviceException &e) { |
155 } catch (MasterDeviceException &e) { |
163 delete [] data.data; |
156 delete [] data.data; |
164 throw e; |
157 throw e; |