xt-sdk 文档 v1.0.3
xt-sdk 嵌入式 SDK API 参考
载入中...
搜索中...
未找到
xt_vfs_port.h
浏览该文件的文档.
1
12
13#ifndef __XT_VFS_PORT_H__
14#define __XT_VFS_PORT_H__
15
16/* ==================== [Includes] ========================================== */
17
18#include "xtiny.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/* ==================== [Defines] =========================================== */
25
27#if !defined(XT_VFS_ENABLE_THREAD_SAFE)
28#define XT_VFS_ENABLE_THREAD_SAFE 1
29#endif
30
32#if !defined(XT_VFS_USE_HEAP)
33#define XT_VFS_USE_HEAP 1
34#endif
35
37#if !defined(XT_VFS_ENABLE_CWD)
38#define XT_VFS_ENABLE_CWD 0
39#endif
40
42#if !defined(XT_VFS_ENABLE_DIR)
43#define XT_VFS_ENABLE_DIR 1
44#endif
45
47#if !defined(XT_VFS_ENABLE_STATIC_TEST)
48#define XT_VFS_ENABLE_STATIC_TEST 0
49#endif
50
52#if !defined(XT_VFS_PATH_MAX)
53#define XT_VFS_PATH_MAX 128
54#endif
55
57#if !defined(XT_VFS_FILENAME_MAX)
58#define XT_VFS_FILENAME_MAX 64
59#endif
60
62#if !defined(XT_VFS_MOUNT_PREFIX_MAX)
63#define XT_VFS_MOUNT_PREFIX_MAX 16
64#endif
65
67#if !defined(XT_VFS_MAX_MOUNTS)
68#define XT_VFS_MAX_MOUNTS 4
69#endif
70
72#if !defined(XT_VFS_MAX_FILES)
73#define XT_VFS_MAX_FILES 8
74#endif
75
77#if !defined(XT_VFS_MAX_DIRS)
78#define XT_VFS_MAX_DIRS 4
79#endif
80
82#if !defined(XT_VFS_MAX_THREADS)
83#define XT_VFS_MAX_THREADS 8
84#endif
85
86/* ---- 锁宏 ---- */
87
88#if XT_VFS_ENABLE_THREAD_SAFE
89
90#include "cmsis_os2.h"
91
93#define XT_VFS_LOCK_DEF() osMutexId_t _vfs_lock
94
96#define XT_VFS_LOCK_INIT(vfs) \
97 do { \
98 (vfs)->_vfs_lock = osMutexNew(NULL); \
99 } while (0)
100
102#define XT_VFS_LOCK(vfs) osMutexAcquire((vfs)->_vfs_lock, osWaitForever)
103
105#define XT_VFS_UNLOCK(vfs) osMutexRelease((vfs)->_vfs_lock)
106
108#define XT_VFS_LOCK_DEINIT(vfs) \
109 do { \
110 if ((vfs)->_vfs_lock != NULL) { \
111 osMutexDelete((vfs)->_vfs_lock); \
112 (vfs)->_vfs_lock = NULL; \
113 } \
114 } while (0)
115
116#else /* !XT_VFS_ENABLE_THREAD_SAFE */
117
119#define XT_VFS_LOCK_DEF()
121#define XT_VFS_LOCK_INIT(vfs) (void)(vfs)
123#define XT_VFS_LOCK(vfs) (void)(vfs)
125#define XT_VFS_UNLOCK(vfs) (void)(vfs)
127#define XT_VFS_LOCK_DEINIT(vfs) (void)(vfs)
128
129#endif /* XT_VFS_ENABLE_THREAD_SAFE */
130
131/* ---- 内存宏 ---- */
132
133#if XT_VFS_USE_HEAP
134
136#define XT_VFS_MALLOC(size) xt_malloc(size)
137#define XT_VFS_FREE(ptr) xt_free(ptr)
138#define XT_VFS_CALLOC(n, sz) xt_calloc(n, sz)
139
140#else /* !XT_VFS_USE_HEAP */
141
149#define XT_VFS_MALLOC(size) NULL
151#define XT_VFS_FREE(ptr) (void)(ptr)
153#define XT_VFS_CALLOC(n, sz) NULL
154
155#endif /* XT_VFS_USE_HEAP */
156
157/* ==================== [Typedefs] ========================================== */
158
168
192
193/* ==================== [Macros] ============================================ */
194
195#ifdef __cplusplus
196} /* extern "C" */
197#endif
198
199#endif /* __XT_VFS_PORT_H__ */
VFS 初始化配置
线程上下文——存储每线程 errno 和可选 CWD
#define XT_VFS_PATH_MAX
最大路径长度(含结尾 '\0')
struct xt_vfs_config xt_vfs_config_t
VFS 初始化配置
struct xt_vfs_thread_ctx xt_vfs_thread_ctx_t
线程上下文——存储每线程 errno 和可选 CWD
XTINY 总头文件