1 /* 2 * Copyright (c) 2025 Antmicro <www.antmicro.com> 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_SUBSYS_FS_VIRTIOFS_VIRTIOFS_H_ 8 #define ZEPHYR_SUBSYS_FS_VIRTIOFS_VIRTIOFS_H_ 9 #include <zephyr/device.h> 10 #include <../fuse_client/fuse_client.h> 11 12 int virtiofs_init(const struct device *dev, struct fuse_init_out *response); 13 int virtiofs_lookup( 14 const struct device *dev, uint64_t inode, const char *name, struct fuse_entry_out *response, 15 uint64_t *parent_inode); 16 int virtiofs_open( 17 const struct device *dev, uint64_t inode, uint32_t flags, struct fuse_open_out *response, 18 enum fuse_object_type type); 19 int virtiofs_read( 20 const struct device *dev, uint64_t inode, uint64_t fh, 21 uint64_t offset, uint32_t size, uint8_t *buf); 22 int virtiofs_release(const struct device *dev, uint64_t inode, uint64_t fh, 23 enum fuse_object_type type); 24 int virtiofs_destroy(const struct device *dev); 25 int virtiofs_create( 26 const struct device *dev, uint64_t inode, const char *fname, uint32_t flags, 27 uint32_t mode, struct fuse_create_out *response); 28 int virtiofs_write( 29 const struct device *dev, uint64_t inode, uint64_t fh, uint64_t offset, 30 uint32_t size, const uint8_t *write_buf); 31 int virtiofs_lseek( 32 const struct device *dev, uint64_t inode, uint64_t fh, uint64_t offset, 33 uint32_t whence, struct fuse_lseek_out *response); 34 int virtiofs_setattr( 35 const struct device *dev, uint64_t inode, struct fuse_setattr_in *in, 36 struct fuse_attr_out *response); 37 int virtiofs_fsync(const struct device *dev, uint64_t inode, uint64_t fh); 38 int virtiofs_mkdir(const struct device *dev, uint64_t inode, const char *dirname, uint32_t mode); 39 int virtiofs_unlink(const struct device *dev, const char *fname, enum fuse_object_type type); 40 int virtiofs_rename( 41 const struct device *dev, uint64_t old_dir_inode, const char *old_name, 42 uint64_t new_dir_inode, const char *new_name); 43 int virtiofs_statfs(const struct device *dev, struct fuse_kstatfs *response); 44 int virtiofs_readdir( 45 const struct device *dev, uint64_t inode, uint64_t fh, uint64_t offset, 46 uint8_t *dirent_buf, uint32_t dirent_size, uint8_t *name_buf, uint32_t name_size); 47 void virtiofs_forget(const struct device *dev, uint64_t inode, uint64_t nlookup); 48 49 #endif /* ZEPHYR_SUBSYS_FS_VIRTIOFS_VIRTIOFS_H_ */ 50