27#ifndef __XF_VFS_TYPES_H__
28#define __XF_VFS_TYPES_H__
43#if XF_VFS_SUPPORT_SELECT_IS_ENABLE
61#define XF_VFS_PATH_PREFIX_LEN_IGNORED (~(size_t)0)
66#define XF_VFS_FLAG_DEFAULT (1 << 0)
71#define XF_VFS_FLAG_CONTEXT_PTR (1 << 1)
76#define XF_VFS_FLAG_READONLY_FS (1 << 2)
82#define XF_VFS_FLAG_STATIC (1 << 3)
86#if XF_VFS_SUPPORT_SELECT_IS_ENABLE
148 int (*open_p)(
void*
ctx,
const char * path,
int flags,
int mode);
149 int (*
open)(
const char * path,
int flags,
int mode);
152 int (*close_p)(
void*
ctx,
int fd);
159#if XF_VFS_SUPPORT_DIR_IS_ENABLE
165 int (*link_p)(
void*
ctx,
const char* n1,
const char* n2);
166 int (*link)(
const char* n1,
const char* n2);
169 int (*unlink_p)(
void*
ctx,
const char *path);
170 int (*unlink)(
const char *path);
173 int (*rename_p)(
void*
ctx,
const char *src,
const char *dst);
174 int (*rename)(
const char *src,
const char *dst);
205 int (*rmdir_p)(
void*
ctx,
const char* name);
206 int (*rmdir)(
const char* name);
210 int (*fcntl_p)(
void*
ctx,
int fd,
int cmd,
int arg);
211 int (*fcntl)(
int fd,
int cmd,
int arg);
214 int (*ioctl_p)(
void*
ctx,
int fd,
int cmd, va_list args);
215 int (*
ioctl)(
int fd,
int cmd, va_list args);
218 int (*fsync_p)(
void*
ctx,
int fd);
219 int (*fsync)(
int fd);
221#if XF_VFS_SUPPORT_DIR_IS_ENABLE
223 int (*access_p)(
void*
ctx,
const char *path,
int amode);
224 int (*access)(
const char *path,
int amode);
239#if XF_VFS_SUPPORT_SELECT_IS_ENABLE || defined __DOXYGEN__
245 void (*stop_socket_select)(
void *
sem);
247 void (*stop_socket_select_isr)(
void *
sem,
int *woken);
249 void* (*get_socket_select_semaphore)(void);
257#if XF_VFS_SUPPORT_SELECT_IS_ENABLE
264typedef void* (*xf_vfs_get_socket_select_semaphore_op_t) (void);
int32_t xf_err_t
整形错误类型。 错误码具体值见 xf_err_code_t.
xf_err_t(* xf_vfs_start_select_op_t)(int nfds, xf_fd_set *readfds, xf_fd_set *writefds, xf_fd_set *exceptfds, xf_vfs_select_sem_t sem, void **end_select_args)
void *(* xf_vfs_get_socket_select_semaphore_op_t)(void)
int(* xf_vfs_socket_select_op_t)(int nfds, xf_fd_set *readfds, xf_fd_set *writefds, xf_fd_set *errorfds, xf_vfs_timeval_t *timeout)
xf_err_t(* xf_vfs_end_select_op_t)(void *end_select_args)
void(* xf_vfs_stop_socket_select_isr_op_t)(void *sem, int *woken)
void(* xf_vfs_stop_socket_select_op_t)(void *sem)
static xf_osal_semaphore_t sem
Opaque directory structure
Directory entry structure
Struct containing function pointers to select related functionality.
const xf_vfs_get_socket_select_semaphore_op_t get_socket_select_semaphore
const xf_vfs_end_select_op_t end_select
const xf_vfs_stop_socket_select_op_t stop_socket_select
const xf_vfs_stop_socket_select_isr_op_t stop_socket_select_isr
const xf_vfs_socket_select_op_t socket_select
const xf_vfs_start_select_op_t start_select
VFS semaphore type for select()
aos_utimbuf 结构描述了文件系统 inode 的 最后访问时间和最后修改时间。
int ioctl(int fd, unsigned long request,...)
size_t read(int fd, void *buf, size_t count)
size_t write(int fd, const void *buf, size_t count)
int open(const char *pathname, int flags)
xf_vfs 模块内部配置总头文件。 确保 xf_vfs_config.h 的所有定义都有默认值。
unsigned long xf_vfs_mode_t
signed int xf_vfs_ssize_t