XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_vfs_t结构体 参考

VFS definition structure 更多...

#include <xf_vfs_types.h>

xf_vfs_t 的协作图:
Collaboration graph

成员变量

int flags
 
union { 
 
   xf_vfs_ssize_t(*   write_p )(void *p, int fd, const void
      *data, size_t size) 
 
   xf_vfs_ssize_t(*   write )(int fd, const void *data,
       size_t size) 
 
};  
 
union { 
 
   xf_vfs_off_t(*   lseek_p )(void *p, int fd,
       xf_vfs_off_t size, int mode) 
 
   xf_vfs_off_t(*   lseek )(int fd, xf_vfs_off_t size,
       int mode) 
 
};  
 
union { 
 
   xf_vfs_ssize_t(*   read_p )(void *ctx, int fd, void *dst,
       size_t size) 
 
   xf_vfs_ssize_t(*   read )(int fd, void *dst, size_t size) 
 
};  
 
union { 
 
   xf_vfs_ssize_t(*   pread_p )(void *ctx, int fd, void *dst,
       size_t size, xf_vfs_off_t
      offset) 
 
   xf_vfs_ssize_t(*   pread )(int fd, void *dst, size_t
      size, xf_vfs_off_t offset) 
 
};  
 
union { 
 
   xf_vfs_ssize_t(*   pwrite_p )(void *ctx, int fd, const
      void *src, size_t size,
       xf_vfs_off_t offset) 
 
   xf_vfs_ssize_t(*   pwrite )(int fd, const void *src,
       size_t size, xf_vfs_off_t
      offset) 
 
};  
 
union { 
 
   int(*   open_p )(void *ctx, const char *path,
       int flags, int mode) 
 
   int(*   open )(const char *path, int flags,
       int mode) 
 
};  
 
union { 
 
   int(*   close_p )(void *ctx, int fd) 
 
   int(*   close )(int fd) 
 
};  
 
union { 
 
   int(*   fstat_p )(void *ctx, int fd,
       xf_vfs_stat_t *st) 
 
   int(*   fstat )(int fd, xf_vfs_stat_t *st) 
 
};  
 
union { 
 
   int(*   stat_p )(void *ctx, const char *path,
       xf_vfs_stat_t *st) 
 
   int(*   stat )(const char *path,
       xf_vfs_stat_t *st) 
 
};  
 
union { 
 
   int(*   link_p )(void *ctx, const char *n1,
       const char *n2) 
 
   int(*   link )(const char *n1, const char *n2) 
 
};  
 
union { 
 
   int(*   unlink_p )(void *ctx, const char *path) 
 
   int(*   unlink )(const char *path) 
 
};  
 
union { 
 
   int(*   rename_p )(void *ctx, const char *src,
       const char *dst) 
 
   int(*   rename )(const char *src, const char *dst) 
 
};  
 
union { 
 
   xf_vfs_dir_t *(*   opendir_p )(void *ctx, const char *name) 
 
   xf_vfs_dir_t *(*   opendir )(const char *name) 
 
};  
 
union { 
 
   xf_vfs_dirent_t *(*   readdir_p )(void *ctx, xf_vfs_dir_t *pdir) 
 
   xf_vfs_dirent_t *(*   readdir )(xf_vfs_dir_t *pdir) 
 
};  
 
union { 
 
   int(*   readdir_r_p )(void *ctx, xf_vfs_dir_t
      *pdir, xf_vfs_dirent_t *entry,
       xf_vfs_dirent_t **out_dirent) 
 
   int(*   readdir_r )(xf_vfs_dir_t *pdir,
       xf_vfs_dirent_t *entry,
       xf_vfs_dirent_t **out_dirent) 
 
};  
 
union { 
 
   long(*   telldir_p )(void *ctx, xf_vfs_dir_t *pdir) 
 
   long(*   telldir )(xf_vfs_dir_t *pdir) 
 
};  
 
union { 
 
