Files
u-boot/include/virtio_fs.h
Simon Glass f4b820f8ec virtio: Add top-level functions for virtio-fs
Provide access to the virtual queue and some functions for sending
various FUSE messages.

Add myself as a maintainer of virtio.

Signed-off-by: Simon Glass <sjg@chromium.org>
2025-06-30 08:35:17 -06:00

83 lines
2.4 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef VIRTIO_FS_H
#define VIRTIO_FS_H
struct blk_desc;
struct disk_partition;
struct fs_dirent;
struct fs_dir_stream;
/**
* virtio_fs_compat_opendir() - Open a directory
*
* This is a compatibility interface for struct fstype_info
*
* @fname: Path to directory to open ("/" for root)
* @strmp: Returns an allocated pointer to the new stream
* Return 0 if OK, -ve on error
*/
int virtio_fs_compat_opendir(const char *fname, struct fs_dir_stream **strmp);
/**
* virtio_fs_compat_readdir() - Read a single directory entry
*
* This is a compatibility interface for struct fstype_info
*
* @strm: Directory stream as created by virtio_fs_compat_opendir()
* @dentp: Return an allocated entry on success
* Return: 0 if OK, -ENOENT if no more entries, other -ve value on other error
*/
int virtio_fs_compat_readdir(struct fs_dir_stream *strm,
struct fs_dirent **dentp);
/**
* virtio_fs_compat_closedir() - Stop reading the directory
*
* This is a compatibility interface for struct fstype_info
*
* Frees @strm and releases the directory
*
* @strm: Directory stream as created by virtio_fs_compat_opendir()
*/
void virtio_fs_compat_closedir(struct fs_dir_stream *strm);
/**
* virtio_fs_compat_probe() - Probe for a virtio-fs filesystem
*
* This is a compatibility interface for struct fstype_info
*
* For now, this just locates the first available UCLASS_FS device and sets a
* global variable to it, for use by the above virtio_fs_compat_...() functions.
*
* @fs_dev_desc: Block device (not used, can be NULL)
* @fs_partition: Partition (not used, can be NULL)
* Return: 0 if OK, -ve on error
*/
int virtio_fs_compat_probe(struct blk_desc *fs_dev_desc,
struct disk_partition *fs_partition);
/**
* virtio_fs_compat_size() - Get the size of a file
*
* @fname: Filename to check
* @sizep: Returns size of the file, on success
* Return: 0 if OK, -ve on error
*/
int virtio_fs_compat_size(const char *fname, loff_t *sizep);
/**
* virtio_fs_compat_read() - Read from a file
*
* @fname: Filename to read from
* @buf: Buffer to read into
* @offset: Offset within the file to start reading
* @len: Number of bytes to read, or 0 to read all
* @actread: Returns the number of bytes actually read, on success
* Return: 0 if OK, -ve on error
*/
int virtio_fs_compat_read(const char *fname, void *buf, loff_t offset,
loff_t len, loff_t *actread);
#endif