Browse Source

Merge pull request #4626 from mysterywolf/libc

重新整理common文件夹
Bernard Xiong 4 years ago
parent
commit
428946c6ae
30 changed files with 35 additions and 411 deletions
  1. 3 0
      components/dfs/include/dfs_fs.h
  2. 0 62
      components/libc/compilers/armlibc/dirent.h
  3. 0 1
      components/libc/compilers/armlibc/sys/README.md
  4. 0 14
      components/libc/compilers/armlibc/sys/errno.h
  5. 0 58
      components/libc/compilers/armlibc/sys/mman.h
  6. 5 1
      components/libc/compilers/common/SConscript
  7. 0 0
      components/libc/compilers/common/dirent.h
  8. 13 0
      components/libc/compilers/common/none-gcc/SConscript
  9. 0 0
      components/libc/compilers/common/none-gcc/fcntl.h
  10. 3 0
      components/libc/compilers/common/none-gcc/readme.md
  11. 0 0
      components/libc/compilers/common/none-gcc/sys/stat.h
  12. 2 0
      components/libc/compilers/common/none-gcc/sys/types.h
  13. 0 0
      components/libc/compilers/common/none-gcc/sys/unistd.h
  14. 0 0
      components/libc/compilers/common/none-gcc/unistd.h
  15. 1 1
      components/libc/compilers/common/readme.md
  16. 4 1
      components/libc/compilers/common/sys/ioctl.h
  17. 2 0
      components/libc/compilers/common/sys/mman.h
  18. 0 0
      components/libc/compilers/common/sys/statfs.h
  19. 0 0
      components/libc/compilers/common/sys/termios.h
  20. 0 62
      components/libc/compilers/dlib/dirent.h
  21. 0 8
      components/libc/compilers/dlib/fcntl.h
  22. 0 1
      components/libc/compilers/dlib/sys/README.md
  23. 0 16
      components/libc/compilers/dlib/sys/errno.h
  24. 0 58
      components/libc/compilers/dlib/sys/mman.h
  25. 0 16
      components/libc/compilers/dlib/sys/signal.h
  26. 0 8
      components/libc/compilers/dlib/sys/stat.h
  27. 0 33
      components/libc/compilers/dlib/sys/types.h
  28. 0 57
      components/libc/compilers/dlib/sys/unistd.h
  29. 0 14
      components/libc/compilers/dlib/unistd.h
  30. 2 0
      include/rtlibc.h

+ 3 - 0
components/dfs/include/dfs_fs.h

@@ -12,6 +12,9 @@
 #define __DFS_FS_H__
 
 #include <dfs.h>
