6da32fe5ef
virtio-fs qualifies as a bootable device minimally under OVMF, but currently the necessary "bootindex" property is missing. Add the property. Expose the property only in the PCI device, for now. There is no boot support for virtiofs on s390x (ccw) for the time being [1] [2], so leave the CCW device unchanged. Add the property to the base device still, because adding the alias to the CCW device later will be easier this way [3]. [1] https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01745.html [2] https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01870.html [3] https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg01751.html Example OpenFirmware device path for the "vhost-user-fs-pci" device in the "bootorder" fw_cfg file: /pci@i0cf8/pci-bridge@1,6/pci1af4,105a@0/filesystem@0 Cc: "Dr. David Alan Gilbert" <dgilbert@redhat.com> Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Ján Tomko <jtomko@redhat.com> Cc: Stefan Hajnoczi <stefanha@redhat.com> Cc: virtio-fs@redhat.com Signed-off-by: Laszlo Ersek <lersek@redhat.com> Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20210112131603.12686-1-lersek@redhat.com> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
/*
|
|
* Vhost-user filesystem virtio device
|
|
*
|
|
* Copyright 2018-2019 Red Hat, Inc.
|
|
*
|
|
* Authors:
|
|
* Stefan Hajnoczi <stefanha@redhat.com>
|
|
*
|
|
* This work is licensed under the terms of the GNU GPL, version 2 or
|
|
* (at your option) any later version. See the COPYING file in the
|
|
* top-level directory.
|
|
*/
|
|
|
|
#ifndef _QEMU_VHOST_USER_FS_H
|
|
#define _QEMU_VHOST_USER_FS_H
|
|
|
|
#include "hw/virtio/virtio.h"
|
|
#include "hw/virtio/vhost.h"
|
|
#include "hw/virtio/vhost-user.h"
|
|
#include "chardev/char-fe.h"
|
|
#include "qom/object.h"
|
|
|
|
#define TYPE_VHOST_USER_FS "vhost-user-fs-device"
|
|
OBJECT_DECLARE_SIMPLE_TYPE(VHostUserFS, VHOST_USER_FS)
|
|
|
|
typedef struct {
|
|
CharBackend chardev;
|
|
char *tag;
|
|
uint16_t num_request_queues;
|
|
uint16_t queue_size;
|
|
} VHostUserFSConf;
|
|
|
|
struct VHostUserFS {
|
|
/*< private >*/
|
|
VirtIODevice parent;
|
|
VHostUserFSConf conf;
|
|
struct vhost_virtqueue *vhost_vqs;
|
|
struct vhost_dev vhost_dev;
|
|
VhostUserState vhost_user;
|
|
VirtQueue **req_vqs;
|
|
VirtQueue *hiprio_vq;
|
|
int32_t bootindex;
|
|
|
|
/*< public >*/
|
|
};
|
|
|
|
#endif /* _QEMU_VHOST_USER_FS_H */
|