   void(*   seekdir_p )(void *ctx, xf_vfs_dir_t
      *pdir, long offset) 
 
   void(*   seekdir )(xf_vfs_dir_t *pdir, long offset) 
 
};  
 
union { 
 
   int(*   closedir_p )(void *ctx, xf_vfs_dir_t *pdir) 
 
   int(*   closedir )(xf_vfs_dir_t *pdir) 
 
};  
 
union { 
 
   int(*   mkdir_p )(void *ctx, const char *name,
       xf_vfs_mode_t mode) 
 
   int(*   mkdir )(const char *name,
       xf_vfs_mode_t mode) 
 
};  
 
union { 
 
   int(*   rmdir_p )(void *ctx, const char *name) 
 
   int(*   rmdir )(const char *name) 
 
};  
 
union { 
 
   int(*   fcntl_p )(void *ctx, int fd, int cmd,
       int arg) 
 
   int(*   fcntl )(int fd, int cmd, int arg) 
 
};  
 
union { 
 
   int(*   ioctl_p )(void *ctx, int fd, int cmd,
       va_list args) 
 
   int(*   ioctl )(int fd, int cmd, va_list args) 
 
};  
 
union { 
 
   int(*   fsync_p )(void *ctx, int fd) 
 
   int(*   fsync )(int fd) 
 
};  
 
union { 
 
   int(*   access_p )(void *ctx, const char *path,
       int amode) 
 
   int(*   access )(const char *path, int amode) 
 
};  
 
union { 
 
   int(*   truncate_p )(void *ctx, const char *path,
       xf_vfs_off_t length) 
 
   int(*   truncate )(const char *path,
       xf_vfs_off_t length) 
 
};  
 
union { 
 
   int(*   ftruncate_p )(void *ctx, int fd,
       xf_vfs_off_t length) 
 
   int(*   ftruncate )(int fd, xf_vfs_off_t length) 
 
};  
 
union { 
 
   int(*   utime_p )(void *ctx, const char *path,
       const xf_vfs_utimbuf_t *times) 
 
   int(*   utime )(const char *path, const
      xf_vfs_utimbuf_t *times) 
 
};  
 
xf_err_t(* start_select )(int nfds, xf_fd_set *readfds, xf_fd_set *writefds, xf_fd_set *exceptfds, xf_vfs_select_sem_t sem, void **end_select_args)
 
int(* socket_select )(int nfds, xf_fd_set *readfds, xf_fd_set *writefds, xf_fd_set *errorfds, xf_vfs_timeval_t *timeout)
 
void(* stop_socket_select )(void *sem)
 
void(* stop_socket_select_isr )(void *sem, int *woken)
 
void *(* get_socket_select_semaphore )(void)
 
xf_err_t(* end_select )(void *end_select_args)
 

详细描述

VFS definition structure

This structure should be filled with pointers to corresponding FS driver functions.

VFS component will translate all FDs so that the filesystem implementation sees them starting at zero. The caller sees a global FD which is prefixed with an pre-filesystem-implementation.

Some FS implementations expect some state (e.g. pointer to some structure) to be passed in as a first argument. For these implementations, populate the members of this structure which have _p suffix, set flags member to XF_VFS_FLAG_CONTEXT_PTR and provide the context pointer to xf_vfs_register function. If the implementation doesn't use this extra argument, populate the members without _p suffix and set flags member to XF_VFS_FLAG_DEFAULT.

If the FS driver doesn't provide some of the functions, set corresponding members to NULL.

在文件 xf_vfs_types.h124 行定义.

结构体成员变量说明

◆ flags

int flags

XF_VFS_FLAG_CONTEXT_PTR and/or XF_VFS_FLAG_READONLY_FS or XF_VFS_FLAG_DEFAULT

在文件 xf_vfs_types.h126 行定义.

◆ write_p

xf_vfs_ssize_t(* write_p) (void *p, int fd, const void *data, size_t size)

Write with context pointer

