int ldpaa_eth_init(int dpmac_id, phy_interface_t enet_if) { struct eth_device *net_dev = NULL; struct ldpaa_eth_priv *priv = NULL; int err = 0; /* Net device */ net_dev = (struct eth_device *)malloc(sizeof(struct eth_device)); if (!net_dev) { printf("eth_device malloc() failed\n"); return -ENOMEM; } memset(net_dev, 0, sizeof(struct eth_device)); /* alloc the ldpaa ethernet private struct */ priv = (struct ldpaa_eth_priv *)malloc(sizeof(struct ldpaa_eth_priv)); if (!priv) { printf("ldpaa_eth_priv malloc() failed\n"); return -ENOMEM; } memset(priv, 0, sizeof(struct ldpaa_eth_priv)); net_dev->priv = (void *)priv; priv->net_dev = (struct eth_device *)net_dev; priv->dpmac_id = dpmac_id; debug("%s dpmac_id=%d\n", __func__, dpmac_id); err = ldpaa_eth_netdev_init(net_dev, enet_if); if (err) goto err_netdev_init; debug("ldpaa ethernet: Probed interface %s\n", net_dev->name); return 0; err_netdev_init: free(priv); net_dev->priv = NULL; free(net_dev); return err; }
int ldpaa_eth_init(struct dprc_obj_desc obj_desc) { struct eth_device *net_dev = NULL; struct ldpaa_eth_priv *priv = NULL; int err = 0; /* Net device */ net_dev = (struct eth_device *)malloc(sizeof(struct eth_device)); if (!net_dev) { printf("eth_device malloc() failed\n"); return -ENOMEM; } memset(net_dev, 0, sizeof(struct eth_device)); /* alloc the ldpaa ethernet private struct */ priv = (struct ldpaa_eth_priv *)malloc(sizeof(struct ldpaa_eth_priv)); if (!priv) { printf("ldpaa_eth_priv malloc() failed\n"); return -ENOMEM; } memset(priv, 0, sizeof(struct ldpaa_eth_priv)); net_dev->priv = (void *)priv; priv->net_dev = (struct eth_device *)net_dev; priv->dpni_id = obj_desc.id; err = ldpaa_eth_netdev_init(net_dev); if (err) goto err_netdev_init; debug("ldpaa ethernet: Probed interface %s\n", net_dev->name); return 0; err_netdev_init: free(priv); net_dev->priv = NULL; free(net_dev); return err; }