VFS layer API declarations. More...
VFS layer API declarations.
Definition in file vfs.h.
#include <stdint.h>
#include <stdatomic.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/statvfs.h>
#include "sched.h"
#include "clist.h"
Go to the source code of this file.
Data Structures | |
struct | vfs_file_system_t |
A file system driver. More... | |
struct | vfs_mount_struct |
A mounted file system. More... | |
struct | vfs_file_t |
Information about an open file. More... | |
struct | vfs_DIR |
Internal representation of a file system directory entry. More... | |
struct | vfs_dirent_t |
User facing directory entry. More... | |
struct | vfs_file_ops |
Operations on open files. More... | |
struct | vfs_dir_ops |
Operations on open directories. More... | |
struct | vfs_file_system_ops |
Operations on mounted file systems. More... | |
Macros | |
#define | VFS_MAX_OPEN_FILES (16) |
Maximum number of simultaneous open files. | |
#define | VFS_DIR_BUFFER_SIZE |
Size of buffer space in vfs_DIR. More... | |
#define | VFS_FILE_BUFFER_SIZE |
Size of buffer space in vfs_file_t. More... | |
#define | VFS_NAME_MAX (31) |
Maximum length of the name in a vfs_dirent_t (not including terminating null) More... | |
#define | VFS_ANY_FD (-1) |
Used with vfs_bind to bind to any available fd number. | |
Typedefs | |
typedef struct vfs_file_ops | vfs_file_ops_t |
struct vfs_file_ops typedef | |
typedef struct vfs_dir_ops | vfs_dir_ops_t |
struct vfs_dir_ops typedef | |
typedef struct vfs_file_system_ops | vfs_file_system_ops_t |
struct vfs_file_system_ops typedef | |
typedef struct vfs_mount_struct | vfs_mount_t |
struct vfs_mount_struct typedef | |
Functions | |
void | vfs_bind_stdio (void) |
Allocate and bind file descriptors for STDIN, STDERR, and STDOUT. More... | |
int | vfs_close (int fd) |
Close an open file. More... | |
int | vfs_fcntl (int fd, int cmd, int arg) |
Query/set options on an open file. More... | |
int | vfs_fstat (int fd, struct stat *buf) |
Get status of an open file. More... | |
int | vfs_fstatvfs (int fd, struct statvfs *buf) |
Get file system status of the file system containing an open file. More... | |
off_t | vfs_lseek (int fd, off_t off, int whence) |
Seek to position in file. More... | |
int | vfs_open (const char *name, int flags, mode_t mode) |
Open a file. More... | |
ssize_t | vfs_read (int fd, void *dest, size_t count) |
Read bytes from an open file. More... | |
ssize_t | vfs_write (int fd, const void *src, size_t count) |
Write bytes to an open file. More... | |
int | vfs_opendir (vfs_DIR *dirp, const char *dirname) |
Open a directory for reading with readdir. More... | |
int | vfs_readdir (vfs_DIR *dirp, vfs_dirent_t *entry) |
Read a single entry from the open directory dirp and advance the read position by one. More... | |
int | vfs_closedir (vfs_DIR *dirp) |
Close an open directory. More... | |
int | vfs_format (vfs_mount_t *mountp) |
Format a file system. More... | |
int | vfs_mount (vfs_mount_t *mountp) |
Mount a file system. More... | |
int | vfs_rename (const char *from_path, const char *to_path) |
Rename a file. More... | |
int | vfs_umount (vfs_mount_t *mountp) |
Unmount a mounted file system. More... | |
int | vfs_unlink (const char *name) |
Unlink (delete) a file from a mounted file system. More... | |
int | vfs_mkdir (const char *name, mode_t mode) |
Create a directory on the file system. More... | |
int | vfs_rmdir (const char *name) |
Remove a directory from the file system. More... | |
int | vfs_stat (const char *restrict path, struct stat *restrict buf) |
Get file status. More... | |
int | vfs_statvfs (const char *restrict path, struct statvfs *restrict buf) |
Get file system status. More... | |
int | vfs_bind (int fd, int flags, const vfs_file_ops_t *f_op, void *private_data) |
Allocate a new file descriptor and give it file operations. More... | |
int | vfs_normalize_path (char *buf, const char *path, size_t buflen) |
Normalize a path. More... | |
const vfs_mount_t * | vfs_iterate_mounts (const vfs_mount_t *cur) |
Iterate through all mounted file systems. More... | |
const vfs_file_t * | vfs_file_get (int fd) |
Get information about the file for internal purposes. More... | |
int | vfs_sysop_stat_from_fstat (vfs_mount_t *mountp, const char *restrict path, struct stat *restrict buf) |
Implementation of stat using fstat More... | |
#define | _MAX(a, b) ((a) > (b) ? (a) : (b)) |
MAX functions for internal use. | |
#define | MAX4(a, b, c, d) _MAX(_MAX((a), (b)), _MAX((c),(d))) |
#define | FATFS_VFS_DIR_BUFFER_SIZE (1) |
VFS parameters for FAT. | |
#define | FATFS_VFS_FILE_BUFFER_SIZE (1) |
#define | LITTLEFS_VFS_DIR_BUFFER_SIZE (1) |
VFS parameters for littlefs. | |
#define | LITTLEFS_VFS_FILE_BUFFER_SIZE (1) |
#define | LITTLEFS2_VFS_DIR_BUFFER_SIZE (1) |
VFS parameters for littlefs2. | |
#define | LITTLEFS2_VFS_FILE_BUFFER_SIZE (1) |
#define | SPIFFS_VFS_DIR_BUFFER_SIZE (1) |
VFS parameters for spiffs. | |
#define | SPIFFS_VFS_FILE_BUFFER_SIZE (1) |