在文件 xf_vfs_types.h128 行定义.

◆ write

xf_vfs_ssize_t(* write) (int fd, const void *data, size_t size)

Write without context pointer

在文件 xf_vfs_types.h129 行定义.

◆ [union]

union { ... }

◆ lseek_p

xf_vfs_off_t(* lseek_p) (void *p, int fd, xf_vfs_off_t size, int mode)

Seek with context pointer

在文件 xf_vfs_types.h132 行定义.

◆ lseek

xf_vfs_off_t(* lseek) (int fd, xf_vfs_off_t size, int mode)

Seek without context pointer

在文件 xf_vfs_types.h133 行定义.

◆ [union]

union { ... }

◆ read_p

xf_vfs_ssize_t(* read_p) (void *ctx, int fd, void *dst, size_t size)

Read with context pointer

在文件 xf_vfs_types.h136 行定义.

◆ read

xf_vfs_ssize_t(* read) (int fd, void *dst, size_t size)

Read without context pointer

在文件 xf_vfs_types.h137 行定义.

◆ [union]

union { ... }

◆ pread_p

xf_vfs_ssize_t(* pread_p) (void *ctx, int fd, void *dst, size_t size, xf_vfs_off_t offset)

pread with context pointer

在文件 xf_vfs_types.h140 行定义.

◆ pread

xf_vfs_ssize_t(* pread) (int fd, void *dst, size_t size, xf_vfs_off_t offset)

pread without context pointer

在文件 xf_vfs_types.h141 行定义.

◆ [union]

union { ... }

◆ pwrite_p

xf_vfs_ssize_t(* pwrite_p) (void *ctx, int fd, const void *src, size_t size, xf_vfs_off_t offset)

pwrite with context pointer

在文件 xf_vfs_types.h144 行定义.

◆ pwrite

xf_vfs_ssize_t(* pwrite) (int fd, const void *src, size_t size, xf_vfs_off_t offset)

pwrite without context pointer

在文件 xf_vfs_types.h145 行定义.

◆ [union]

union { ... }

◆ open_p

int(* open_p) (void *ctx, const char *path, int flags, int mode)

open with context pointer

在文件 xf_vfs_types.h148 行定义.

◆ open

int(* open) (const char *path, int flags, int mode)

open without context pointer

在文件 xf_vfs_types.h149 行定义.

◆ [union]

union { ... }

◆ close_p

int(* close_p) (void *ctx, int fd)

close with context pointer

在文件 xf_vfs_types.h152 行定义.

◆ close

int(* close) (int fd)

close without context pointer

在文件 xf_vfs_types.h153 行定义.

◆ [union]

union { ... }

◆ fstat_p

int(* fstat_p) (void *ctx, int fd, xf_vfs_stat_t *st)

fstat with context pointer

在文件 xf_vfs_types.h156 行定义.

◆ fstat

int(* fstat) (int fd, xf_vfs_stat_t *st)

fstat without context pointer

在文件 xf_vfs_types.h157 行定义.

◆ [union]

union { ... }

◆ stat_p

int(* stat_p) (void *ctx, const char *path, xf_vfs_stat_t *st)

stat with context pointer

在文件 xf_vfs_types.h161 行定义.

◆ stat

int(* stat) (const char *path, xf_vfs_stat_t *st)

stat without context pointer

在文件 xf_vfs_types.h162 行定义.

◆ [union]

union { ... }

◆ link_p

int(* link_p) (void *ctx, const char *n1, const char *n2)

link with context pointer

在文件 xf_vfs_types.h165 行定义.

◆ link

int(* link) (const char *n1, const char *n2)

link without context pointer

在文件 xf_vfs_types.h166 行定义.

◆ [union]

union { ... }

◆ unlink_p

int(* unlink_p) (void *ctx, const char *path)

unlink with context pointer

在文件 xf_vfs_types.h169 行定义.

◆ unlink

int(* unlink) (const char *path)

unlink without context pointer

