blob: fc5e863833d5ca505fc07c1c75773944ad971143 [file] [log] [blame]
/*
* Copyright (c) 2025 Antmicro <www.antmicro.com>
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_SUBSYS_FS_VIRTIOFS_VIRTIOFS_H_
#define ZEPHYR_SUBSYS_FS_VIRTIOFS_VIRTIOFS_H_
#include <zephyr/device.h>
#include <../fuse_client/fuse_client.h>
int virtiofs_init(const struct device *dev, struct fuse_init_out *response);
int virtiofs_lookup(
const struct device *dev, uint64_t inode, const char *name, struct fuse_entry_out *response,
uint64_t *parent_inode);
int virtiofs_open(
const struct device *dev, uint64_t inode, uint32_t flags, struct fuse_open_out *response,
enum fuse_object_type type);
int virtiofs_read(
const struct device *dev, uint64_t inode, uint64_t fh,
uint64_t offset, uint32_t size, uint8_t *buf);
int virtiofs_release(const struct device *dev, uint64_t inode, uint64_t fh,
enum fuse_object_type type);
int virtiofs_destroy(const struct device *dev);
int virtiofs_create(
const struct device *dev, uint64_t inode, const char *fname, uint32_t flags,
uint32_t mode, struct fuse_create_out *response);
int virtiofs_write(
const struct device *dev, uint64_t inode, uint64_t fh, uint64_t offset,
uint32_t size, const uint8_t *write_buf);
int virtiofs_lseek(
const struct device *dev, uint64_t inode, uint64_t fh, uint64_t offset,
uint32_t whence, struct fuse_lseek_out *response);
int virtiofs_setattr(
const struct device *dev, uint64_t inode, struct fuse_setattr_in *in,
struct fuse_attr_out *response);
int virtiofs_fsync(const struct device *dev, uint64_t inode, uint64_t fh);
int virtiofs_mkdir(const struct device *dev, uint64_t inode, const char *dirname, uint32_t mode);
int virtiofs_unlink(const struct device *dev, const char *fname, enum fuse_object_type type);
int virtiofs_rename(
const struct device *dev, uint64_t old_dir_inode, const char *old_name,
uint64_t new_dir_inode, const char *new_name);
int virtiofs_statfs(const struct device *dev, struct fuse_kstatfs *response);
int virtiofs_readdir(
const struct device *dev, uint64_t inode, uint64_t fh, uint64_t offset,
uint8_t *dirent_buf, uint32_t dirent_size, uint8_t *name_buf, uint32_t name_size);
void virtiofs_forget(const struct device *dev, uint64_t inode, uint64_t nlookup);
#endif /* ZEPHYR_SUBSYS_FS_VIRTIOFS_VIRTIOFS_H_ */