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

This commit is contained in:
Giovanni Di Sirio 2021-11-22 13:55:23 +00:00
parent 8be0e6d9ae
commit 6c1ff11e02
5 changed files with 22 additions and 38 deletions

View File

@ -64,11 +64,12 @@
#define CH_VFS_PATCH 0
/** @} */
#include <stddef.h>
#include <unistd.h>
/* Dependencies.*/
#include "osal.h"
#include "hal_objects.h"
#include "hal_streams.h"
/* License.*/
#include "chlicense.h"

View File

@ -36,13 +36,13 @@
* @name Error codes compatible with HAL streams
* @{
*/
#define VFS_RET_SUCCESS STM_OK
#define VFS_RET_TIMEOUT STM_TIMEOUT
#define VFS_RET_EOF STM_RESET
#define VFS_RET_NO_RESOURCE (msg_t)-3
#define VFS_RET_NO_DRIVER (msg_t)-4
#define VFS_RET_INVALID_PATH (msg_t)-5
#define VFS_RET_NOT_FOUND (msg_t)-6
#define VFS_RET_SUCCESS 0
#define VFS_RET_TIMEOUT -1
#define VFS_RET_EOF -2
#define VFS_RET_PAST_LIMIT -3
#define VFS_RET_NO_DRIVER -4
#define VFS_RET_INVALID_PATH -5
#define VFS_RET_NOT_FOUND -6
/** @} */
/*===========================================================================*/

View File

@ -175,8 +175,9 @@ typedef struct vfs_file_node vfs_file_node_t;
*/
#define __vfs_file_node_methods \
__vfs_node_methods \
msg_t (*file_read)(void *instance, uint8_t *buf, size_t n); \
msg_t (*file_write)(void *instance, const uint8_t *buf, size_t n); \
BaseSequentialStream (*get_stream)(void *instance); \
ssize_t (*file_read)(void *instance, uint8_t *buf, size_t n); \
ssize_t (*file_write)(void *instance, const uint8_t *buf, size_t n); \
msg_t (*file_setpos)(void *instance, vfs_offset_t offset); \
vfs_offset_t (*file_getpos)(void *instance); \
vfs_offset_t (*file_getsize)(void *instance);

View File

@ -121,8 +121,8 @@ extern "C" {
void vfsCloseDirectory(vfs_directory_node_t *vdnp);
msg_t vfsOpenFile(const char *name, vfs_file_node_t **vfnpp);
void vfsCloseFile(vfs_file_node_t *vfnp);
msg_t vfsReadFile(vfs_file_node_t *vfnp, uint8_t *buf, size_t n);
msg_t vfsWriteFile(vfs_file_node_t *vfnp, const uint8_t *buf, size_t n);
ssize_t vfsReadFile(vfs_file_node_t *vfnp, uint8_t *buf, size_t n);
ssize_t vfsWriteFile(vfs_file_node_t *vfnp, const uint8_t *buf, size_t n);
msg_t vfsSetFilePosition(vfs_file_node_t *vfnp, vfs_offset_t offset);
vfs_offset_t vfsGetFilePosition(vfs_file_node_t *vfnp);
vfs_offset_t vfsGetFileSize(vfs_file_node_t *vfnp);

View File

@ -117,7 +117,7 @@ msg_t vfsRegisterDriver(vfs_driver_t *vdp) {
VFS_LOCK();
if (vfs.next_driver >= &vfs.drivers[VFS_CFG_MAX_DRIVERS]) {
err = VFS_RET_NO_RESOURCE;
err = VFS_RET_PAST_LIMIT;
}
else {
*vfs.next_driver++ = vdp;
@ -248,14 +248,9 @@ void vfsCloseFile(vfs_file_node_t *vfnp) {
*
* @api
*/
msg_t vfsReadFile(vfs_file_node_t *vfnp, uint8_t *buf, size_t n) {
msg_t err = VFS_RET_SUCCESS;
ssize_t vfsReadFile(vfs_file_node_t *vfnp, uint8_t *buf, size_t n) {
(void)vfnp;
(void)buf;
(void)n;
return err;
return vfnp->vmt->file_read((void *)vfnp, buf, n);
}
/**
@ -269,14 +264,9 @@ msg_t vfsReadFile(vfs_file_node_t *vfnp, uint8_t *buf, size_t n) {
*
* @api
*/
msg_t vfsWriteFile(vfs_file_node_t *vfnp, const uint8_t *buf, size_t n) {
msg_t err = VFS_RET_SUCCESS;
ssize_t vfsWriteFile(vfs_file_node_t *vfnp, const uint8_t *buf, size_t n) {
(void)vfnp;
(void)buf;
(void)n;
return err;
return vfnp->vmt->file_write((void *)vfnp, buf, n);
}
/**
@ -289,12 +279,8 @@ msg_t vfsWriteFile(vfs_file_node_t *vfnp, const uint8_t *buf, size_t n) {
* @api
*/
msg_t vfsSetFilePosition(vfs_file_node_t *vfnp, vfs_offset_t offset) {
msg_t err = VFS_RET_SUCCESS;
(void)vfnp;
(void)offset;
return err;
return vfnp->vmt->file_setpos((void *)vfnp, offset);
}
/**
@ -307,9 +293,7 @@ msg_t vfsSetFilePosition(vfs_file_node_t *vfnp, vfs_offset_t offset) {
*/
vfs_offset_t vfsGetFilePosition(vfs_file_node_t *vfnp) {
(void)vfnp;
return 0;
return vfnp->vmt->file_getpos((void *)vfnp);
}
/**
@ -322,9 +306,7 @@ vfs_offset_t vfsGetFilePosition(vfs_file_node_t *vfnp) {
*/
vfs_offset_t vfsGetFileSize(vfs_file_node_t *vfnp) {
(void)vfnp;
return 0;
return vfnp->vmt->file_getsize((void *)vfnp);
}
/** @} */