summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/dfs/include/dfs.h27
-rw-r--r--components/dfs/include/dfs_posix.h8
-rw-r--r--components/libc/compilers/common/dirent.h23
-rw-r--r--include/libc/libc_dirent.h17
-rw-r--r--include/rtlibc.h1
5 files changed, 23 insertions, 53 deletions
diff --git a/components/dfs/include/dfs.h b/components/dfs/include/dfs.h
index 80dc433787..0fd8c2dccc 100644
--- a/components/dfs/include/dfs.h
+++ b/components/dfs/include/dfs.h
@@ -15,17 +15,20 @@
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
-
-#include <time.h>
-#include <rtthread.h>
+#include <dirent.h>
+#include <sys/time.h>
#include <rtdevice.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef DFS_FILESYSTEMS_MAX
-#define DFS_FILESYSTEMS_MAX 2
+#define DFS_FILESYSTEMS_MAX 4
#endif
#ifndef DFS_FD_MAX
-#define DFS_FD_MAX 4
+#define DFS_FD_MAX 16
#endif
/*
@@ -36,7 +39,7 @@
#endif
#ifndef DFS_PATH_MAX
-#define DFS_PATH_MAX 256
+#define DFS_PATH_MAX DIRENT_NAME_MAX
#endif
#ifndef SECTOR_SIZE
@@ -63,10 +66,6 @@
#define DFS_F_EOF 0x04000000
#define DFS_F_ERR 0x08000000
-#ifdef __cplusplus
-extern "C" {
-#endif
-
struct statfs
{
size_t f_bsize; /* block size */
@@ -74,14 +73,6 @@ struct statfs
size_t f_bfree; /* free blocks in file system */
};
-struct dirent
-{
- uint8_t d_type; /* The type of the file */
- uint8_t d_namlen; /* The length of the not including the terminating null file name */
- uint16_t d_reclen; /* length of this record */
- char d_name[DFS_PATH_MAX]; /* The null-terminated file name */
-};
-
struct dfs_fdtable
{
uint32_t maxfd;
diff --git a/components/dfs/include/dfs_posix.h b/components/dfs/include/dfs_posix.h
index 0475460d95..ec7cdc9de4 100644
--- a/components/dfs/include/dfs_posix.h
+++ b/components/dfs/include/dfs_posix.h
@@ -21,14 +21,6 @@
extern "C" {
#endif
-typedef struct
-{
- int fd; /* directory file */
- char buf[512];
- int num;
- int cur;
-} DIR;
-
/* directory api*/
int mkdir(const char *path, mode_t mode);
DIR *opendir(const char *name);
diff --git a/components/libc/compilers/common/dirent.h b/components/libc/compilers/common/dirent.h
index bfba586093..a6353fd6f8 100644
--- a/components/libc/compilers/common/dirent.h
+++ b/components/libc/compilers/common/dirent.h
@@ -6,10 +6,14 @@
* Change Logs:
* Date Author Notes
*/
-#ifndef __RTT_DIRENT_H__
-#define __RTT_DIRENT_H__
+#ifndef __DIRENT_H__
+#define __DIRENT_H__
-#include <rtthread.h>
+#include <rtdef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* dirent.h - format of directory entries
@@ -26,27 +30,28 @@
#define DT_REG 0x01
#define DT_DIR 0x02
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#ifndef HAVE_DIR_STRUCTURE
+#define HAVE_DIR_STRUCTURE
typedef struct
{
int fd; /* directory file */
char buf[512];
int num;
int cur;
-} DIR;
+}DIR;
#endif
#ifndef HAVE_DIRENT_STRUCTURE
+#define HAVE_DIRENT_STRUCTURE
+
+#define DIRENT_NAME_MAX 256
+
struct dirent
{
rt_uint8_t d_type; /* The type of the file */
rt_uint8_t d_namlen; /* The length of the not including the terminating null file name */
rt_uint16_t d_reclen; /* length of this record */
- char d_name[256]; /* The null-terminated file name */
+ char d_name[DIRENT_NAME_MAX]; /* The null-terminated file name */
};
#endif
diff --git a/include/libc/libc_dirent.h b/include/libc/libc_dirent.h
deleted file mode 100644
index a86332e633..0000000000
--- a/include/libc/libc_dirent.h
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-
-#ifndef LIBC_DIRENT_H__
-#define LIBC_DIRENT_H__
-
-#define DT_UNKNOWN 0x00
-#define DT_REG 0x01
-#define DT_DIR 0x02
-
-#endif
diff --git a/include/rtlibc.h b/include/rtlibc.h
index 4b145b1b1b..b59a29dadb 100644
--- a/include/rtlibc.h
+++ b/include/rtlibc.h
@@ -14,7 +14,6 @@
/* definitions for libc if toolchain has no these definitions */
#include "libc/libc_stat.h"
#include "libc/libc_fcntl.h"
-#include "libc/libc_dirent.h"
#ifndef RT_USING_LIBC
#if defined(__ARMCC_VERSION) || defined(__IAR_SYSTEMS_ICC__)