OvmfPkg/VirtioFsDxe: add a shared wrapper for FUSE_READ / FUSE_READDIRPLUS
Add the VirtioFsFuseReadFileOrDir() function, for sending the FUSE_READ or FUSE_READDIRPLUS command to the Virtio Filesystem device. Parsing the structured FUSE_READDIRPLUS output is complex, and cannot be integrated into the wrapper function. Given that fact, FUSE_READ and FUSE_READDIRPLUS turn out to need identical low-level handling, except for the opcode. Hence the shared wrapper function. (It's prudent to verify whether the FUSE server supports FUSE_READDIRPLUS, so update the session init code accordingly.) This is the first FUSE request wrapper function that deals with a variable size tail buffer. Cc: Ard Biesheuvel <ard.biesheuvel@arm.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3097 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20201216211125.19496-33-lersek@redhat.com> Acked-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
This commit is contained in:
committed by
mergify[bot]
parent
c4edb49b4f
commit
d98d7e3005
@@ -298,6 +298,17 @@ VirtioFsFuseOpen (
|
||||
OUT UINT64 *FuseHandle
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioFsFuseReadFileOrDir (
|
||||
IN OUT VIRTIO_FS *VirtioFs,
|
||||
IN UINT64 NodeId,
|
||||
IN UINT64 FuseHandle,
|
||||
IN BOOLEAN IsDir,
|
||||
IN UINT64 Offset,
|
||||
IN OUT UINT32 *Size,
|
||||
OUT VOID *Data
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
VirtioFsFuseStatFs (
|
||||
IN OUT VIRTIO_FS *VirtioFs,
|
||||
|
Reference in New Issue
Block a user