您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ usbnet_get_endpoints函数代码示例

51自学网 2021-06-03 09:22:36
  C++
这篇教程C++ usbnet_get_endpoints函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中usbnet_get_endpoints函数的典型用法代码示例。如果您正苦于以下问题:C++ usbnet_get_endpoints函数的具体用法?C++ usbnet_get_endpoints怎么用?C++ usbnet_get_endpoints使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了usbnet_get_endpoints函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: smsc95xx_bind

static int smsc95xx_bind(struct usbnet *dev){	struct smsc95xx_priv *pdata = NULL;	int ret;	printf(SMSC_CHIPNAME " v" SMSC_DRIVER_VERSION "/n");	ret = usbnet_get_endpoints(dev);	if (ret < 0) {		netdev_warn(dev->net, "usbnet_get_endpoints failed: %d/n", ret);		return ret;	}	dev->data[0] = (unsigned long)malloc(sizeof(struct smsc95xx_priv));	pdata = (struct smsc95xx_priv *)(dev->data[0]);	if (!pdata) {		netdev_warn(dev->net, "Unable to allocate struct smsc95xx_priv/n");		return -ENOMEM;	}	pdata->use_tx_csum = DEFAULT_TX_CSUM_ENABLE;	pdata->use_rx_csum = DEFAULT_RX_CSUM_ENABLE;	/* Init all registers */	ret = smsc95xx_reset(dev);	dev->edev.get_ethaddr = smsc95xx_get_ethaddr;	dev->edev.set_ethaddr = smsc95xx_set_ethaddr;	mdiobus_register(&dev->miibus);	return 0;}
开发者ID:MinimumLaw,项目名称:ravion-barebox,代码行数:33,


示例2: net1080_bind

static int net1080_bind(struct usbnet *dev, struct usb_interface *intf){	unsigned	extra = sizeof (struct nc_header)				+ 1				+ sizeof (struct nc_trailer);	dev->net->hard_header_len += extra;	dev->rx_urb_size = dev->net->hard_header_len + dev->net->mtu;	dev->hard_mtu = NC_MAX_PACKET;	return usbnet_get_endpoints (dev, intf);}
开发者ID:020gzh,项目名称:linux,代码行数:11,


示例3: int51x1_bind

static int int51x1_bind(struct usbnet *dev, struct usb_interface *intf){	int status = usbnet_get_ethernet_addr(dev, 3);	if (status)		return status;	dev->net->hard_header_len += INT51X1_HEADER_SIZE;	dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;	dev->net->netdev_ops = &int51x1_netdev_ops;	return usbnet_get_endpoints(dev, intf);}
开发者ID:romanbb,项目名称:android_kernel_lge_d851,代码行数:13,


示例4: qmi_wwan_register_subdriver

/* collect all three endpoints and register subdriver */static int qmi_wwan_register_subdriver(struct usbnet *dev){	int rv;	struct usb_driver *subdriver = NULL;	struct qmi_wwan_state *info = (void *)&dev->data;	/* collect bulk endpoints */	rv = usbnet_get_endpoints(dev, info->data);	if (rv < 0)		goto err;	/* update status endpoint if separate control interface */	if (info->control != info->data)		dev->status = &info->control->cur_altsetting->endpoint[0];	/* require interrupt endpoint for subdriver */	if (!dev->status) {		rv = -EINVAL;		goto err;	}	/* for subdriver power management */	atomic_set(&info->pmcount, 0);	/* register subdriver */	subdriver = usb_cdc_wdm_register(info->control, &dev->status->desc,					 4096, &qmi_wwan_cdc_wdm_manage_power);	if (IS_ERR(subdriver)) {		dev_err(&info->control->dev, "subdriver registration failed/n");		rv = PTR_ERR(subdriver);		goto err;	}	/* prevent usbnet from using status endpoint */	dev->status = NULL;	/* save subdriver struct for suspend/resume wrappers */	info->subdriver = subdriver;err:	return rv;}
开发者ID:Taran2ul,项目名称:rt-n56u,代码行数:43,


