From 3d8114bcfe48f0d2adc75af028117911de99d701 Mon Sep 17 00:00:00 2001 From: AngryProton <38059101+AngryProton@users.noreply.github.com> Date: Tue, 6 Jan 2026 17:12:55 +0800 Subject: [PATCH] =?UTF-8?q?[FIX][fal]char=E8=AE=BE=E5=A4=87=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=A1=A5=E5=85=85=E7=BC=BA=E5=A4=B1=E7=9A=84=E5=85=A5?= =?UTF-8?q?=E5=8F=82=EF=BC=8C=E9=80=82=E9=85=8DDFSv2=E6=A1=86=E6=9E=B6=20(?= =?UTF-8?q?#11112)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [FIX][fal]补充缺失的入参,适配DFSv2框架 * [FIX][fal]正确声明入参的数据类型 * [chg]按审查建议修改变量类型和代码格式。 --- components/fal/src/fal_rtt.c | 42 ++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/components/fal/src/fal_rtt.c b/components/fal/src/fal_rtt.c index eca8c10914..077191e102 100644 --- a/components/fal/src/fal_rtt.c +++ b/components/fal/src/fal_rtt.c @@ -435,42 +435,56 @@ static int char_dev_fopen(struct dfs_file *fd) return RT_EOK; } -static int char_dev_fread(struct dfs_file *fd, void *buf, rt_size_t count) +#ifdef RT_USING_DFS_V2 +static rt_ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count, off_t *pos) +#else +static rt_ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count) +#endif { - int ret = 0; + rt_ssize_t ret = 0; struct fal_char_device *part = (struct fal_char_device *) fd->vnode->data; +#ifndef RT_USING_DFS_V2 + off_t *pos = &(fd->pos); +#endif RT_ASSERT(part != RT_NULL); - if (DFS_FILE_POS(fd) + count > part->fal_part->len) - count = part->fal_part->len - DFS_FILE_POS(fd); + if (*pos + count > part->fal_part->len) + count = part->fal_part->len - *pos; - ret = fal_partition_read(part->fal_part, DFS_FILE_POS(fd), buf, count); + ret = fal_partition_read(part->fal_part, *pos, buf, count); - if (ret != (int)(count)) + if (ret != (rt_ssize_t)(count)) return 0; - DFS_FILE_POS(fd) += ret; + *pos += ret; return ret; } -static int char_dev_fwrite(struct dfs_file *fd, const void *buf, rt_size_t count) +#ifdef RT_USING_DFS_V2 +static rt_ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count, off_t *pos) +#else +static rt_ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count) +#endif { - int ret = 0; + rt_ssize_t ret = 0; struct fal_char_device *part = (struct fal_char_device *) fd->vnode->data; +#ifndef RT_USING_DFS_V2 + off_t *pos = &(fd->pos); +#endif RT_ASSERT(part != RT_NULL); - if (DFS_FILE_POS(fd) + count > part->fal_part->len) - count = part->fal_part->len - DFS_FILE_POS(fd); + if (*pos + count > part->fal_part->len) + count = part->fal_part->len - *pos; - ret = fal_partition_write(part->fal_part, DFS_FILE_POS(fd), buf, count); + ret = fal_partition_write(part->fal_part, *pos, buf, count); - if (ret != (int) count) + if (ret != (rt_ssize_t) count) return 0; - DFS_FILE_POS(fd) += ret; + *pos += ret; return ret; }