+#ifdef RT_USING_LIBC
+#include <sys/types.h>
+#endif
 
 #ifdef __cplusplus
 extern "C" {

+ 0 - 62
components/libc/compilers/armlibc/dirent.h

@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#ifndef __RTT_DIRENT_H__
-#define __RTT_DIRENT_H__
-
-#include <rtthread.h>
-#include <rtlibc.h>
-
-/*
-* dirent.h - format of directory entries
- * Ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html
- */
-
-/* File types */
-#define FT_REGULAR      0   /* regular file */
-#define FT_SOCKET       1   /* socket file  */
-#define FT_DIRECTORY    2   /* directory    */
-#define FT_USER         3   /* user defined */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HAVE_DIR_STRUCTURE
-typedef struct
-{
-    int fd;                         /* directory file */
-    char buf[512];
-    int num;
-    int cur;
-} DIR;
-#endif
-
-#ifndef HAVE_DIRENT_STRUCTURE
-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 */
-};
-#endif
-
-int            closedir(DIR *);
-DIR           *opendir(const char *);
-struct dirent *readdir(DIR *);
-int            readdir_r(DIR *, struct dirent *, struct dirent **);
-void           rewinddir(DIR *);
-void           seekdir(DIR *, long int);
-long           telldir(DIR *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 1
components/libc/compilers/armlibc/sys/README.md

@@ -1 +0,0 @@
-Because Keil MDK leaks some system header file, we put them in here. 

+ 0 - 14
components/libc/compilers/armlibc/sys/errno.h

@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#ifndef SYS_ERRNO_H__
-#define SYS_ERRNO_H__
-
-#include <rtthread.h>
-
-#endif

+ 0 - 58
components/libc/compilers/armlibc/sys/mman.h

@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/11/30     Bernard      The first version.
- */
-
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAP_FAILED     ((void *) -1)
-
-#define MAP_SHARED     0x01
-#define MAP_PRIVATE    0x02
-#define MAP_TYPE       0x0f
-#define MAP_FIXED      0x10
-#define MAP_ANON       0x20
-#define MAP_ANONYMOUS  MAP_ANON
-#define MAP_NORESERVE  0x4000
-#define MAP_GROWSDOWN  0x0100
-#define MAP_DENYWRITE  0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED     0x2000
-#define MAP_POPULATE   0x8000
-#define MAP_NONBLOCK   0x10000
-#define MAP_STACK      0x20000
-#define MAP_HUGETLB    0x40000
-#define MAP_FILE       0
-
-#define PROT_NONE      0
-#define PROT_READ      1
-#define PROT_WRITE     2
-#define PROT_EXEC      4
-#define PROT_GROWSDOWN 0x01000000
-#define PROT_GROWSUP   0x02000000
-
-#define MS_ASYNC       1
-#define MS_INVALIDATE  2
-#define MS_SYNC        4
-
-#define MCL_CURRENT    1
-#define MCL_FUTURE     2
-#define MCL_ONFAULT    4
-
-void *mmap (void *start, size_t len, int prot, int flags, int fd, off_t off);
-int munmap (void *start, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-#endif

+ 5 - 1
components/libc/compilers/common/SConscript

@@ -23,5 +23,9 @@ else:
 
 if GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME'):
     group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
-
+    list = os.listdir(cwd)
+    for d in list:
+        path = os.path.join(cwd, d)
+        if os.path.isfile(os.path.join(path, 'SConscript')):
+            group = group + SConscript(os.path.join(d, 'SConscript'))
 Return('group')

+ 0 - 0
components/libc/compilers/newlib/sys/dirent.h → components/libc/compilers/common/dirent.h


+ 13 - 0
components/libc/compilers/common/none-gcc/SConscript

@@ -0,0 +1,13 @@
+from building import *
+
+Import('rtconfig')
+
+src   = []
+cwd   = GetCurrentDir()
+CPPPATH = [cwd]
+group = []
+src += Glob('*.c')
+
+if rtconfig.PLATFORM != 'gcc':
+    group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH)
+Return('group')

+ 0 - 0
components/libc/compilers/armlibc/fcntl.h → components/libc/compilers/common/none-gcc/fcntl.h


+ 3 - 0
components/libc/compilers/common/none-gcc/readme.md

@@ -0,0 +1,3 @@
+## Attentions
+
+This folder is "common" for toolchains excluding gcc.

+ 0 - 0
components/libc/compilers/armlibc/sys/stat.h → components/libc/compilers/common/none-gcc/sys/stat.h


+ 2 - 0
components/libc/compilers/armlibc/sys/types.h → components/libc/compilers/common/none-gcc/sys/types.h

@@ -18,6 +18,8 @@ typedef int32_t          key_t;         /* Used for interprocess communication.
 typedef int              pid_t;         /* Used for process IDs and process group IDs. */
 typedef unsigned short   uid_t;
 typedef unsigned short   gid_t;
+typedef signed long      off_t;
+typedef int              mode_t;
 #ifndef ARCH_CPU_64BIT
 typedef signed int       ssize_t;       /* Used for a count of bytes or an error indication. */
 #else

+ 0 - 0
components/libc/compilers/armlibc/sys/unistd.h → components/libc/compilers/common/none-gcc/sys/unistd.h


+ 0 - 0
components/libc/compilers/armlibc/unistd.h → components/libc/compilers/common/none-gcc/unistd.h


+ 1 - 1
components/libc/compilers/common/readme.md

@@ -1,6 +1,6 @@
 ## Attentions
 
-1. This folder is "common" for armlibc newlibc and dlib.
+1. This folder is "common" for all toolchains.
 
 2. If you want to add new `.c` files, please do not forget to fix SConscript file too. eg:
 

+ 4 - 1
components/libc/compilers/common/sys/ioctl.h

@@ -10,6 +10,9 @@
 #ifndef _SYS_IOCTL_H
 #define _SYS_IOCTL_H
 
-
+#include <rtconfig.h>
+#ifdef RT_USING_POSIX
+#include <dfs_posix.h>
+#endif
 
 #endif

+ 2 - 0
components/libc/compilers/newlib/sys/mman.h → components/libc/compilers/common/sys/mman.h

@@ -15,6 +15,8 @@
 extern "C" {
 #endif
 
+#include <sys/types.h>
+    
 #define MAP_FAILED     ((void *) -1)
 
 #define MAP_SHARED     0x01

+ 0 - 0
components/libc/compilers/newlib/sys/statfs.h → components/libc/compilers/common/sys/statfs.h


+ 0 - 0
components/libc/compilers/newlib/sys/termios.h → components/libc/compilers/common/sys/termios.h


+ 0 - 62
components/libc/compilers/dlib/dirent.h

@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#ifndef __RTT_DIRENT_H__
-#define __RTT_DIRENT_H__
-
-#include <rtthread.h>
-#include <rtlibc.h>
-
-/*
-* dirent.h - format of directory entries
- * Ref: http://www.opengroup.org/onlinepubs/009695399/basedefs/dirent.h.html
- */
-
-/* File types */
-#define FT_REGULAR      0   /* regular file */
-#define FT_SOCKET       1   /* socket file  */
-#define FT_DIRECTORY    2   /* directory    */
-#define FT_USER         3   /* user defined */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef HAVE_DIR_STRUCTURE
-typedef struct
-{
-    int fd;                         /* directory file */
-    char buf[512];
-    int num;
-    int cur;
-} DIR;
-#endif
-
-#ifndef HAVE_DIRENT_STRUCTURE
-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 */
-};
-#endif
-
-int            closedir(DIR *);
-DIR           *opendir(const char *);
-struct dirent *readdir(DIR *);
-int            readdir_r(DIR *, struct dirent *, struct dirent **);
-void           rewinddir(DIR *);
-void           seekdir(DIR *, long int);
-long           telldir(DIR *);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif

+ 0 - 8
components/libc/compilers/dlib/fcntl.h

@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */

+ 0 - 1
components/libc/compilers/dlib/sys/README.md

@@ -1 +0,0 @@
-Because IAR leaks some system header file, we put them in here. 

+ 0 - 16
components/libc/compilers/dlib/sys/errno.h

@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2019-07-08     Bernard      The first version
- */
-
-#ifndef SYS_ERRNO_H__
-#define SYS_ERRNO_H__
-
-#include <errno.h>
-
-#endif

+ 0 - 58
components/libc/compilers/dlib/sys/mman.h

@@ -1,58 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2017/11/30     Bernard      The first version.
- */
-
-#ifndef _SYS_MMAN_H
-#define _SYS_MMAN_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAP_FAILED     ((void *) -1)
-
-#define MAP_SHARED     0x01
-#define MAP_PRIVATE    0x02
-#define MAP_TYPE       0x0f
-#define MAP_FIXED      0x10
-#define MAP_ANON       0x20
-#define MAP_ANONYMOUS  MAP_ANON
-#define MAP_NORESERVE  0x4000
-#define MAP_GROWSDOWN  0x0100
-#define MAP_DENYWRITE  0x0800
-#define MAP_EXECUTABLE 0x1000
-#define MAP_LOCKED     0x2000
-#define MAP_POPULATE   0x8000
-#define MAP_NONBLOCK   0x10000
-#define MAP_STACK      0x20000
-#define MAP_HUGETLB    0x40000
-#define MAP_FILE       0
-
-#define PROT_NONE      0
-#define PROT_READ      1
-#define PROT_WRITE     2
-#define PROT_EXEC      4
-#define PROT_GROWSDOWN 0x01000000
-#define PROT_GROWSUP   0x02000000
-
-#define MS_ASYNC       1
-#define MS_INVALIDATE  2
-#define MS_SYNC        4
-
-#define MCL_CURRENT    1
-#define MCL_FUTURE     2
-#define MCL_ONFAULT    4
-
-void *mmap (void *start, size_t len, int prot, int flags, int fd, off_t off);
-int munmap (void *start, size_t len);
-
-#ifdef __cplusplus
-}
-#endif
-#endif

