1#ifndef _QEMU_VIRTIO_9P_H 2#define _QEMU_VIRTIO_9P_H 3 4#include "standard-headers/linux/virtio_9p.h" 5#include "hw/virtio/virtio.h" 6#include "9p.h" 7 8typedef struct V9fsVirtioState 9{ 10 VirtIODevice parent_obj; 11 VirtQueue *vq; 12 size_t config_size; 13 V9fsPDU pdus[MAX_REQ]; 14 VirtQueueElement *elems[MAX_REQ]; 15 V9fsState state; 16} V9fsVirtioState; 17 18extern void virtio_9p_push_and_notify(V9fsPDU *pdu); 19 20ssize_t virtio_pdu_vmarshal(V9fsPDU *pdu, size_t offset, 21 const char *fmt, va_list ap); 22ssize_t virtio_pdu_vunmarshal(V9fsPDU *pdu, size_t offset, 23 const char *fmt, va_list ap); 24void virtio_init_iov_from_pdu(V9fsPDU *pdu, struct iovec **piov, 25 unsigned int *pniov, bool is_write); 26 27#define TYPE_VIRTIO_9P "virtio-9p-device" 28#define VIRTIO_9P(obj) \ 29 OBJECT_CHECK(V9fsVirtioState, (obj), TYPE_VIRTIO_9P) 30 31#endif 32