Pārlūkot izejas kodu

[FIX][fal]char设备类型补充缺失的入参,适配DFSv2框架 (#11112)

* [FIX][fal]补充缺失的入参,适配DFSv2框架

* [FIX][fal]正确声明入参的数据类型

* [chg]按审查建议修改变量类型和代码格式。
AngryProton 5 dienas atpakaļ
vecāks
revīzija
3d8114bcfe
1 mainītis faili ar 28 papildinājumiem un 14 dzēšanām
  1. 28 14
      components/fal/src/fal_rtt.c

+ 28 - 14
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;
 }