summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorMeco Jianting Man <[email protected]>2021-09-27 06:16:39 -0500
committerGitHub <[email protected]>2021-09-27 06:16:39 -0500
commit37d4abb822c60872bf21f6a1bb0b61e8e1409cc7 (patch)
treeac8e69dbd720d5ad50529a029ba81c9fc9e7d9f9 /components
parent8e287cfdf70da52937eebe59a1e2527775dd1f0c (diff)
parent94bd9f96a4b49e94916a2904eea882792e0460d2 (diff)
Merge branch 'master' into libc_stdio
Diffstat (limited to 'components')
-rw-r--r--components/dfs/Kconfig6
-rw-r--r--components/dfs/filesystems/.ignore_format.yml4
-rw-r--r--components/dfs/filesystems/elmfat/dfs_elm.c4
-rw-r--r--components/dfs/filesystems/elmfat/ffconf.h6
-rw-r--r--components/dfs/src/dfs_select.c2
-rw-r--r--components/libc/Kconfig3
-rw-r--r--components/libc/compilers/common/fcntl.h13
-rw-r--r--components/libc/compilers/newlib/SConscript3
-rw-r--r--components/libc/compilers/newlib/minilib.c66
-rw-r--r--components/libc/compilers/newlib/syscalls.c141
-rw-r--r--components/lwp/lwp_syscall.c2
-rw-r--r--components/net/.ignore_format.yml9
-rw-r--r--components/net/sal_socket/SConscript3
-rw-r--r--components/net/sal_socket/include/dfs_net/sys_select/sys/select.h16
14 files changed, 111 insertions, 167 deletions
diff --git a/components/dfs/Kconfig b/components/dfs/Kconfig
index 442c3bb260..7a4fbb655d 100644
--- a/components/dfs/Kconfig
+++ b/components/dfs/Kconfig
@@ -122,6 +122,12 @@ if RT_USING_DFS
config RT_DFS_ELM_REENTRANT
bool "Enable the reentrancy (thread safe) of the FatFs module"
default y
+
+ config RT_DFS_ELM_MUTEX_TIMEOUT
+ int "Timeout of thread-safe protection mutex"
+ range 0 1000000
+ default 3000
+ depends on RT_DFS_ELM_REENTRANT
endmenu
endif
diff --git a/components/dfs/filesystems/.ignore_format.yml b/components/dfs/filesystems/.ignore_format.yml
new file mode 100644
index 0000000000..e72719df1d
--- /dev/null
+++ b/components/dfs/filesystems/.ignore_format.yml
@@ -0,0 +1,4 @@
+# files format check exclude path, please follow the instructions below to modify;
+
+dir_path:
+- elmfat
diff --git a/components/dfs/filesystems/elmfat/dfs_elm.c b/components/dfs/filesystems/elmfat/dfs_elm.c
index 41f99d7b62..01d303f71f 100644
--- a/components/dfs/filesystems/elmfat/dfs_elm.c
+++ b/components/dfs/filesystems/elmfat/dfs_elm.c
@@ -945,7 +945,7 @@ DWORD get_fattime(void)
{
DWORD fat_time = 0;
-#ifdef RT_LIBC_USING_TIME
+#if defined(RT_LIBC_USING_TIME) || defined(RT_USING_LIBC)
time_t now;
struct tm *p_tm;
struct tm tm_now;
@@ -968,7 +968,7 @@ DWORD get_fattime(void)
(DWORD)tm_now.tm_hour << 11 |
(DWORD)tm_now.tm_min << 5 |
(DWORD)tm_now.tm_sec / 2 ;
-#endif /* RT_USING_LIBC */
+#endif /* defined(RT_LIBC_USING_TIME) || defined(RT_USING_LIBC) */
return fat_time;
}
diff --git a/components/dfs/filesystems/elmfat/ffconf.h b/components/dfs/filesystems/elmfat/ffconf.h
index a17a07d8ea..a6dcebe228 100644
--- a/components/dfs/filesystems/elmfat/ffconf.h
+++ b/components/dfs/filesystems/elmfat/ffconf.h
@@ -295,12 +295,16 @@
/ lock control is independent of re-entrancy. */
/* #include <somertos.h> // O/S definitions */
+#include <rtdef.h>
#ifdef RT_DFS_ELM_REENTRANT
#define FF_FS_REENTRANT 1 /* 0 or 1 */
#else
#define FF_FS_REENTRANT 0 /* 0:Disable or 1:Enable */
#endif
-#define FF_FS_TIMEOUT 1000
+#ifndef RT_DFS_ELM_MUTEX_TIMEOUT
+#define RT_DFS_ELM_MUTEX_TIMEOUT 3000
+#endif
+#define FF_FS_TIMEOUT RT_DFS_ELM_MUTEX_TIMEOUT
#define FF_SYNC_t rt_mutex_t
/* The option FF_FS_REENTRANT switches the re-entrancy (thread safe) of the FatFs
/ module itself. Note that regardless of this option, file access to different
diff --git a/components/dfs/src/dfs_select.c b/components/dfs/src/dfs_select.c
index ca9c549259..795b816354 100644
--- a/components/dfs/src/dfs_select.c
+++ b/components/dfs/src/dfs_select.c
@@ -12,7 +12,7 @@
#include <dfs_posix.h>
#include <poll.h>
-#include <dfs_select.h>
+#include <sys/select.h>
#ifdef RT_USING_POSIX
diff --git a/components/libc/Kconfig b/components/libc/Kconfig
index 37a98ba836..b9600ef389 100644
--- a/components/libc/Kconfig
+++ b/components/libc/Kconfig
@@ -41,6 +41,9 @@ if RT_USING_LIBC && RT_USING_DFS
endif
if RT_USING_LIBC
+ config RT_LIBC_USING_TIME
+ default y
+
config RT_USING_MODULE
bool "Enable dynamic module with dlopen/dlsym/dlclose feature"
default n
diff --git a/components/libc/compilers/common/fcntl.h b/components/libc/compilers/common/fcntl.h
index b98f540627..3460926708 100644
--- a/components/libc/compilers/common/fcntl.h
+++ b/components/libc/compilers/common/fcntl.h
@@ -12,13 +12,10 @@
#include <sys/types.h>
-#if defined(_WIN32)
-#define O_ACCMODE (_O_RDONLY | _O_WRONLY | _O_RDWR)
-#endif
-
-#define O_RDONLY 00
-#define O_WRONLY 01
-#define O_RDWR 02
+#define O_RDONLY 0x0000 /* open for reading only */
+#define O_WRONLY 0x0001 /* open for writing only */
+#define O_RDWR 0x0002 /* open for reading and writing */
+#define O_ACCMODE 0x0003 /* mask for above modes */
#define O_CREAT 0100
#define O_EXCL 0200
@@ -43,8 +40,6 @@
#define O_SEARCH O_PATH
#define O_EXEC O_PATH
-#define O_ACCMODE (03|O_SEARCH)
-
#define F_DUPFD 0
#define F_GETFD 1
#define F_SETFD 2
diff --git a/components/libc/compilers/newlib/SConscript b/components/libc/compilers/newlib/SConscript
index 542cdecd40..cef546e17c 100644
--- a/components/libc/compilers/newlib/SConscript
+++ b/components/libc/compilers/newlib/SConscript
@@ -18,11 +18,10 @@ if rtconfig.PLATFORM == 'gcc':
LIBS += ['c', 'm']
src += Glob('*.c')
- SrcRemove(src, ['minilib.c'])
if GetDepend('RT_USING_MODULE') == False:
SrcRemove(src, ['libc_syms.c'])
else:
- src += ['minilib.c']
+ src += ['syscalls.c']
group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES, LIBS = LIBS)
diff --git a/components/libc/compilers/newlib/minilib.c b/components/libc/compilers/newlib/minilib.c
deleted file mode 100644
index 612554ca66..0000000000
--- a/components/libc/compilers/newlib/minilib.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2021-02-23 Meco Man first version
- */
-
-#include <reent.h>
-#include <rtthread.h>
-
-#ifdef RT_USING_HEAP /* Memory routine */
-#include <sys/errno.h>
-
-void * _malloc_r (struct _reent *ptr, size_t size)
-{
- void* result;
-
- result = (void*)rt_malloc (size);
- if (result == RT_NULL)
- {
- ptr->_errno = ENOMEM;
- }
-
- return result;
-}
-
-void * _realloc_r (struct _reent *ptr, void *old, size_t newlen)
-{
- void* result;
-
- result = (void*)rt_realloc (old, newlen);
- if (result == RT_NULL)
- {
- ptr->_errno = ENOMEM;
- }
-
- return result;
-}
-
-void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
-{
- void* result;
-
- result = (void*)rt_calloc (size, len);
- if (result == RT_NULL)
- {
- ptr->_errno = ENOMEM;
- }
-
- return result;
-}
-
-void _free_r (struct _reent *ptr, void *addr)
-{
- rt_free (addr);
-}
-
-#else
-void * _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
-{
- return RT_NULL;
-}
-#endif /*RT_USING_HEAP*/
diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c
index 7ba06312ea..1cb7475fe1 100644
--- a/components/libc/compilers/newlib/syscalls.c
+++ b/components/libc/compilers/newlib/syscalls.c
@@ -12,17 +12,82 @@
*/
#include <reent.h>
-#include <sys/errno.h>
-#include <stdio.h>
+#include <rtthread.h>
+#include <stddef.h>
#include <unistd.h>
-#include <sys/time.h>
+#include <sys/errno.h>
-#include <rtthread.h>
+#define DBG_TAG "newlib.syscalls"
+#define DBG_LVL DBG_INFO
+#include <rtdbg.h>
+
+#ifdef RT_USING_HEAP /* Memory routine */
+void *_malloc_r (struct _reent *ptr, size_t size)
+{
+ void* result;
+
+ result = (void*)rt_malloc (size);
+ if (result == RT_NULL)
+ {
+ ptr->_errno = ENOMEM;
+ }
+
+ return result;
+}
+
+void *_realloc_r (struct _reent *ptr, void *old, size_t newlen)
+{
+ void* result;
+ result = (void*)rt_realloc (old, newlen);
+ if (result == RT_NULL)
+ {
+ ptr->_errno = ENOMEM;
+ }
+
+ return result;
+}
+
+void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
+{
+ void* result;
+
+ result = (void*)rt_calloc (size, len);
+ if (result == RT_NULL)
+ {
+ ptr->_errno = ENOMEM;
+ }
+
+ return result;
+}
+
+void _free_r (struct _reent *ptr, void *addr)
+{
+ rt_free (addr);
+}
+
+#else
+void *
+_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
+{
+ LOG_E("Please enable RT_USING_HEAP or RT_USING_LIBC");
+ RT_ASSERT(0);
+ return RT_NULL;
+}
+#endif /*RT_USING_HEAP*/
+
+void __libc_init_array(void)
+{
+ /* we not use __libc init_aray to initialize C++ objects */
+ /* __libc_init_array is ARM code, not Thumb; it will cause a hardfault. */
+}
+
+#ifdef RT_USING_LIBC
+#include <reent.h>
+#include <stdio.h>
#ifdef RT_USING_DFS
#include <dfs_posix.h>
#endif
-
#ifdef RT_USING_MODULE
#include <dlmodule.h>
#endif
@@ -246,58 +311,11 @@ _ssize_t _write_r(struct _reent *ptr, int fd, const void *buf, size_t nbytes)
#endif
}
-#ifdef RT_USING_HEAP /* Memory routine */
-void *_malloc_r (struct _reent *ptr, size_t size)
-{
- void* result;
-
- result = (void*)rt_malloc (size);
- if (result == RT_NULL)
- {
- ptr->_errno = ENOMEM;
- }
-
- return result;
-}
-
-void *_realloc_r (struct _reent *ptr, void *old, size_t newlen)
-{
- void* result;
-
- result = (void*)rt_realloc (old, newlen);
- if (result == RT_NULL)
- {
- ptr->_errno = ENOMEM;
- }
-
- return result;
-}
-
-void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
-{
- void* result;
-
- result = (void*)rt_calloc (size, len);
- if (result == RT_NULL)
- {
- ptr->_errno = ENOMEM;
- }
-
- return result;
-}
-
-void _free_r (struct _reent *ptr, void *addr)
-{
- rt_free (addr);
-}
-
-#else
-void *
-_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
+void _system(const char *s)
{
- return RT_NULL;
+ extern int __rt_libc_system(const char *string);
+ __rt_libc_system(s);
}
-#endif /*RT_USING_HEAP*/
/* for exit() and abort() */
__attribute__ ((noreturn)) void _exit (int status)
@@ -307,17 +325,6 @@ __attribute__ ((noreturn)) void _exit (int status)
while(1);
}
-void _system(const char *s)
-{
- extern int __rt_libc_system(const char *string);
- __rt_libc_system(s);
-}
-
-void __libc_init_array(void)
-{
- /* we not use __libc init_aray to initialize C++ objects */
-}
-
mode_t umask(mode_t mask)
{
return 022;
@@ -333,3 +340,5 @@ These functions are implemented and replaced by the 'common/time.c' file
int _gettimeofday_r(struct _reent *ptr, struct timeval *__tp, void *__tzp);
_CLOCK_T_ _times_r(struct _reent *ptr, struct tms *ptms);
*/
+
+#endif /* RT_USING_LIBC */
diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c
index d9112eed3e..f9bc84ea97 100644
--- a/components/lwp/lwp_syscall.c
+++ b/components/lwp/lwp_syscall.c
@@ -14,7 +14,7 @@
#include <lwp_syscall.h>
#include <poll.h>
-#include <dfs_select.h>
+#include <sys/select.h>
#if (defined(RT_USING_SAL) && defined(SAL_USING_POSIX))
#include <sys/socket.h>
diff --git a/components/net/.ignore_format.yml b/components/net/.ignore_format.yml
new file mode 100644
index 0000000000..20c40e6436
--- /dev/null
+++ b/components/net/.ignore_format.yml
@@ -0,0 +1,9 @@
+# files format check exclude path, please follow the instructions below to modify;
+# If you need to exclude an entire folder, add the folder path in dir_path;
+# If you need to exclude a file, add the path to the file in file_path.
+
+dir_path:
+- lwip-1.4.1
+- lwip-2.0.2
+- lwip-2.0.3
+- lwip-2.1.2
diff --git a/components/net/sal_socket/SConscript b/components/net/sal_socket/SConscript
index cc7634f7d9..3903dce89a 100644
--- a/components/net/sal_socket/SConscript
+++ b/components/net/sal_socket/SConscript
@@ -26,9 +26,6 @@ if GetDepend('SAL_USING_POSIX'):
CPPPATH += [cwd + '/include/dfs_net']
src += Glob('socket/net_sockets.c')
src += Glob('dfs_net/*.c')
-
- if not GetDepend('HAVE_SYS_SELECT_H'):
- CPPPATH += [cwd + '/include/dfs_net/sys_select']
if not GetDepend('HAVE_SYS_SOCKET_H'):
CPPPATH += [cwd + '/include/socket/sys_socket']
diff --git a/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h b/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h
deleted file mode 100644
index f174bc6504..0000000000
--- a/components/net/sal_socket/include/dfs_net/sys_select/sys/select.h
+++ /dev/null
@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2015-05-02 Bernard First version
- */
-
-#ifndef SELECT_H__
-#define SELECT_H__
-
-#include <dfs_select.h>
-
-#endif