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

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

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

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

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

示例1: vhost_net_set_features

static int vhost_net_set_features(struct vhost_net *n, u64 features){	size_t vhost_hlen, sock_hlen, hdr_len;	int i;	hdr_len = (features & (1 << VIRTIO_NET_F_MRG_RXBUF)) ?			sizeof(struct virtio_net_hdr_mrg_rxbuf) :			sizeof(struct virtio_net_hdr);	if (features & (1 << VHOST_NET_F_VIRTIO_NET_HDR)) {		/* vhost provides vnet_hdr */		vhost_hlen = hdr_len;		sock_hlen = 0;	} else {		/* socket provides vnet_hdr */		vhost_hlen = 0;		sock_hlen = hdr_len;	}	mutex_lock(&n->dev.mutex);	if ((features & (1 << VHOST_F_LOG_ALL)) &&	    !vhost_log_access_ok(&n->dev)) {		mutex_unlock(&n->dev.mutex);		return -EFAULT;	}	n->dev.acked_features = features;	smp_wmb();	for (i = 0; i < VHOST_NET_VQ_MAX; ++i) {		mutex_lock(&n->vqs[i].vq.mutex);		n->vqs[i].vhost_hlen = vhost_hlen;		n->vqs[i].sock_hlen = sock_hlen;		mutex_unlock(&n->vqs[i].vq.mutex);	}	vhost_net_flush(n);	mutex_unlock(&n->dev.mutex);	return 0;}
开发者ID:Master-Traders,项目名称:linux,代码行数:35,


示例2: vhost_net_reset_owner

static long vhost_net_reset_owner(struct vhost_net *n){	struct socket *tx_sock = NULL;	struct socket *rx_sock = NULL;	long err;	struct vhost_memory *memory;	mutex_lock(&n->dev.mutex);	err = vhost_dev_check_owner(&n->dev);	if (err)		goto done;	memory = vhost_dev_reset_owner_prepare();	if (!memory) {		err = -ENOMEM;		goto done;	}	vhost_net_stop(n, &tx_sock, &rx_sock);	vhost_net_flush(n);	vhost_dev_reset_owner(&n->dev, memory);	vhost_net_vq_reset(n);done:	mutex_unlock(&n->dev.mutex);	if (tx_sock)		sockfd_put(tx_sock);	if (rx_sock)		sockfd_put(rx_sock);	return err;}
开发者ID:383530895,项目名称:linux,代码行数:28,


示例3: vhost_net_ioctl

static long vhost_net_ioctl(struct file *f, unsigned int ioctl,			    unsigned long arg){	struct vhost_net *n = f->private_data;	void __user *argp = (void __user *)arg;	u64 __user *featurep = argp;	struct vhost_vring_file backend;	u64 features;	int r;	switch (ioctl) {	case VHOST_NET_SET_BACKEND:		if (copy_from_user(&backend, argp, sizeof backend))			return -EFAULT;		return vhost_net_set_backend(n, backend.index, backend.fd);	case VHOST_GET_FEATURES:		features = VHOST_FEATURES;		if (copy_to_user(featurep, &features, sizeof features))			return -EFAULT;		return 0;	case VHOST_SET_FEATURES:		if (copy_from_user(&features, featurep, sizeof features))			return -EFAULT;		if (features & ~VHOST_FEATURES)			return -EOPNOTSUPP;		return vhost_net_set_features(n, features);	case VHOST_RESET_OWNER:		return vhost_net_reset_owner(n);	default:		mutex_lock(&n->dev.mutex);		r = vhost_dev_ioctl(&n->dev, ioctl, arg);		vhost_net_flush(n);		mutex_unlock(&n->dev.mutex);		return r;	}}
开发者ID:daveti,项目名称:prov-kernel,代码行数:35,


示例4: vhost_net_release

static int vhost_net_release(struct inode *inode, struct file *f){	struct vhost_net *n = f->private_data;	struct socket *tx_sock;	struct socket *rx_sock;	vhost_net_stop(n, &tx_sock, &rx_sock);	vhost_net_flush(n);	vhost_dev_cleanup(&n->dev, false);	if (tx_sock)		fput(tx_sock->file);	if (rx_sock)		fput(rx_sock->file);	/* We do an extra flush before freeing memory,	 * since jobs can re-queue themselves. */	vhost_net_flush(n);	kfree(n);	return 0;}
开发者ID:Av3ng3,项目名称:Lamobo-D1s,代码行数:19,


示例5: vhost_net_release

static int vhost_net_release(struct inode *inode, struct file *f){	struct vhost_net *n = f->private_data;	struct socket *tx_sock;	struct socket *rx_sock;	vhost_net_stop(n, &tx_sock, &rx_sock);	vhost_net_flush(n);	vhost_dev_stop(&n->dev);	vhost_dev_cleanup(&n->dev, false);	vhost_net_vq_reset(n);	if (tx_sock)		sockfd_put(tx_sock);	if (rx_sock)		sockfd_put(rx_sock);	/* Make sure no callbacks are outstanding */	synchronize_rcu_bh();	/* We do an extra flush before freeing memory,	 * since jobs can re-queue themselves. */	vhost_net_flush(n);	kfree(n->dev.vqs);	kvfree(n);	return 0;}
开发者ID:383530895,项目名称:linux,代码行数:24,


示例6: vhost_net_set_owner

static long vhost_net_set_owner(struct vhost_net *n){	int r;	mutex_lock(&n->dev.mutex);	if (vhost_dev_has_owner(&n->dev)) {		r = -EBUSY;		goto out;	}	r = vhost_net_set_ubuf_info(n);	if (r)		goto out;	r = vhost_dev_set_owner(&n->dev);	if (r)		vhost_net_clear_ubuf_info(n);	vhost_net_flush(n);out:	mutex_unlock(&n->dev.mutex);	return r;}
开发者ID:383530895,项目名称:linux,代码行数:20,


示例7: vhost_net_reset_owner

static long vhost_net_reset_owner(struct vhost_net *n){	struct socket *tx_sock = NULL;	struct socket *rx_sock = NULL;	long err;	mutex_lock(&n->dev.mutex);	err = vhost_dev_check_owner(&n->dev);	if (err)		goto done;	vhost_net_stop(n, &tx_sock, &rx_sock);	vhost_net_flush(n);	err = vhost_dev_reset_owner(&n->dev);done:	mutex_unlock(&n->dev.mutex);	if (tx_sock)		fput(tx_sock->file);	if (rx_sock)		fput(rx_sock->file);	return err;}
开发者ID:daveti,项目名称:prov-kernel,代码行数:20,


示例8: vhost_net_set_features

static int vhost_net_set_features(struct vhost_net *n, u64 features){	size_t hdr_size = features & (1 << VHOST_NET_F_VIRTIO_NET_HDR) ?		sizeof(struct virtio_net_hdr) : 0;	int i;	mutex_lock(&n->dev.mutex);	if ((features & (1 << VHOST_F_LOG_ALL)) &&	    !vhost_log_access_ok(&n->dev)) {		mutex_unlock(&n->dev.mutex);		return -EFAULT;	}	n->dev.acked_features = features;	smp_wmb();	for (i = 0; i < VHOST_NET_VQ_MAX; ++i) {		mutex_lock(&n->vqs[i].mutex);		n->vqs[i].hdr_size = hdr_size;		mutex_unlock(&n->vqs[i].mutex);	}	vhost_net_flush(n);	mutex_unlock(&n->dev.mutex);	return 0;}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:22,



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


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