+ 0 - 16
components/libc/compilers/dlib/sys/signal.h

@@ -1,16 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2019-07-08     Bernard      The first version
- */
-
-#ifndef SYS_SIGNAL_H__
-#define SYS_SIGNAL_H__
-
-#include <libc/libc_signal.h>
-
-#endif

+ 0 - 8
components/libc/compilers/dlib/sys/stat.h

@@ -1,8 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */

+ 0 - 33
components/libc/compilers/dlib/sys/types.h

@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2020-12-16     Meco Man     add useconds_t
- */
-#ifndef __TYPES_H__
-#define __TYPES_H__
-
-#include <stdint.h>
-
-typedef int32_t          clockid_t;
-typedef int32_t          key_t;         /* Used for interprocess communication. */
-typedef int              pid_t;         /* Used for process IDs and process group IDs. */
-typedef unsigned short   uid_t;
-typedef unsigned short   gid_t;
-#ifndef ARCH_CPU_64BIT
-typedef signed int       ssize_t;       /* Used for a count of bytes or an error indication. */
-#else
-typedef long signed int  ssize_t;       /* Used for a count of bytes or an error indication. */
-#endif
-typedef unsigned long    useconds_t;    /* microseconds (unsigned) */
-
-typedef unsigned long    dev_t;
-
-typedef unsigned int     u_int;
-typedef unsigned char    u_char;
-typedef unsigned long    u_long;
-
-#endif

