 8aab0d1dbe
			
		
	
	
		8aab0d1dbe
		
	
	
	
	
		
			
			Add functions to support configure interrupt in virtio_net Add the functions to support vhost_net_config_pending and vhost_net_config_mask. Signed-off-by: Cindy Lu <lulu@redhat.com> Message-Id: <20221222070451.936503-9-lulu@redhat.com> Acked-by: Jason Wang <jasowang@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
		
			
				
	
	
		
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef VHOST_NET_H
 | |
| #define VHOST_NET_H
 | |
| 
 | |
| #include "net/net.h"
 | |
| #include "hw/virtio/vhost-backend.h"
 | |
| 
 | |
| #define VHOST_NET_INIT_FAILED \
 | |
|     "vhost-net requested but could not be initialized"
 | |
| 
 | |
| struct vhost_net;
 | |
| typedef struct vhost_net VHostNetState;
 | |
| 
 | |
| typedef struct VhostNetOptions {
 | |
|     VhostBackendType backend_type;
 | |
|     NetClientState *net_backend;
 | |
|     uint32_t busyloop_timeout;
 | |
|     unsigned int nvqs;
 | |
|     void *opaque;
 | |
| } VhostNetOptions;
 | |
| 
 | |
| uint64_t vhost_net_get_max_queues(VHostNetState *net);
 | |
| struct vhost_net *vhost_net_init(VhostNetOptions *options);
 | |
| 
 | |
| int vhost_net_start(VirtIODevice *dev, NetClientState *ncs,
 | |
|                     int data_queue_pairs, int cvq);
 | |
| void vhost_net_stop(VirtIODevice *dev, NetClientState *ncs,
 | |
|                     int data_queue_pairs, int cvq);
 | |
| 
 | |
| void vhost_net_cleanup(VHostNetState *net);
 | |
| 
 | |
| uint64_t vhost_net_get_features(VHostNetState *net, uint64_t features);
 | |
| void vhost_net_ack_features(VHostNetState *net, uint64_t features);
 | |
| 
 | |
| int vhost_net_get_config(struct vhost_net *net,  uint8_t *config,
 | |
|                          uint32_t config_len);
 | |
| 
 | |
| int vhost_net_set_config(struct vhost_net *net, const uint8_t *data,
 | |
|                          uint32_t offset, uint32_t size, uint32_t flags);
 | |
| bool vhost_net_virtqueue_pending(VHostNetState *net, int n);
 | |
| void vhost_net_virtqueue_mask(VHostNetState *net, VirtIODevice *dev,
 | |
|                               int idx, bool mask);
 | |
| bool vhost_net_config_pending(VHostNetState *net);
 | |
| void vhost_net_config_mask(VHostNetState *net, VirtIODevice *dev, bool mask);
 | |
| int vhost_net_notify_migration_done(VHostNetState *net, char* mac_addr);
 | |
| VHostNetState *get_vhost_net(NetClientState *nc);
 | |
| 
 | |
| int vhost_set_vring_enable(NetClientState * nc, int enable);
 | |
| 
 | |
| uint64_t vhost_net_get_acked_features(VHostNetState *net);
 | |
| 
 | |
| int vhost_net_set_mtu(struct vhost_net *net, uint16_t mtu);
 | |
| 
 | |
| void vhost_net_virtqueue_reset(VirtIODevice *vdev, NetClientState *nc,
 | |
|                                int vq_index);
 | |
| int vhost_net_virtqueue_restart(VirtIODevice *vdev, NetClientState *nc,
 | |
|                                 int vq_index);
 | |
| 
 | |
| void vhost_net_save_acked_features(NetClientState *nc);
 | |
| #endif
 |