在文件 xf_vfs_types.h170 行定义.

◆ [union]

union { ... }

◆ rename_p

int(* rename_p) (void *ctx, const char *src, const char *dst)

rename with context pointer

在文件 xf_vfs_types.h173 行定义.

◆ rename

int(* rename) (const char *src, const char *dst)

rename without context pointer

在文件 xf_vfs_types.h174 行定义.

◆ [union]

union { ... }

◆ opendir_p

xf_vfs_dir_t *(* opendir_p) (void *ctx, const char *name)

opendir with context pointer

在文件 xf_vfs_types.h177 行定义.

◆ opendir

xf_vfs_dir_t *(* opendir) (const char *name)

opendir without context pointer

在文件 xf_vfs_types.h178 行定义.

◆ [union]

union { ... }

◆ readdir_p

xf_vfs_dirent_t *(* readdir_p) (void *ctx, xf_vfs_dir_t *pdir)

readdir with context pointer

在文件 xf_vfs_types.h181 行定义.

◆ readdir

xf_vfs_dirent_t *(* readdir) (xf_vfs_dir_t *pdir)

readdir without context pointer

在文件 xf_vfs_types.h182 行定义.

◆ [union]

union { ... }

◆ readdir_r_p

int(* readdir_r_p) (void *ctx, xf_vfs_dir_t *pdir, xf_vfs_dirent_t *entry, xf_vfs_dirent_t **out_dirent)

readdir_r with context pointer

在文件 xf_vfs_types.h185 行定义.

◆ readdir_r

int(* readdir_r) (xf_vfs_dir_t *pdir, xf_vfs_dirent_t *entry, xf_vfs_dirent_t **out_dirent)

readdir_r without context pointer

在文件 xf_vfs_types.h186 行定义.

◆ [union]

union { ... }

◆ telldir_p

long(* telldir_p) (void *ctx, xf_vfs_dir_t *pdir)

telldir with context pointer

在文件 xf_vfs_types.h189 行定义.

◆ telldir

long(* telldir) (xf_vfs_dir_t *pdir)

telldir without context pointer

在文件 xf_vfs_types.h190 行定义.

◆ [union]

union { ... }

◆ seekdir_p

void(* seekdir_p) (void *ctx, xf_vfs_dir_t *pdir, long offset)

seekdir with context pointer

在文件 xf_vfs_types.h193 行定义.

◆ seekdir

void(* seekdir) (xf_vfs_dir_t *pdir, long offset)

seekdir without context pointer

在文件 xf_vfs_types.h194 行定义.

◆ [union]

union { ... }

◆ closedir_p

int(* closedir_p) (void *ctx, xf_vfs_dir_t *pdir)

closedir with context pointer

在文件 xf_vfs_types.h197 行定义.

◆ closedir

int(* closedir) (xf_vfs_dir_t *pdir)

closedir without context pointer

在文件 xf_vfs_types.h198 行定义.

◆ [union]

union { ... }

◆ mkdir_p

int(* mkdir_p) (void *ctx, const char *name, xf_vfs_mode_t mode)

mkdir with context pointer

在文件 xf_vfs_types.h201 行定义.

◆ mkdir

int(* mkdir) (const char *name, xf_vfs_mode_t mode)

mkdir without context pointer

在文件 xf_vfs_types.h202 行定义.

◆ [union]

union { ... }

◆ rmdir_p

int(* rmdir_p) (void *ctx, const char *name)

rmdir with context pointer

在文件 xf_vfs_types.h205 行定义.

◆ rmdir

int(* rmdir) (const char *name)

rmdir without context pointer

在文件 xf_vfs_types.h206 行定义.

◆ [union]

union { ... }

◆ fcntl_p

int(* fcntl_p) (void *ctx, int fd, int cmd, int arg)

fcntl with context pointer

在文件 xf_vfs_types.h210 行定义.

◆ fcntl

int(* fcntl) (int fd, int cmd, int arg)