+ 0 - 57
components/libc/compilers/dlib/sys/unistd.h

@@ -1,57 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- * 2020-12-16     Meco Man     add usleep
- */
-#ifndef _SYS_UNISTD_H
-#define _SYS_UNISTD_H
-
-#include <rtconfig.h>
-#include "types.h"
-
-#ifdef RT_USING_DFS
-
-#define STDIN_FILENO    0       /* standard input file descriptor */
-#define STDOUT_FILENO   1       /* standard output file descriptor */
-#define STDERR_FILENO   2       /* standard error file descriptor */
-
-#include <dfs_posix.h>
-#else
-#define _FREAD      0x0001  /* read enabled */
-#define _FWRITE     0x0002  /* write enabled */
-#define _FAPPEND    0x0008  /* append (writes guaranteed at the end) */
-#define _FMARK      0x0010  /* internal; mark during gc() */
-#define _FDEFER     0x0020  /* internal; defer for next gc pass */
-#define _FASYNC     0x0040  /* signal pgrp when data ready */
-#define _FSHLOCK    0x0080  /* BSD flock() shared lock present */
-#define _FEXLOCK    0x0100  /* BSD flock() exclusive lock present */
-#define _FCREAT     0x0200  /* open with file create */
-#define _FTRUNC     0x0400  /* open with truncation */
-#define _FEXCL      0x0800  /* error on open if file exists */
-#define _FNBIO      0x1000  /* non blocking I/O (sys5 style) */
-#define _FSYNC      0x2000  /* do all writes synchronously */
-#define _FNONBLOCK  0x4000  /* non blocking I/O (POSIX style) */
-#define _FNDELAY    _FNONBLOCK  /* non blocking I/O (4.2 style) */
-#define _FNOCTTY    0x8000  /* don't assign a ctty on this open */
-
-#endif
-
-
-int     isatty      (int fd);
-char *  ttyname     (int desc);
-
-unsigned int sleep(unsigned int seconds);
-int usleep(useconds_t usec);
-
-pid_t getpid(void);
-pid_t getppid(void);
-uid_t getuid(void);
-uid_t geteuid(void);
-gid_t getgid(void);
-gid_t getegid(void);
-
-#endif /* _SYS_UNISTD_H */

+ 0 - 14
components/libc/compilers/dlib/unistd.h

@@ -1,14 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date           Author       Notes
- */
-#ifndef _UNISTD_H_
-#define _UNISTD_H_
-
-# include "sys/unistd.h"
-
-#endif /* _UNISTD_H_ */

+ 2 - 0
include/rtlibc.h

@@ -23,10 +23,12 @@
 #include "libc/libc_limits.h"
 #include "libc/libc_stdio.h"
 
+#ifndef RT_USING_LIBC
 #if defined(__CC_ARM) || defined(__CLANG_ARM) || defined(__IAR_SYSTEMS_ICC__)
 typedef signed long off_t;
 typedef int mode_t;
 #endif
+#endif
 
 #if defined(__MINGW32__) || defined(_WIN32)
 typedef signed long off_t;