diff --git a/components/libc/compilers/armlibc/dirent.h b/components/libc/compilers/armlibc/dirent.h deleted file mode 100644 index 2c0521d2e3960a94898b449aac579716182ea3b8..0000000000000000000000000000000000000000 --- a/components/libc/compilers/armlibc/dirent.h +++ /dev/null @@ -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 -#include - -/* -* 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 diff --git a/components/libc/compilers/armlibc/sys/mman.h b/components/libc/compilers/armlibc/sys/mman.h deleted file mode 100644 index 6a260ccd702977baa72f1c8ec8db648a2e8a9293..0000000000000000000000000000000000000000 --- a/components/libc/compilers/armlibc/sys/mman.h +++ /dev/null @@ -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 diff --git a/components/libc/compilers/common/SConscript b/components/libc/compilers/common_all/SConscript similarity index 100% rename from components/libc/compilers/common/SConscript rename to components/libc/compilers/common_all/SConscript diff --git a/components/libc/compilers/newlib/sys/dirent.h b/components/libc/compilers/common_all/dirent.h similarity index 100% rename from components/libc/compilers/newlib/sys/dirent.h rename to components/libc/compilers/common_all/dirent.h diff --git a/components/libc/compilers/common/readme.md b/components/libc/compilers/common_all/readme.md similarity index 100% rename from components/libc/compilers/common/readme.md rename to components/libc/compilers/common_all/readme.md diff --git a/components/libc/compilers/common/stdlib.c b/components/libc/compilers/common_all/stdlib.c similarity index 100% rename from components/libc/compilers/common/stdlib.c rename to components/libc/compilers/common_all/stdlib.c diff --git a/components/libc/compilers/common/sys/ioctl.h b/components/libc/compilers/common_all/sys/ioctl.h similarity index 77% rename from components/libc/compilers/common/sys/ioctl.h rename to components/libc/compilers/common_all/sys/ioctl.h index df17b19a618d5431ec4c51ef8ab314b31043c49e..648d90230d64ecb5d0982706d26041d8f4455833 100644 --- a/components/libc/compilers/common/sys/ioctl.h +++ b/components/libc/compilers/common_all/sys/ioctl.h @@ -10,6 +10,9 @@ #ifndef _SYS_IOCTL_H #define _SYS_IOCTL_H - +#include +#ifdef RT_USING_POSIX +#include +#endif #endif diff --git a/components/libc/compilers/newlib/sys/mman.h b/components/libc/compilers/common_all/sys/mman.h similarity index 97% rename from components/libc/compilers/newlib/sys/mman.h rename to components/libc/compilers/common_all/sys/mman.h index 6a260ccd702977baa72f1c8ec8db648a2e8a9293..a9235d61f0a3ab00328f7c0112daf716c512b18a 100644 --- a/components/libc/compilers/newlib/sys/mman.h +++ b/components/libc/compilers/common_all/sys/mman.h @@ -15,6 +15,8 @@ extern "C" { #endif +#include + #define MAP_FAILED ((void *) -1) #define MAP_SHARED 0x01 diff --git a/components/libc/compilers/newlib/sys/statfs.h b/components/libc/compilers/common_all/sys/statfs.h similarity index 100% rename from components/libc/compilers/newlib/sys/statfs.h rename to components/libc/compilers/common_all/sys/statfs.h diff --git a/components/libc/compilers/newlib/sys/termios.h b/components/libc/compilers/common_all/sys/termios.h similarity index 100% rename from components/libc/compilers/newlib/sys/termios.h rename to components/libc/compilers/common_all/sys/termios.h diff --git a/components/libc/compilers/common/sys/time.h b/components/libc/compilers/common_all/sys/time.h similarity index 100% rename from components/libc/compilers/common/sys/time.h rename to components/libc/compilers/common_all/sys/time.h diff --git a/components/libc/compilers/common/termios.h b/components/libc/compilers/common_all/termios.h similarity index 100% rename from components/libc/compilers/common/termios.h rename to components/libc/compilers/common_all/termios.h diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common_all/time.c similarity index 100% rename from components/libc/compilers/common/time.c rename to components/libc/compilers/common_all/time.c diff --git a/components/libc/compilers/common/unistd.c b/components/libc/compilers/common_all/unistd.c similarity index 100% rename from components/libc/compilers/common/unistd.c rename to components/libc/compilers/common_all/unistd.c diff --git a/components/libc/compilers/common_except_gcc/SConscript b/components/libc/compilers/common_except_gcc/SConscript new file mode 100644 index 0000000000000000000000000000000000000000..bda0d5610f3a9e660a61635400a455b4bb8f6e01 --- /dev/null +++ b/components/libc/compilers/common_except_gcc/SConscript @@ -0,0 +1,13 @@ +from building import * + +Import('rtconfig') + +if rtconfig.PLATFORM == 'iar' or rtconfig.PLATFORM == 'armcc' or rtconfig.PLATFORM == 'armclang': + src = [] + cwd = GetCurrentDir() + CPPPATH = [cwd] + group = [] + src += Glob('*.c') + + group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH) + Return('group') diff --git a/components/libc/compilers/armlibc/fcntl.h b/components/libc/compilers/common_except_gcc/fcntl.h similarity index 100% rename from components/libc/compilers/armlibc/fcntl.h rename to components/libc/compilers/common_except_gcc/fcntl.h diff --git a/components/libc/compilers/armlibc/sys/stat.h b/components/libc/compilers/common_except_gcc/sys/stat.h similarity index 100% rename from components/libc/compilers/armlibc/sys/stat.h rename to components/libc/compilers/common_except_gcc/sys/stat.h diff --git a/components/libc/compilers/armlibc/sys/types.h b/components/libc/compilers/common_except_gcc/sys/types.h similarity index 94% rename from components/libc/compilers/armlibc/sys/types.h rename to components/libc/compilers/common_except_gcc/sys/types.h index a6b245b81c1ae721babfc32464e0c28830b0d335..7222326a2ae203c2acb65cd250a823967b722a9b 100644 --- a/components/libc/compilers/armlibc/sys/types.h +++ b/components/libc/compilers/common_except_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 diff --git a/components/libc/compilers/armlibc/sys/unistd.h b/components/libc/compilers/common_except_gcc/sys/unistd.h similarity index 100% rename from components/libc/compilers/armlibc/sys/unistd.h rename to components/libc/compilers/common_except_gcc/sys/unistd.h diff --git a/components/libc/compilers/armlibc/unistd.h b/components/libc/compilers/common_except_gcc/unistd.h similarity index 100% rename from components/libc/compilers/armlibc/unistd.h rename to components/libc/compilers/common_except_gcc/unistd.h diff --git a/components/libc/compilers/dlib/dirent.h b/components/libc/compilers/dlib/dirent.h deleted file mode 100644 index 2c0521d2e3960a94898b449aac579716182ea3b8..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/dirent.h +++ /dev/null @@ -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 -#include - -/* -* 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 diff --git a/components/libc/compilers/dlib/fcntl.h b/components/libc/compilers/dlib/fcntl.h deleted file mode 100644 index c4b42083c4933ee4f0a12120c631fa8107fc4caf..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/fcntl.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - */ diff --git a/components/libc/compilers/dlib/sys/mman.h b/components/libc/compilers/dlib/sys/mman.h deleted file mode 100644 index 6a260ccd702977baa72f1c8ec8db648a2e8a9293..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/sys/mman.h +++ /dev/null @@ -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 diff --git a/components/libc/compilers/dlib/sys/stat.h b/components/libc/compilers/dlib/sys/stat.h deleted file mode 100644 index c4b42083c4933ee4f0a12120c631fa8107fc4caf..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/sys/stat.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - */ diff --git a/components/libc/compilers/dlib/sys/types.h b/components/libc/compilers/dlib/sys/types.h deleted file mode 100644 index 6e2d1ce83970d8188c7c911348159e187dd64a0d..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/sys/types.h +++ /dev/null @@ -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 - -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 diff --git a/components/libc/compilers/dlib/sys/unistd.h b/components/libc/compilers/dlib/sys/unistd.h deleted file mode 100644 index 14966a2bad164758d342d3450ffef131bf51a042..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/sys/unistd.h +++ /dev/null @@ -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 -#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 -#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 */ diff --git a/components/libc/compilers/dlib/unistd.h b/components/libc/compilers/dlib/unistd.h deleted file mode 100644 index 72b9d538ec43b7c92435012fb3c0b55da7f3bba4..0000000000000000000000000000000000000000 --- a/components/libc/compilers/dlib/unistd.h +++ /dev/null @@ -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_ */ diff --git a/include/rtlibc.h b/include/rtlibc.h index 5a260d250d57480184c7005a2b59af750fc05d1c..6f6777a2f33323c4247a9836eb52b18a0f5396f1 100644 --- a/include/rtlibc.h +++ b/include/rtlibc.h @@ -23,11 +23,6 @@ #include "libc/libc_limits.h" #include "libc/libc_stdio.h" -#if defined(__CC_ARM) || defined(__CLANG_ARM) || defined(__IAR_SYSTEMS_ICC__) -typedef signed long off_t; -typedef int mode_t; -#endif - #if defined(__MINGW32__) || defined(_WIN32) typedef signed long off_t; typedef int mode_t;