fcntl without context pointer

在文件 xf_vfs_types.h211 行定义.

◆ [union]

union { ... }

◆ ioctl_p

int(* ioctl_p) (void *ctx, int fd, int cmd, va_list args)

ioctl with context pointer

在文件 xf_vfs_types.h214 行定义.

◆ ioctl

int(* ioctl) (int fd, int cmd, va_list args)

ioctl without context pointer

在文件 xf_vfs_types.h215 行定义.

◆ [union]

union { ... }

◆ fsync_p

int(* fsync_p) (void *ctx, int fd)

fsync with context pointer

在文件 xf_vfs_types.h218 行定义.

◆ fsync

int(* fsync) (int fd)

fsync without context pointer

在文件 xf_vfs_types.h219 行定义.

◆ [union]

union { ... }

◆ access_p

int(* access_p) (void *ctx, const char *path, int amode)

access with context pointer

在文件 xf_vfs_types.h223 行定义.

◆ access

int(* access) (const char *path, int amode)

access without context pointer

在文件 xf_vfs_types.h224 行定义.

◆ [union]

union { ... }

◆ truncate_p

int(* truncate_p) (void *ctx, const char *path, xf_vfs_off_t length)

truncate with context pointer

在文件 xf_vfs_types.h227 行定义.

◆ truncate

int(* truncate) (const char *path, xf_vfs_off_t length)

truncate without context pointer

在文件 xf_vfs_types.h228 行定义.

◆ [union]

union { ... }

◆ ftruncate_p

int(* ftruncate_p) (void *ctx, int fd, xf_vfs_off_t length)

ftruncate with context pointer

在文件 xf_vfs_types.h231 行定义.

◆ ftruncate

int(* ftruncate) (int fd, xf_vfs_off_t length)

ftruncate without context pointer

在文件 xf_vfs_types.h232 行定义.

◆ [union]

union { ... }

◆ utime_p

int(* utime_p) (void *ctx, const char *path, const xf_vfs_utimbuf_t *times)

utime with context pointer

在文件 xf_vfs_types.h235 行定义.

◆ utime

int(* utime) (const char *path, const xf_vfs_utimbuf_t *times)

utime without context pointer

在文件 xf_vfs_types.h236 行定义.

◆ [union]

union { ... }

◆ start_select

xf_err_t(* start_select) (int nfds, xf_fd_set *readfds, xf_fd_set *writefds, xf_fd_set *exceptfds, xf_vfs_select_sem_t sem, void **end_select_args)

start_select is called for setting up synchronous I/O multiplexing of the desired file descriptors in the given VFS

在文件 xf_vfs_types.h241 行定义.

◆ socket_select

int(* socket_select) (int nfds, xf_fd_set *readfds, xf_fd_set *writefds, xf_fd_set *errorfds, xf_vfs_timeval_t *timeout)

socket select function for socket FDs with the functionality of POSIX select(); this should be set only for the socket VFS

在文件 xf_vfs_types.h243 行定义.

◆ stop_socket_select

void(* stop_socket_select) (void *sem)

called by VFS to interrupt the socket_select call when select is activated from a non-socket VFS driver; set only for the socket driver

在文件 xf_vfs_types.h245 行定义.

◆ stop_socket_select_isr

void(* stop_socket_select_isr) (void *sem, int *woken)

stop_socket_select which can be called from ISR; set only for the socket driver

在文件 xf_vfs_types.h247 行定义.

◆ get_socket_select_semaphore

void *(* get_socket_select_semaphore) (void)

end_select is called to stop the I/O multiplexing and deinitialize the environment created by start_select for the given VFS

在文件 xf_vfs_types.h249 行定义.

◆ end_select

xf_err_t(* end_select) (void *end_select_args)

get_socket_select_semaphore returns semaphore allocated in the socket driver; set only for the socket driver

在文件 xf_vfs_types.h251 行定义.


该结构体的文档由以下文件生成: