@@ -192,10 +192,11 @@ static bool printMetricsForAdapterGroup(void* pLibrary)
192
192
continue ;
193
193
}
194
194
195
- fprintf (stderr, " \n Adapter: %s (%s)\n " ,
195
+ fprintf (stderr, " \n Adapter %u: %s (%s)\n " ,
196
+ a,
196
197
pAdapterParams->ShortName ,
197
198
adapterTypeToString (pAdapterParams->Type ));
198
- fprintf (stderr, " PCI Vendor Id: %04X, Device Id: %04X, Bus Info: %02X:%02X.%02X\n " ,
199
+ fprintf (stderr, " \t PCI Vendor Id: %04X, Device Id: %04X, Bus Info: %02X:%02X.%02X\n " ,
199
200
pAdapterParams->VendorId ,
200
201
pAdapterParams->DeviceId ,
201
202
pAdapterParams->BusNumber ,
@@ -295,8 +296,6 @@ static bool printMetricsForLegacyDevice(void* pLibrary)
295
296
296
297
static bool printMetricsHelper ()
297
298
{
298
- TCompletionCode res = CC_OK;
299
-
300
299
void * pLibrary = OpenLibrary ();
301
300
if (pLibrary == NULL )
302
301
{
@@ -313,9 +312,108 @@ static bool printMetricsHelper()
313
312
return success;
314
313
}
315
314
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
+
316
409
};
317
410
318
411
static void printMetrics ()
319
412
{
320
413
MetricsDiscovery::printMetricsHelper ();
321
414
}
415
+
416
+ static void printMetricDevices ()
417
+ {
418
+ MetricsDiscovery::printMetricDevicesHelper ();
419
+ }
0 commit comments