From ac3f6cc66a6baa89e708070e6116db7ffc7153a3 Mon Sep 17 00:00:00 2001 From: angryproton Date: Wed, 31 Dec 2025 14:09:43 +0800 Subject: [PATCH 1/3] =?UTF-8?q?[FIX][fal]=E8=A1=A5=E5=85=85=E7=BC=BA?= =?UTF-8?q?=E5=A4=B1=E7=9A=84=E5=85=A5=E5=8F=82=EF=BC=8C=E9=80=82=E9=85=8D?= =?UTF-8?q?DFSv2=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/fal/src/fal_rtt.c | 44 +++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/components/fal/src/fal_rtt.c b/components/fal/src/fal_rtt.c index eca8c10914e..14a41cdac11 100644 --- a/components/fal/src/fal_rtt.c +++ b/components/fal/src/fal_rtt.c @@ -434,43 +434,55 @@ 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 ssize_t char_dev_fread(struct dfs_file *fd, const void *buf, size_t count, off_t *pos) +#else +static ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count) +#endif { - int ret = 0; + 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 != (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 ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count, off_t *pos) +#else +static ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count) +#endif { - int ret = 0; + 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 != (ssize_t) count) return 0; - DFS_FILE_POS(fd) += ret; + *pos += ret; return ret; } From b196f4d31c7029aed38d69c5866fd8dd7885f822 Mon Sep 17 00:00:00 2001 From: AngryProton <38059101+AngryProton@users.noreply.github.com> Date: Wed, 31 Dec 2025 17:31:49 +0800 Subject: [PATCH 2/3] =?UTF-8?q?[FIX][fal]=E6=AD=A3=E7=A1=AE=E5=A3=B0?= =?UTF-8?q?=E6=98=8E=E5=85=A5=E5=8F=82=E7=9A=84=E6=95=B0=E6=8D=AE=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/fal/src/fal_rtt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/fal/src/fal_rtt.c b/components/fal/src/fal_rtt.c index 14a41cdac11..79c824aae38 100644 --- a/components/fal/src/fal_rtt.c +++ b/components/fal/src/fal_rtt.c @@ -435,7 +435,7 @@ static int char_dev_fopen(struct dfs_file *fd) return RT_EOK; } #ifdef RT_USING_DFS_V2 -static ssize_t char_dev_fread(struct dfs_file *fd, const void *buf, size_t count, off_t *pos) +static ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count, off_t *pos) #else static ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count) #endif From c77e11ac0357beb3c6ec40a77fc42d9030c231d6 Mon Sep 17 00:00:00 2001 From: AngryProton <38059101+AngryProton@users.noreply.github.com> Date: Mon, 5 Jan 2026 13:52:40 +0800 Subject: [PATCH 3/3] =?UTF-8?q?[chg]=E6=8C=89=E5=AE=A1=E6=9F=A5=E5=BB=BA?= =?UTF-8?q?=E8=AE=AE=E4=BF=AE=E6=94=B9=E5=8F=98=E9=87=8F=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=92=8C=E4=BB=A3=E7=A0=81=E6=A0=BC=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/fal/src/fal_rtt.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/components/fal/src/fal_rtt.c b/components/fal/src/fal_rtt.c index 79c824aae38..077191e102e 100644 --- a/components/fal/src/fal_rtt.c +++ b/components/fal/src/fal_rtt.c @@ -434,13 +434,14 @@ static int char_dev_fopen(struct dfs_file *fd) return RT_EOK; } + #ifdef RT_USING_DFS_V2 -static ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count, off_t *pos) +static rt_ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count, off_t *pos) #else -static ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count) +static rt_ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count) #endif { - ssize_t 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); @@ -453,20 +454,21 @@ static ssize_t char_dev_fread(struct dfs_file *fd, void *buf, size_t count) ret = fal_partition_read(part->fal_part, *pos, buf, count); - if (ret != (ssize_t)(count)) + if (ret != (rt_ssize_t)(count)) return 0; *pos += ret; return ret; } + #ifdef RT_USING_DFS_V2 -static ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count, off_t *pos) +static rt_ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count, off_t *pos) #else -static ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count) +static rt_ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t count) #endif { - ssize_t 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); @@ -479,7 +481,7 @@ static ssize_t char_dev_fwrite(struct dfs_file *fd, const void *buf, size_t coun ret = fal_partition_write(part->fal_part, *pos, buf, count); - if (ret != (ssize_t) count) + if (ret != (rt_ssize_t) count) return 0; *pos += ret;