示例5: usbnet_probe

intusbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod){	struct usbnet			*dev;	struct net_device		*net;	struct usb_host_interface	*interface;	struct driver_info		*info;	struct usb_device		*xdev;	int				status;	const char			*name;	name = udev->dev.driver->name;	info = (struct driver_info *) prod->driver_info;	if (!info) {		dev_dbg (&udev->dev, "blacklisted by %s/n", name);		return -ENODEV;	}	xdev = interface_to_usbdev (udev);	interface = udev->cur_altsetting;	usb_get_dev (xdev);	status = -ENOMEM;	// set up our own records	net = alloc_etherdev(sizeof(*dev));	if (!net) {		dbg ("can't kmalloc dev");		goto out;	}	dev = netdev_priv(net);	dev->udev = xdev;	dev->intf = udev;	dev->driver_info = info;	dev->driver_name = name;	dev->msg_enable = netif_msg_init (msg_level, NETIF_MSG_DRV				| NETIF_MSG_PROBE | NETIF_MSG_LINK);	skb_queue_head_init (&dev->rxq);	skb_queue_head_init (&dev->txq);	skb_queue_head_init (&dev->done);	skb_queue_head_init(&dev->rxq_pause);	dev->bh.func = usbnet_bh;	dev->bh.data = (unsigned long) dev;	INIT_WORK (&dev->kevent, kevent);	init_usb_anchor(&dev->deferred);	dev->delay.function = usbnet_bh;	dev->delay.data = (unsigned long) dev;	init_timer (&dev->delay);	mutex_init (&dev->phy_mutex);	dev->net = net;	strcpy (net->name, "usb%d");	memcpy (net->dev_addr, node_id, sizeof node_id);	/* rx and tx sides can use different message sizes;	 * bind() should set rx_urb_size in that case.	 */	dev->hard_mtu = net->mtu + net->hard_header_len;#if 0// dma_supported() is deeply broken on almost all architectures	// possible with some EHCI controllers	if (dma_supported (&udev->dev, DMA_BIT_MASK(64)))		net->features |= NETIF_F_HIGHDMA;#endif	net->netdev_ops = &usbnet_netdev_ops;	net->watchdog_timeo = TX_TIMEOUT_JIFFIES;	net->ethtool_ops = &usbnet_ethtool_ops;	// allow device-specific bind/init procedures	// NOTE net->name still not usable ...	if (info->bind) {		status = info->bind (dev, udev);		if (status < 0)			goto out1;		// heuristic:  "usb%d" for links we know are two-host,		// else "eth%d" when there's reasonable doubt.  userspace		// can rename the link if it knows better.		if ((dev->driver_info->flags & FLAG_ETHER) != 0 &&		    (net->dev_addr [0] & 0x02) == 0)			strcpy (net->name, "eth%d");		/* WLAN devices should always be named "wlan%d" */		if ((dev->driver_info->flags & FLAG_WLAN) != 0)			strcpy(net->name, "wlan%d");		/* WWAN devices should always be named "wwan%d" */		if ((dev->driver_info->flags & FLAG_WWAN) != 0)			strcpy(net->name, "wwan%d");		/* maybe the remote can't receive an Ethernet MTU */		if (net->mtu > (dev->hard_mtu - net->hard_header_len))			net->mtu = dev->hard_mtu - net->hard_header_len;	} else if (!info->in || !info->out)		status = usbnet_get_endpoints (dev, udev);	else {		dev->in = usb_rcvbulkpipe (xdev, info->in);		dev->out = usb_sndbulkpipe (xdev, info->out);		if (!(info->flags & FLAG_NO_SETINT))			status = usb_set_interface (xdev,//.........这里部分代码省略.........
开发者ID:A2109devs,项目名称:lenovo_a2109a_kernel,代码行数:101,


示例6: usbnet_generic_cdc_bind

//.........这里部分代码省略.........				dev_dbg(&intf->dev, "extra MDLM descriptor/n");				goto bad_desc;			}			desc = (void *)buf;			if (desc->bLength != sizeof(*desc))				goto bad_desc;			if (memcmp(&desc->bGUID, mbm_guid, 16))				goto bad_desc;			break;		case USB_CDC_MDLM_DETAIL_TYPE:			if (detail) {				dev_dbg(&intf->dev, "extra MDLM detail descriptor/n");				goto bad_desc;			}			detail = (void *)buf;			if (detail->bGuidDescriptorType == 0) {				if (detail->bLength < (sizeof(*detail) + 1))					goto bad_desc;			} else				goto bad_desc;			break;		}next_desc:		len -= buf [0];	/* bLength */		buf += buf [0];	}	/* Microsoft ActiveSync based and some regular RNDIS devices lack the	 * CDC descriptors, so we'll hard-wire the interfaces and not check	 * for descriptors.	 *	 * Some Android RNDIS devices have a CDC Union descriptor pointing	 * to non-existing interfaces.  Ignore that and attempt the same	 * hard-wired 0 and 1 interfaces.	 */	if (rndis && (!info->u || android_rndis_quirk)) {		info->control = usb_ifnum_to_if(dev->udev, 0);		info->data = usb_ifnum_to_if(dev->udev, 1);		if (!info->control || !info->data || info->control != intf) {			dev_dbg(&intf->dev,				"rndis: master #0/%p slave #1/%p/n",				info->control,				info->data);			goto bad_desc;		}	} else if (!info->header || !info->u || (!rndis && !info->ether)) {		dev_dbg(&intf->dev, "missing cdc %s%s%sdescriptor/n",			info->header ? "" : "header ",			info->u ? "" : "union ",			info->ether ? "" : "ether ");		goto bad_desc;	}	/* claim data interface and set it up ... with side effects.	 * network traffic can't flow until an altsetting is enabled.	 */	status = usb_driver_claim_interface(driver, info->data, dev);	if (status < 0)		return status;	status = usbnet_get_endpoints(dev, info->data);	if (status < 0) {		/* ensure immediate exit from usbnet_disconnect */		usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return status;	}	/* status endpoint: optional for CDC Ethernet, not RNDIS (or ACM) */	dev->status = NULL;	if (info->control->cur_altsetting->desc.bNumEndpoints == 1) {		struct usb_endpoint_descriptor	*desc;		dev->status = &info->control->cur_altsetting->endpoint [0];		desc = &dev->status->desc;		if (!usb_endpoint_is_int_in(desc) ||		    (le16_to_cpu(desc->wMaxPacketSize)		     < sizeof(struct usb_cdc_notification)) ||		    !desc->bInterval) {			dev_dbg(&intf->dev, "bad notification endpoint/n");			dev->status = NULL;		}	}	if (rndis && !dev->status) {		dev_dbg(&intf->dev, "missing RNDIS status endpoint/n");		usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return -ENODEV;	}	return 0;bad_desc:	dev_info(&dev->udev->dev, "bad CDC descriptors/n");	return -ENODEV;}
开发者ID:nannaniel,项目名称:linux-2.6.35.3-imx28,代码行数:101,


示例7: usbnet_generic_cdc_bind

//.........这里部分代码省略.........		/* because of Zaurus, we may be ignoring the host		 * side link address we were given.		 */	}	if (header.usb_cdc_mdlm_desc &&		memcmp(header.usb_cdc_mdlm_desc->bGUID, mbm_guid, 16)) {		dev_dbg(&intf->dev, "GUID doesn't match/n");		goto bad_desc;	}	if (header.usb_cdc_mdlm_detail_desc &&		header.usb_cdc_mdlm_detail_desc->bLength <			(sizeof(struct usb_cdc_mdlm_detail_desc) + 1)) {		dev_dbg(&intf->dev, "Descriptor too short/n");		goto bad_desc;	}	/* Microsoft ActiveSync based and some regular RNDIS devices lack the	 * CDC descriptors, so we'll hard-wire the interfaces and not check	 * for descriptors.	 *	 * Some Android RNDIS devices have a CDC Union descriptor pointing	 * to non-existing interfaces.  Ignore that and attempt the same	 * hard-wired 0 and 1 interfaces.	 */	if (rndis && (!info->u || android_rndis_quirk)) {		info->control = usb_ifnum_to_if(dev->udev, 0);		info->data = usb_ifnum_to_if(dev->udev, 1);		if (!info->control || !info->data || info->control != intf) {			dev_dbg(&intf->dev,				"rndis: master #0/%p slave #1/%p/n",				info->control,				info->data);			goto bad_desc;		}	} else if (!info->header || !info->u || (!rndis && !info->ether)) {		dev_dbg(&intf->dev, "missing cdc %s%s%sdescriptor/n",			info->header ? "" : "header ",			info->u ? "" : "union ",			info->ether ? "" : "ether ");		goto bad_desc;	}	/* claim data interface and set it up ... with side effects.	 * network traffic can't flow until an altsetting is enabled.	 */	if (info->data != info->control) {		status = usb_driver_claim_interface(driver, info->data, dev);		if (status < 0)			return status;	}	status = usbnet_get_endpoints(dev, info->data);	if (status < 0) {		/* ensure immediate exit from usbnet_disconnect */		usb_set_intfdata(info->data, NULL);		if (info->data != info->control)			usb_driver_release_interface(driver, info->data);		return status;	}	/* status endpoint: optional for CDC Ethernet, not RNDIS (or ACM) */	if (info->data != info->control)		dev->status = NULL;	if (info->control->cur_altsetting->desc.bNumEndpoints == 1) {		struct usb_endpoint_descriptor	*desc;		dev->status = &info->control->cur_altsetting->endpoint [0];		desc = &dev->status->desc;		if (!usb_endpoint_is_int_in(desc) ||		    (le16_to_cpu(desc->wMaxPacketSize)		     < sizeof(struct usb_cdc_notification)) ||		    !desc->bInterval) {			dev_dbg(&intf->dev, "bad notification endpoint/n");			dev->status = NULL;		}	}	if (rndis && !dev->status) {		dev_dbg(&intf->dev, "missing RNDIS status endpoint/n");		usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return -ENODEV;	}	/* Some devices don't initialise properly. In particular	 * the packet filter is not reset. There are devices that	 * don't do reset all the way. So the packet filter should	 * be set to a sane initial value.	 */	usbnet_cdc_update_filter(dev);	return 0;bad_desc:	dev_info(&dev->udev->dev, "bad CDC descriptors/n");	return -ENODEV;}
开发者ID:OSPro,项目名称:wpj344_compatwireless,代码行数:101,


示例8: usbnet_generic_cdc_bind

//.........这里部分代码省略.........			info->ether = (void *) buf;			if (info->ether->bLength != sizeof *info->ether) {				dev_dbg(&intf->dev, "CDC ether len %u/n",					info->ether->bLength);				goto bad_desc;			}			dev->hard_mtu = le16_to_cpu(						info->ether->wMaxSegmentSize);			break;		case USB_CDC_MDLM_TYPE:			if (desc) {				dev_dbg(&intf->dev, "extra MDLM descriptor/n");				goto bad_desc;			}			desc = (void *)buf;			if (desc->bLength != sizeof(*desc))				goto bad_desc;			if (memcmp(&desc->bGUID, mbm_guid, 16))				goto bad_desc;			break;		case USB_CDC_MDLM_DETAIL_TYPE:			if (detail) {				dev_dbg(&intf->dev, "extra MDLM detail descriptor/n");				goto bad_desc;			}			detail = (void *)buf;			if (detail->bGuidDescriptorType == 0) {				if (detail->bLength < (sizeof(*detail) + 1))					goto bad_desc;			} else				goto bad_desc;			break;		}next_desc:		len -= buf [0];			buf += buf [0];	}	if (rndis && (!info->u || android_rndis_quirk)) {		info->control = usb_ifnum_to_if(dev->udev, 0);		info->data = usb_ifnum_to_if(dev->udev, 1);		if (!info->control || !info->data || info->control != intf) {			dev_dbg(&intf->dev,				"rndis: master #0/%p slave #1/%p/n",				info->control,				info->data);			goto bad_desc;		}	} else if (!info->header || !info->u || (!rndis && !info->ether)) {		dev_dbg(&intf->dev, "missing cdc %s%s%sdescriptor/n",			info->header ? "" : "header ",			info->u ? "" : "union ",			info->ether ? "" : "ether ");		goto bad_desc;	}	status = usb_driver_claim_interface(driver, info->data, dev);	if (status < 0)		return status;	status = usbnet_get_endpoints(dev, info->data);	if (status < 0) {				usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return status;	}		dev->status = NULL;	if (info->control->cur_altsetting->desc.bNumEndpoints == 1) {		struct usb_endpoint_descriptor	*desc;		dev->status = &info->control->cur_altsetting->endpoint [0];		desc = &dev->status->desc;		if (!usb_endpoint_is_int_in(desc) ||		    (le16_to_cpu(desc->wMaxPacketSize)		     < sizeof(struct usb_cdc_notification)) ||		    !desc->bInterval) {			dev_dbg(&intf->dev, "bad notification endpoint/n");			dev->status = NULL;		}	}	if (rndis && !dev->status) {		dev_dbg(&intf->dev, "missing RNDIS status endpoint/n");		usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return -ENODEV;	}	return 0;bad_desc:	dev_info(&dev->udev->dev, "bad CDC descriptors/n");	return -ENODEV;}
开发者ID:droidcore,项目名称:kangaroo-m7-mkv,代码行数:101,


示例9: ax88172a_bind

static int ax88172a_bind(struct usbnet *dev, struct usb_interface *intf){	int ret;	u8 buf[ETH_ALEN];	struct ax88172a_private *priv;	usbnet_get_endpoints(dev, intf);	priv = kzalloc(sizeof(*priv), GFP_KERNEL);	if (!priv)		return -ENOMEM;	dev->driver_priv = priv;	/* Get the MAC address */	ret = asix_read_cmd(dev, AX_CMD_READ_NODE_ID, 0, 0, ETH_ALEN, buf, 0);	if (ret < 0) {		netdev_err(dev->net, "Failed to read MAC address: %d/n", ret);		goto free;	}	memcpy(dev->net->dev_addr, buf, ETH_ALEN);	dev->net->netdev_ops = &ax88172a_netdev_ops;	dev->net->ethtool_ops = &ax88172a_ethtool_ops;	/* are we using the internal or the external phy? */	ret = asix_read_cmd(dev, AX_CMD_SW_PHY_STATUS, 0, 0, 1, buf, 0);	if (ret < 0) {		netdev_err(dev->net, "Failed to read software interface selection register: %d/n",			   ret);		goto free;	}	netdev_dbg(dev->net, "AX_CMD_SW_PHY_STATUS = 0x%02x/n", buf[0]);	switch (buf[0] & AX_PHY_SELECT_MASK) {	case AX_PHY_SELECT_INTERNAL:		netdev_dbg(dev->net, "use internal phy/n");		priv->use_embdphy = 1;		break;	case AX_PHY_SELECT_EXTERNAL:		netdev_dbg(dev->net, "use external phy/n");		priv->use_embdphy = 0;		break;	default:		netdev_err(dev->net, "Interface mode not supported by driver/n");		ret = -ENOTSUPP;		goto free;	}	priv->phy_addr = asix_read_phy_addr(dev, priv->use_embdphy);	ax88172a_reset_phy(dev, priv->use_embdphy);	/* Asix framing packs multiple eth frames into a 2K usb bulk transfer */	if (dev->driver_info->flags & FLAG_FRAMING_AX) {		/* hard_mtu  is still the default - the device does not support		   jumbo eth frames */		dev->rx_urb_size = 2048;	}	/* init MDIO bus */	ret = ax88172a_init_mdio(dev);	if (ret)		goto free;	return 0;free:	kfree(priv);	return ret;}
开发者ID:AshishNamdev,项目名称:linux,代码行数:70,


示例10: usbnet_generic_cdc_bind

//.........这里部分代码省略.........					"master #%u/%p slave #%u/%p/n",					info->u->bMasterInterface0,					info->control,					info->u->bSlaveInterface0,					info->data);				goto bad_desc;			}			if (info->control != intf) {				dev_dbg(&intf->dev, "bogus CDC Union/n");				/* Ambit USB Cable Modem (and maybe others)				 * interchanges master and slave interface.				 */				if (info->data == intf) {					info->data = info->control;					info->control = intf;				} else					goto bad_desc;			}			/* a data interface altsetting does the real i/o */			d = &info->data->cur_altsetting->desc;			if (d->bInterfaceClass != USB_CLASS_CDC_DATA) {				dev_dbg(&intf->dev, "slave class %u/n",					d->bInterfaceClass);				goto bad_desc;			}			break;		case USB_CDC_ETHERNET_TYPE:			if (info->ether) {				dev_dbg(&intf->dev, "extra CDC ether/n");				goto bad_desc;			}			info->ether = (void *) buf;			if (info->ether->bLength != sizeof *info->ether) {				dev_dbg(&intf->dev, "CDC ether len %u/n",					info->ether->bLength);				goto bad_desc;			}			dev->hard_mtu = le16_to_cpu(						info->ether->wMaxSegmentSize);			/* because of Zaurus, we may be ignoring the host			 * side link address we were given.			 */			break;		}next_desc:		len -= buf [0];	/* bLength */		buf += buf [0];	}	if (!info->header || !info->u || (!rndis && !info->ether)) {		dev_dbg(&intf->dev, "missing cdc %s%s%sdescriptor/n",			info->header ? "" : "header ",			info->u ? "" : "union ",			info->ether ? "" : "ether ");		goto bad_desc;	}	/* claim data interface and set it up ... with side effects.	 * network traffic can't flow until an altsetting is enabled.	 */	status = usb_driver_claim_interface(driver, info->data, dev);	if (status < 0)		return status;	status = usbnet_get_endpoints(dev, info->data);	if (status < 0) {		/* ensure immediate exit from usbnet_disconnect */		usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return status;	}	/* status endpoint: optional for CDC Ethernet, not RNDIS (or ACM) */	dev->status = NULL;	if (info->control->cur_altsetting->desc.bNumEndpoints == 1) {		struct usb_endpoint_descriptor	*desc;		dev->status = &info->control->cur_altsetting->endpoint [0];		desc = &dev->status->desc;		if (desc->bmAttributes != USB_ENDPOINT_XFER_INT				|| !(desc->bEndpointAddress & USB_DIR_IN)				|| (le16_to_cpu(desc->wMaxPacketSize)					< sizeof(struct usb_cdc_notification))				|| !desc->bInterval) {			dev_dbg(&intf->dev, "bad notification endpoint/n");			dev->status = NULL;		}	}	if (rndis && !dev->status) {		dev_dbg(&intf->dev, "missing RNDIS status endpoint/n");		usb_set_intfdata(info->data, NULL);		usb_driver_release_interface(driver, info->data);		return -ENODEV;	}	return 0;bad_desc:	dev_info(&dev->udev->dev, "bad CDC descriptors/n");	return -ENODEV;}
开发者ID:BackupTheBerlios,项目名称:tew632-brp-svn,代码行数:101,



注:本文中的usbnet_get_endpoints函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ usbnet_resume函数代码示例
C++ usbnet_defer_kevent函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。