Skip to content

Commit 066ed22

Browse files
committed
pcm-tpmi: add -i instances option
Change-Id: I67c304949a454b09e0b9a741825654386bc68b79
1 parent 7973264 commit 066ed22

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

src/pcm-tpmi.cpp

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ void print_usage(const char * progname)
2929
std::cout << " -b low:high : read or write only low..high bits of the register\n";
3030
std::cout << " -e entries : perform read/write on specified entries (default is all entries)\n";
3131
std::cout << " (examples: -e 10 -e 10-11 -e 4,6,12-20,6)\n";
32+
std::cout << " -i instances: perform read/write on specified instances (default is all instances)\n";
33+
std::cout << " (examples: -i 1 -i 0,1 -i 0,2-3)\n";
3234
std::cout << " -d : output all numbers in dec (default is hex)\n";
3335
std::cout << " -v : verbose ouput\n";
3436
std::cout << " --version : print application version\n";
@@ -51,10 +53,10 @@ int mainThrows(int argc, char * argv[])
5153
bool write = false;
5254
bool dec = false;
5355
std::pair<int64,int64> bits{-1, -1};
54-
std::list<int> entries;
56+
std::list<int> entries, instances;
5557

5658
int my_opt = -1;
57-
while ((my_opt = getopt(argc, argv, "w:dvb:e:")) != -1)
59+
while ((my_opt = getopt(argc, argv, "w:dvb:e:i:")) != -1)
5860
{
5961
switch (my_opt)
6062
{
@@ -74,6 +76,9 @@ int mainThrows(int argc, char * argv[])
7476
case 'e':
7577
entries = extract_integer_list(optarg);
7678
break;
79+
case 'i':
80+
instances = extract_integer_list(optarg);
81+
break;
7782
default:
7883
print_usage(argv[0]);
7984
return -1;
@@ -106,8 +111,20 @@ int mainThrows(int argc, char * argv[])
106111

107112
try
108113
{
109-
for (size_t i = 0; i < TPMIHandle::getNumInstances(); ++i)
114+
if (instances.empty())
110115
{
116+
for (size_t i = 0; i < TPMIHandle::getNumInstances(); ++i)
117+
{
118+
instances.push_back(i);
119+
}
120+
}
121+
for (const size_t i : instances)
122+
{
123+
if (i >= TPMIHandle::getNumInstances())
124+
{
125+
std::cerr << "Instance " << i << " does not exist\n";
126+
continue;
127+
}
111128
TPMIHandle h(i, requestedID, requestedRelativeOffset, !write);
112129
auto one = [&](const size_t p)
113130
{

0 commit comments

Comments
 (0)