git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15122 27425a3e-05d8-49a3-a47f-9c15f0e5edd8

This commit is contained in:
Giovanni Di Sirio 2021-11-21 14:58:16 +00:00
parent d1a4ba093d
commit 213c2dfade
3 changed files with 70 additions and 0 deletions

View File

@ -64,6 +64,8 @@
#define CH_VFS_PATCH 0
/** @} */
#include <stddef.h>
/* Dependencies.*/
#include "osal.h"
#include "hal_objects.h"

View File

@ -118,7 +118,11 @@ extern "C" {
void vfsInit(void);
vfserr_t vfsRegisterDriver(vfs_driver_t *vdp);
vfserr_t vfsOpenDirectory(const char *name, vfs_directory_node_t **vdnpp);
void vfsCloseDirectory(vfs_directory_node_t *vdnp);
vfserr_t vfsOpenFile(const char *name, vfs_file_node_t **vfnpp);
void vfsCloseFile(vfs_file_node_t *vfnp);
vfserr_t vfsReadFile(vfs_file_node_t *vfnp, char *buf, size_t n);
vfserr_t vfsWriteFile(vfs_file_node_t *vfnp, const char *buf, size_t n);
#ifdef __cplusplus
}
#endif

View File

@ -196,6 +196,17 @@ vfserr_t vfsOpenDirectory(const char *path, vfs_directory_node_t **vdnpp) {
return err;
}
/**
* @brief Releases a @p vfs_directory_node_t object.
*
* @param[in] vdnp the pointer to the @p vfs_directory_node_t object
* to be released
*/
void vfsCloseDirectory(vfs_directory_node_t *vdnp) {
vdnp->vmt->release((void *)vdnp);
}
/**
* @brief Opens a VFS file.
*
@ -219,4 +230,57 @@ vfserr_t vfsOpenFile(const char *path, vfs_file_node_t **vfnpp) {
return err;
}
/**
* @brief Releases a @p vfs_file_node_t object.
*
* @param[in] vfnp the pointer to the @p vfs_file_node_t object
* to be released
*/
void vfsCloseFile(vfs_file_node_t *vfnp) {
vfnp->vmt->release((void *)vfnp);
}
/**
* @brief File node read.
* @details The function reads data from a file node into a buffer.
*
* @param[in] vfnp the pointer to the @p vfs_file_node_t object
* @param[out] buf pointer to the data buffer
* @param[in] n the maximum amount of data to be transferred
* @return The transferred number of bytes or an error.
*
* @api
*/
vfserr_t vfsReadFile(vfs_file_node_t *vfnp, char *buf, size_t n) {
vfserr_t err = VFS_RET_SUCCESS;
(void)vfnp;
(void)buf;
(void)n;
return err;
}
/**
* @brief File node write.
* @details The function writes data from a buffer to a file node.
*
* @param[in] vfnp the pointer to the @p vfs_file_node_t object
* @param[out] buf pointer to the data buffer
* @param[in] n the maximum amount of data to be transferred
* @return The transferred number of bytes or an error.
*
* @api
*/
vfserr_t vfsWriteFile(vfs_file_node_t *vfnp, const char *buf, size_t n) {
vfserr_t err = VFS_RET_SUCCESS;
(void)vfnp;
(void)buf;
(void)n;
return err;
}
/** @} */