@@ -132,7 +132,7 @@ static bool printMetricsForDevice(IMetricsDeviceLatest* pMetricsDevice)
132
132
return true ;
133
133
}
134
134
135
- static bool printMetricsForAdapterGroup (void * pLibrary)
135
+ static bool printMetricsForAdapterGroup (void * pLibrary, bool devicesOnly )
136
136
{
137
137
TCompletionCode res = CC_OK;
138
138
@@ -173,7 +173,7 @@ static bool printMetricsForAdapterGroup(void* pLibrary)
173
173
}
174
174
else
175
175
{
176
- fprintf (stderr, " Found %u MDAPI Adapter%s. \n \n" ,
176
+ fprintf (stderr, " Found %u MDAPI Adapter%s: \n " ,
177
177
pAdapterGroupParams->AdapterCount ,
178
178
pAdapterGroupParams->AdapterCount > 1 ? " s" : " " );
179
179
for (uint32_t a = 0 ; a < pAdapterGroupParams->AdapterCount ; a++)
@@ -192,7 +192,7 @@ static bool printMetricsForAdapterGroup(void* pLibrary)
192
192
continue ;
193
193
}
194
194
195
- fprintf (stderr, " \n Adapter %u: %s (%s)\n " ,
195
+ fprintf (stderr, " Adapter %u: %s (%s)\n " ,
196
196
a,
197
197
pAdapterParams->ShortName ,
198
198
adapterTypeToString (pAdapterParams->Type ));
@@ -202,22 +202,52 @@ static bool printMetricsForAdapterGroup(void* pLibrary)
202
202
pAdapterParams->BusNumber ,
203
203
pAdapterParams->DeviceNumber ,
204
204
pAdapterParams->FunctionNumber );
205
- fprintf (stderr, " ########################################\n\n " );
206
-
207
- IMetricsDeviceLatest* pMetricsDevice = NULL ;
208
- res = pAdapter->OpenMetricsDevice (&pMetricsDevice);
209
- if (res != CC_OK)
205
+ }
206
+ if (!devicesOnly)
207
+ {
208
+ for (uint32_t a = 0 ; a < pAdapterGroupParams->AdapterCount ; a++)
210
209
{
211
- fprintf (stderr, " OpenMetricsDevice failed, res: %d, skipping adapter.\n " , res);
212
- continue ;
213
- }
210
+ IAdapterLatest* pAdapter = pAdapterGroup->GetAdapter (a);
211
+ if (NULL == pAdapter)
212
+ {
213
+ fprintf (stderr, " AdapterGroup->GetAdapter() returned NULL, skipping adapter.\n " );
214
+ continue ;
215
+ }
214
216
215
- printMetricsForDevice (pMetricsDevice);
217
+ const TAdapterParamsLatest* pAdapterParams = pAdapter->GetParams ();
218
+ if (NULL == pAdapterParams)
219
+ {
220
+ fprintf (stderr, " Adapter->GetParams() returned NULL, skipping adapter.\n " );
221
+ continue ;
222
+ }
216
223
217
- res = pAdapter->CloseMetricsDevice (pMetricsDevice);
218
- if (res != CC_OK)
219
- {
220
- fprintf (stderr, " CloseMetricsDevice failed, res: %d\n " , res);
224
+ fprintf (stderr, " \n Adapter %u: %s (%s)\n " ,
225
+ a,
226
+ pAdapterParams->ShortName ,
227
+ adapterTypeToString (pAdapterParams->Type ));
228
+ fprintf (stderr, " \t PCI Vendor Id: %04X, Device Id: %04X, Bus Info: %02X:%02X.%02X\n " ,
229
+ pAdapterParams->VendorId ,
230
+ pAdapterParams->DeviceId ,
231
+ pAdapterParams->BusNumber ,
232
+ pAdapterParams->DeviceNumber ,
233
+ pAdapterParams->FunctionNumber );
234
+ fprintf (stderr, " ########################################\n\n " );
235
+
236
+ IMetricsDeviceLatest* pMetricsDevice = NULL ;
237
+ res = pAdapter->OpenMetricsDevice (&pMetricsDevice);
238
+ if (res != CC_OK)
239
+ {
240
+ fprintf (stderr, " OpenMetricsDevice failed, res: %d, skipping adapter.\n " , res);
241
+ continue ;
242
+ }
243
+
244
+ printMetricsForDevice (pMetricsDevice);
245
+
246
+ res = pAdapter->CloseMetricsDevice (pMetricsDevice);
247
+ if (res != CC_OK)
248
+ {
249
+ fprintf (stderr, " CloseMetricsDevice failed, res: %d\n " , res);
250
+ }
221
251
}
222
252
}
223
253
}
@@ -294,7 +324,7 @@ static bool printMetricsForLegacyDevice(void* pLibrary)
294
324
return true ;
295
325
}
296
326
297
- static bool printMetricsHelper ()
327
+ static bool printMetricsHelper (bool devicesOnly )
298
328
{
299
329
void * pLibrary = OpenLibrary ();
300
330
if (pLibrary == NULL )
@@ -303,117 +333,23 @@ static bool printMetricsHelper()
303
333
return false ;
304
334
}
305
335
306
- bool success = printMetricsForAdapterGroup (pLibrary);
307
- if (!success)
336
+ bool success = printMetricsForAdapterGroup (pLibrary, devicesOnly );
337
+ if (!success && !devicesOnly )
308
338
{
309
339
success = printMetricsForLegacyDevice (pLibrary);
310
340
}
311
341
312
342
return success;
313
343
}
314
344
315
- static bool printMetricDevicesForAdapterGroup (void * pLibrary)
316
- {
317
- TCompletionCode res = CC_OK;
318
-
319
- OpenAdapterGroup_fn OpenAdapterGroup;
320
- OpenAdapterGroup = (OpenAdapterGroup_fn)GetFunctionAddress (pLibrary, " OpenAdapterGroup" );
321
- if (OpenAdapterGroup == NULL )
322
- {
323
- fprintf (stderr, " Couldn't get pointer to OpenAdapterGroup!\n " );
324
- return false ;
325
- }
326
-
327
- IAdapterGroupLatest* pAdapterGroup = NULL ;
328
- res = OpenAdapterGroup (&pAdapterGroup);
329
- if (res != CC_OK)
330
- {
331
- fprintf (stderr, " OpenAdapterGroup failed, res: %d\n " , res);
332
- return false ;
333
- }
334
-
335
- const TAdapterGroupParamsLatest* pAdapterGroupParams = pAdapterGroup->GetParams ();
336
- if (NULL == pAdapterGroupParams)
337
- {
338
- fprintf (stderr, " AdapterGroup->GetParams() returned NULL\n " );
339
- return false ;
340
- }
341
-
342
- fprintf (stderr, " MDAPI Headers: v%d.%d.%d, MDAPI Lib: v%d.%d.%d\n " ,
343
- MD_API_MAJOR_NUMBER_CURRENT,
344
- MD_API_MINOR_NUMBER_CURRENT,
345
- MD_API_BUILD_NUMBER_CURRENT,
346
- pAdapterGroupParams->Version .MajorNumber ,
347
- pAdapterGroupParams->Version .MinorNumber ,
348
- pAdapterGroupParams->Version .BuildNumber );
349
- if (pAdapterGroupParams->Version .MajorNumber < 1 ||
350
- (pAdapterGroupParams->Version .MajorNumber == 1 && pAdapterGroupParams->Version .MinorNumber < 1 ))
351
- {
352
- fprintf (stderr, " MDAPI Lib version must be at least v1.1!\n " );
353
- }
354
- else
355
- {
356
- fprintf (stderr, " Found %u MDAPI Adapter%s.\n\n " ,
357
- pAdapterGroupParams->AdapterCount ,
358
- pAdapterGroupParams->AdapterCount > 1 ? " s" : " " );
359
- for (uint32_t a = 0 ; a < pAdapterGroupParams->AdapterCount ; a++)
360
- {
361
- IAdapterLatest* pAdapter = pAdapterGroup->GetAdapter (a);
362
- if (NULL == pAdapter)
363
- {
364
- fprintf (stderr, " AdapterGroup->GetAdapter() returned NULL, skipping adapter.\n " );
365
- continue ;
366
- }
367
-
368
- const TAdapterParamsLatest* pAdapterParams = pAdapter->GetParams ();
369
- if (NULL == pAdapterParams)
370
- {
371
- fprintf (stderr, " Adapter->GetParams() returned NULL, skipping adapter.\n " );
372
- continue ;
373
- }
374
-
375
- fprintf (stderr, " \n Adapter %u: %s (%s)\n " ,
376
- a,
377
- pAdapterParams->ShortName ,
378
- adapterTypeToString (pAdapterParams->Type ));
379
- fprintf (stderr, " \t PCI Vendor Id: %04X, Device Id: %04X, Bus Info: %02X:%02X.%02X\n " ,
380
- pAdapterParams->VendorId ,
381
- pAdapterParams->DeviceId ,
382
- pAdapterParams->BusNumber ,
383
- pAdapterParams->DeviceNumber ,
384
- pAdapterParams->FunctionNumber );
385
- }
386
- }
387
-
388
- res = pAdapterGroup->Close ();
389
- if (res != CC_OK)
390
- {
391
- fprintf (stderr, " AdapterGroup->Close() failed, res: %d\n " , res);
392
- }
393
-
394
- return true ;
395
- }
396
-
397
- static bool printMetricDevicesHelper ()
398
- {
399
- void * pLibrary = OpenLibrary ();
400
- if (pLibrary == NULL )
401
- {
402
- fprintf (stderr, " Couldn't load metrics discovery library!\n " );
403
- return false ;
404
- }
405
-
406
- return printMetricDevicesForAdapterGroup (pLibrary);
407
- }
408
-
409
345
};
410
346
411
347
static void printMetrics ()
412
348
{
413
- MetricsDiscovery::printMetricsHelper ();
349
+ MetricsDiscovery::printMetricsHelper (false );
414
350
}
415
351
416
352
static void printMetricDevices ()
417
353
{
418
- MetricsDiscovery::printMetricDevicesHelper ( );
354
+ MetricsDiscovery::printMetricsHelper ( true );
419
355
}
0 commit comments