MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ionic_identify

Function ionic_identify

dpdk/drivers/net/ionic/ionic_main.c:364–400  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

362}
363
364int
365ionic_identify(struct ionic_adapter *adapter)
366{
367 struct ionic_dev *idev = &adapter->idev;
368 struct ionic_identity *ident = &adapter->ident;
369 uint32_t drv_size = RTE_DIM(ident->drv.words);
370 uint32_t cmd_size = RTE_DIM(idev->dev_cmd->data);
371 uint32_t dev_size = RTE_DIM(ident->dev.words);
372 uint32_t i, nwords;
373 int err;
374
375 memset(ident, 0, sizeof(*ident));
376
377 ident->drv.os_type = IONIC_OS_TYPE_LINUX;
378 ident->drv.os_dist = 0;
379 snprintf(ident->drv.os_dist_str,
380 sizeof(ident->drv.os_dist_str), "Unknown");
381 ident->drv.kernel_ver = 0;
382 snprintf(ident->drv.kernel_ver_str,
383 sizeof(ident->drv.kernel_ver_str), "DPDK");
384 strncpy(ident->drv.driver_ver_str, IONIC_DRV_VERSION,
385 sizeof(ident->drv.driver_ver_str) - 1);
386
387 nwords = RTE_MIN(drv_size, cmd_size);
388 for (i = 0; i < nwords; i++)
389 iowrite32(ident->drv.words[i], &idev->dev_cmd->data[i]);
390
391 ionic_dev_cmd_identify(idev, IONIC_IDENTITY_VERSION_1);
392 err = ionic_dev_cmd_wait_check(idev, IONIC_DEVCMD_TIMEOUT);
393 if (!err) {
394 nwords = RTE_MIN(dev_size, cmd_size);
395 for (i = 0; i < nwords; i++)
396 ident->dev.words[i] = ioread32(&idev->dev_cmd->data[i]);
397 }
398
399 return err;
400}
401
402int
403ionic_init(struct ionic_adapter *adapter)

Callers 1

eth_ionic_dev_probeFunction · 0.85

Calls 7

memsetFunction · 0.85
snprintfFunction · 0.85
strncpyFunction · 0.85
ionic_dev_cmd_identifyFunction · 0.85
ionic_dev_cmd_wait_checkFunction · 0.85
iowrite32Function · 0.50
ioread32Function · 0.50

Tested by

no test coverage detected