(empty log message)
@@ -64,6 +64,8 @@ | ||
64 | 64 | #define CH_VFS_PATCH 0 |
65 | 65 | /** @} */ |
66 | 66 | |
67 | +#include <stddef.h> | |
68 | + | |
67 | 69 | /* Dependencies.*/ |
68 | 70 | #include "osal.h" |
69 | 71 | #include "hal_objects.h" |
@@ -118,7 +118,11 @@ | ||
118 | 118 | void vfsInit(void); |
119 | 119 | vfserr_t vfsRegisterDriver(vfs_driver_t *vdp); |
120 | 120 | vfserr_t vfsOpenDirectory(const char *name, vfs_directory_node_t **vdnpp); |
121 | + void vfsCloseDirectory(vfs_directory_node_t *vdnp); | |
121 | 122 | vfserr_t vfsOpenFile(const char *name, vfs_file_node_t **vfnpp); |
123 | + void vfsCloseFile(vfs_file_node_t *vfnp); | |
124 | + vfserr_t vfsReadFile(vfs_file_node_t *vfnp, char *buf, size_t n); | |
125 | + vfserr_t vfsWriteFile(vfs_file_node_t *vfnp, const char *buf, size_t n); | |
122 | 126 | #ifdef __cplusplus |
123 | 127 | } |
124 | 128 | #endif |
@@ -197,6 +197,17 @@ | ||
197 | 197 | } |
198 | 198 | |
199 | 199 | /** |
200 | + * @brief Releases a @p vfs_directory_node_t object. | |
201 | + * | |
202 | + * @param[in] vdnp the pointer to the @p vfs_directory_node_t object | |
203 | + * to be released | |
204 | + */ | |
205 | +void vfsCloseDirectory(vfs_directory_node_t *vdnp) { | |
206 | + | |
207 | + vdnp->vmt->release((void *)vdnp); | |
208 | +} | |
209 | + | |
210 | +/** | |
200 | 211 | * @brief Opens a VFS file. |
201 | 212 | * |
202 | 213 | * @param[in] path absolute path of the file to be opened |
@@ -219,4 +230,57 @@ | ||
219 | 230 | return err; |
220 | 231 | } |
221 | 232 | |
233 | +/** | |
234 | + * @brief Releases a @p vfs_file_node_t object. | |
235 | + * | |
236 | + * @param[in] vfnp the pointer to the @p vfs_file_node_t object | |
237 | + * to be released | |
238 | + */ | |
239 | +void vfsCloseFile(vfs_file_node_t *vfnp) { | |
240 | + | |
241 | + vfnp->vmt->release((void *)vfnp); | |
242 | +} | |
243 | + | |
244 | +/** | |
245 | + * @brief File node read. | |
246 | + * @details The function reads data from a file node into a buffer. | |
247 | + * | |
248 | + * @param[in] vfnp the pointer to the @p vfs_file_node_t object | |
249 | + * @param[out] buf pointer to the data buffer | |
250 | + * @param[in] n the maximum amount of data to be transferred | |
251 | + * @return The transferred number of bytes or an error. | |
252 | + * | |
253 | + * @api | |
254 | + */ | |
255 | +vfserr_t vfsReadFile(vfs_file_node_t *vfnp, char *buf, size_t n) { | |
256 | + vfserr_t err = VFS_RET_SUCCESS; | |
257 | + | |
258 | + (void)vfnp; | |
259 | + (void)buf; | |
260 | + (void)n; | |
261 | + | |
262 | + return err; | |
263 | +} | |
264 | + | |
265 | +/** | |
266 | + * @brief File node write. | |
267 | + * @details The function writes data from a buffer to a file node. | |
268 | + * | |
269 | + * @param[in] vfnp the pointer to the @p vfs_file_node_t object | |
270 | + * @param[out] buf pointer to the data buffer | |
271 | + * @param[in] n the maximum amount of data to be transferred | |
272 | + * @return The transferred number of bytes or an error. | |
273 | + * | |
274 | + * @api | |
275 | + */ | |
276 | +vfserr_t vfsWriteFile(vfs_file_node_t *vfnp, const char *buf, size_t n) { | |
277 | + vfserr_t err = VFS_RET_SUCCESS; | |
278 | + | |
279 | + (void)vfnp; | |
280 | + (void)buf; | |
281 | + (void)n; | |
282 | + | |
283 | + return err; | |
284 | +} | |
285 | + | |
222 | 286 | /** @} */ |