From fa97e3728210fbb5963ac91fafdadd6f83dc1226 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 16 Dec 2020 22:10:45 +0100 Subject: OvmfPkg/VirtioFsDxe: submit the FUSE_INIT request to the device MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Submit the FUSE_INIT request to the Virtio Filesystem device, for starting the FUSE session. The FUSE_INIT request is logged by the virtio-fs daemon, with this patch applied, when (for example) using the "CONNECT" UEFI shell command. Cc: Ard Biesheuvel Cc: Jordan Justen Cc: Philippe Mathieu-Daudé Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3097 Signed-off-by: Laszlo Ersek Message-Id: <20201216211125.19496-9-lersek@redhat.com> Acked-by: Ard Biesheuvel --- OvmfPkg/Include/IndustryStandard/VirtioFs.h | 31 +++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'OvmfPkg/Include') diff --git a/OvmfPkg/Include/IndustryStandard/VirtioFs.h b/OvmfPkg/Include/IndustryStandard/VirtioFs.h index 521288b03f..006e0f5deb 100644 --- a/OvmfPkg/Include/IndustryStandard/VirtioFs.h +++ b/OvmfPkg/Include/IndustryStandard/VirtioFs.h @@ -76,6 +76,13 @@ typedef struct { #define VIRTIO_FS_FUSE_MAJOR 7 #define VIRTIO_FS_FUSE_MINOR 31 +// +// FUSE operation codes. +// +typedef enum { + VirtioFsFuseOpInit = 26, +} VIRTIO_FS_FUSE_OPCODE; + #pragma pack (1) // // Request-response headers common to all request types. @@ -96,6 +103,30 @@ typedef struct { INT32 Error; UINT64 Unique; } VIRTIO_FS_FUSE_RESPONSE; + +// +// Headers for VirtioFsFuseOpInit. +// +typedef struct { + UINT32 Major; + UINT32 Minor; + UINT32 MaxReadahead; + UINT32 Flags; +} VIRTIO_FS_FUSE_INIT_REQUEST; + +typedef struct { + UINT32 Major; + UINT32 Minor; + UINT32 MaxReadahead; + UINT32 Flags; + UINT16 MaxBackground; + UINT16 CongestionThreshold; + UINT32 MaxWrite; + UINT32 TimeGran; + UINT16 MaxPages; + UINT16 MapAlignment; + UINT32 Unused[8]; +} VIRTIO_FS_FUSE_INIT_RESPONSE; #pragma pack () #endif // VIRTIO_FS_H_ -- cgit v1.2.3