summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2021-09-11 11:07:51 +0800
committerBernard Xiong <[email protected]>2021-09-11 11:07:51 +0800
commit8da9f78d7274f462852096ca2cae3d6e284fd51f (patch)
tree8670379786c53eda39610e0e3b03d5972bce0d10
parent45440d2456e62bf223ff6df0bd8d9f92894f45b6 (diff)
[libc] remove rtlibc
-rw-r--r--bsp/qemu-riscv-virt64/driver/plic.c3
-rw-r--r--bsp/qemu-riscv-virt64/driver/sbi.c4
-rw-r--r--bsp/qemu-riscv-virt64/driver/sbi.h1
-rw-r--r--components/dfs/include/dfs.h2
-rw-r--r--components/dfs/include/dfs_posix.h16
-rw-r--r--components/drivers/rtc/rtc.c7
-rw-r--r--components/libc/compilers/common/fcntl.h (renamed from include/libc/libc_fcntl.h)42
-rw-r--r--components/libc/compilers/common/none-gcc/fcntl.h18
-rw-r--r--components/libc/compilers/common/none-gcc/sys/stat.h76
-rw-r--r--components/libc/compilers/common/sys/ioctl.h2
-rw-r--r--components/libc/compilers/dlib/libc.c2
-rw-r--r--components/libc/compilers/newlib/stdio.c2
-rw-r--r--components/libc/libdl/dlelf.h7
-rw-r--r--components/net/lwip-1.4.1/src/lwipopts.h1
-rw-r--r--components/net/lwip-2.0.2/src/lwipopts.h1
-rw-r--r--components/net/lwip-2.0.3/src/lwipopts.h1
-rw-r--r--components/net/lwip-2.1.2/src/lwipopts.h1
-rw-r--r--components/net/netdev/src/netdev_ipaddr.c2
-rw-r--r--components/net/sal_socket/socket/net_netdb.c1
-rw-r--r--include/libc/libc_stat.h110
-rw-r--r--include/rtdef.h3
-rw-r--r--include/rtlibc.h31
-rw-r--r--libcpu/mips/common/ptrace.h2
-rw-r--r--libcpu/risc-v/virt64/cpuport.c2
24 files changed, 107 insertions, 230 deletions
diff --git a/bsp/qemu-riscv-virt64/driver/plic.c b/bsp/qemu-riscv-virt64/driver/plic.c
index f502bc9da0..6e2ec5e84e 100644
--- a/bsp/qemu-riscv-virt64/driver/plic.c
+++ b/bsp/qemu-riscv-virt64/driver/plic.c
@@ -7,7 +7,8 @@
* Date Author Notes
* 2021-05-20 bigmagic first version
*/
-#include "rtthread.h"
+#include <rtthread.h>
+#include <stdint.h>
#include "plic.h"
#include <riscv_io.h>
#include "encoding.h"
diff --git a/bsp/qemu-riscv-virt64/driver/sbi.c b/bsp/qemu-riscv-virt64/driver/sbi.c
index f848ec7810..129e8fcb0e 100644
--- a/bsp/qemu-riscv-virt64/driver/sbi.c
+++ b/bsp/qemu-riscv-virt64/driver/sbi.c
@@ -72,8 +72,8 @@ sbi_get_impl_version(void)
void
sbi_print_version(void)
{
- u_int major;
- u_int minor;
+ int major;
+ int minor;
/* For legacy SBI implementations. */
if (sbi_spec_version == 0)
diff --git a/bsp/qemu-riscv-virt64/driver/sbi.h b/bsp/qemu-riscv-virt64/driver/sbi.h
index b42d558f53..1e7ad6b4b8 100644
--- a/bsp/qemu-riscv-virt64/driver/sbi.h
+++ b/bsp/qemu-riscv-virt64/driver/sbi.h
@@ -48,6 +48,7 @@
#ifndef _MACHINE_SBI_H_
#define _MACHINE_SBI_H_
+#include <stdint.h>
#include <rtdef.h>
/* SBI Specification Version */
diff --git a/components/dfs/include/dfs.h b/components/dfs/include/dfs.h
index 0fd8c2dccc..9f112f9656 100644
--- a/components/dfs/include/dfs.h
+++ b/components/dfs/include/dfs.h
@@ -16,6 +16,8 @@
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
+#include <fcntl.h>
+#include <sys/stat.h>
#include <sys/time.h>
#include <rtdevice.h>
diff --git a/components/dfs/include/dfs_posix.h b/components/dfs/include/dfs_posix.h
index ec7cdc9de4..98da0f854f 100644
--- a/components/dfs/include/dfs_posix.h
+++ b/components/dfs/include/dfs_posix.h
@@ -16,22 +16,15 @@
#define __DFS_POSIX_H__
#include <dfs_file.h>
+#include <sys/stat.h>
#ifdef __cplusplus
extern "C" {
#endif
-/* directory api*/
-int mkdir(const char *path, mode_t mode);
-DIR *opendir(const char *name);
-struct dirent *readdir(DIR *d);
-long telldir(DIR *d);
-void seekdir(DIR *d, off_t offset);
-void rewinddir(DIR *d);
-int closedir(DIR *d);
/* file api*/
-int open(const char *file, int flags, ...);
+
int close(int d);
#if defined(RT_USING_NEWLIB) && defined(_EXFUN)
@@ -45,11 +38,7 @@ int write(int fd, const void *buf, size_t len);
off_t lseek(int fd, off_t offset, int whence);
int rename(const char *from, const char *to);
int unlink(const char *pathname);
-int stat(const char *file, struct stat *buf);
-int fstat(int fildes, struct stat *buf);
int fsync(int fildes);
-int fcntl(int fildes, int cmd, ...);
-int ioctl(int fildes, int cmd, ...);
int ftruncate(int fd, off_t length);
/* directory api*/
@@ -62,7 +51,6 @@ int statfs(const char *path, struct statfs *buf);
int access(const char *path, int amode);
int pipe(int fildes[2]);
-int mkfifo(const char *path, mode_t mode);
#ifdef __cplusplus
}
diff --git a/components/drivers/rtc/rtc.c b/components/drivers/rtc/rtc.c
index 35e7ddc3c4..bc75c83e7d 100644
--- a/components/drivers/rtc/rtc.c
+++ b/components/drivers/rtc/rtc.c
@@ -223,7 +223,7 @@ rt_err_t set_time(rt_uint32_t hour, rt_uint32_t minute, rt_uint32_t second)
/**
* get date and time or set (local timezone) [year month day hour min sec]
*/
-static void date(uint8_t argc, char **argv)
+static void date(int argc, char **argv)
{
if (argc == 1)
{
@@ -235,8 +235,9 @@ static void date(uint8_t argc, char **argv)
else if (argc >= 7)
{
/* set time and date */
- uint16_t year;
- uint8_t month, day, hour, min, sec;
+ rt_uint16_t year;
+ rt_uint8_t month, day, hour, min, sec;
+
year = atoi(argv[1]);
month = atoi(argv[2]);
day = atoi(argv[3]);
diff --git a/include/libc/libc_fcntl.h b/components/libc/compilers/common/fcntl.h
index 945e674d35..b98f540627 100644
--- a/include/libc/libc_fcntl.h
+++ b/components/libc/compilers/common/fcntl.h
@@ -5,44 +5,17 @@
*
* Change Logs:
* Date Author Notes
- * 2018-02-07 Bernard Add O_DIRECTORY definition in NEWLIB mode.
- * 2018-02-09 Bernard Add O_BINARY definition
+ * 2021-09-02 Meco Man First version
*/
+#ifndef __FCNTL_H__
+#define __FCNTL_H__
-#ifndef LIBC_FCNTL_H__
-#define LIBC_FCNTL_H__
-
-#if defined(RT_USING_NEWLIB) || defined(_WIN32) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
-#include <fcntl.h>
-
-#ifndef O_NONBLOCK
-#define O_NONBLOCK 0x4000
-#endif
+#include <sys/types.h>
#if defined(_WIN32)
#define O_ACCMODE (_O_RDONLY | _O_WRONLY | _O_RDWR)
#endif
-#ifndef F_GETFL
-#define F_GETFL 3
-#endif
-#ifndef F_SETFL
-#define F_SETFL 4
-#endif
-
-#ifndef O_DIRECTORY
-#define O_DIRECTORY 0x200000
-#endif
-
-#ifndef O_BINARY
-#ifdef _O_BINARY
-#define O_BINARY _O_BINARY
-#else
-#define O_BINARY 0
-#endif
-#endif
-
-#else
#define O_RDONLY 00
#define O_WRONLY 01
#define O_RDWR 02
@@ -60,7 +33,6 @@
#define O_DIRECTORY 0200000
#define O_NOFOLLOW 0400000
#define O_CLOEXEC 02000000
-
#define O_ASYNC 020000
#define O_DIRECT 040000
#define O_LARGEFILE 0100000
@@ -68,7 +40,6 @@
#define O_PATH 010000000
#define O_TMPFILE 020200000
#define O_NDELAY O_NONBLOCK
-
#define O_SEARCH O_PATH
#define O_EXEC O_PATH
@@ -93,6 +64,9 @@
#define F_GETOWN_EX 16
#define F_GETOWNER_UIDS 17
-#endif
+
+int open(const char *file, int flags, ...);
+int fcntl(int fildes, int cmd, ...);
+int creat(const char *, mode_t);
#endif
diff --git a/components/libc/compilers/common/none-gcc/fcntl.h b/components/libc/compilers/common/none-gcc/fcntl.h
deleted file mode 100644
index f247b926e9..0000000000
--- a/components/libc/compilers/common/none-gcc/fcntl.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-#ifndef FCNTL_H__
-#define FCNTL_H__
-
-#include <rtconfig.h>
-
-#ifdef RT_USING_DFS
-#include <dfs_posix.h>
-#endif
-
-#endif
diff --git a/components/libc/compilers/common/none-gcc/sys/stat.h b/components/libc/compilers/common/none-gcc/sys/stat.h
index c8f65df435..107c15decf 100644
--- a/components/libc/compilers/common/none-gcc/sys/stat.h
+++ b/components/libc/compilers/common/none-gcc/sys/stat.h
@@ -5,9 +5,79 @@
*
* Change Logs:
* Date Author Notes
+ * 2021-09-02 Meco Man First version
*/
- #ifndef __SYS_STAT_H__
- #define __SYS_STAT_H__
+#ifndef __SYS_STAT_H__
+#define __SYS_STAT_H__
- #endif
+#include <sys/types.h>
+#include <sys/time.h>
+
+#define S_IFMT 00170000
+#define S_IFSOCK 0140000
+#define S_IFLNK 0120000
+#define S_IFREG 0100000
+#define S_IFBLK 0060000
+#define S_IFDIR 0040000
+#define S_IFCHR 0020000
+#define S_IFIFO 0010000
+#define S_ISUID 0004000
+#define S_ISGID 0002000
+#define S_ISVTX 0001000
+
+#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
+#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
+#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
+#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
+#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
+#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
+#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
+
+#define S_IRWXU 00700
+#define S_IRUSR 00400
+#define S_IWUSR 00200
+#define S_IXUSR 00100
+
+#define S_IRWXG 00070
+#define S_IRGRP 00040
+#define S_IWGRP 00020
+#define S_IXGRP 00010
+
+#define S_IRWXO 00007
+#define S_IROTH 00004
+#define S_IWOTH 00002
+#define S_IXOTH 00001
+
+struct stat
+{
+ struct rt_device *st_dev;
+ uint16_t st_ino;
+ uint16_t st_mode;
+ uint16_t st_nlink;
+ uint16_t st_uid;
+ uint16_t st_gid;
+ struct rt_device *st_rdev;
+ uint32_t st_size;
+ time_t st_atime;
+ long st_spare1;
+ time_t st_mtime;
+ long st_spare2;
+ time_t st_ctime;
+ long st_spare3;
+ uint32_t st_blksize;
+ uint32_t st_blocks;
+ long st_spare4[2];
+};
+
+int chmod(const char *, mode_t);
+int fchmod(int, mode_t);
+int fstat(int, struct stat *);
+int lstat(const char *, struct stat *);
+int mkdir(const char *, mode_t);
+int mkfifo(const char *, mode_t);
+int mknod(const char *, mode_t, dev_t);
+int stat(const char *, struct stat *);
+mode_t umask(mode_t);
+
+#endif
diff --git a/components/libc/compilers/common/sys/ioctl.h b/components/libc/compilers/common/sys/ioctl.h
index 51f51f2ea4..b926a71875 100644
--- a/components/libc/compilers/common/sys/ioctl.h
+++ b/components/libc/compilers/common/sys/ioctl.h
@@ -235,4 +235,6 @@ struct winsize {
#define SIOCDEVPRIVATE 0x89F0
#define SIOCPROTOPRIVATE 0x89E0
+int ioctl(int fildes, int cmd, ...);
+
#endif
diff --git a/components/libc/compilers/dlib/libc.c b/components/libc/compilers/dlib/libc.c
index d0dca7c5f6..097d736bfe 100644
--- a/components/libc/compilers/dlib/libc.c
+++ b/components/libc/compilers/dlib/libc.c
@@ -9,7 +9,7 @@
*/
#include <stdio.h>
#include <stdlib.h>
-
+#include <fcntl.h>
#include <rtthread.h>
#include "libc.h"
diff --git a/components/libc/compilers/newlib/stdio.c b/components/libc/compilers/newlib/stdio.c
index ce5bdb75cb..baccafad87 100644
--- a/components/libc/compilers/newlib/stdio.c
+++ b/components/libc/compilers/newlib/stdio.c
@@ -9,7 +9,7 @@
*/
#include <stdio.h>
#include <stdlib.h>
-
+#include <fcntl.h>
#include <rtthread.h>
#include "libc.h"
diff --git a/components/libc/libdl/dlelf.h b/components/libc/libdl/dlelf.h
index 540fe2c8aa..ab6cc5565d 100644
--- a/components/libc/libdl/dlelf.h
+++ b/components/libc/libdl/dlelf.h
@@ -28,12 +28,7 @@ typedef rt_int32_t Elf64_Sword;
typedef rt_uint32_t Elf64_Word;
typedef rt_uint64_t Elf64_Xword;
typedef rt_int64_t Elf64_Sxword;
-typedef uint16_t Elf64_Section;
-
-
-
-
-
+typedef rt_uint16_t Elf64_Section;
/* e_ident[] magic number */
#define ELFMAG0 0x7f /* e_ident[EI_MAG0] */
diff --git a/components/net/lwip-1.4.1/src/lwipopts.h b/components/net/lwip-1.4.1/src/lwipopts.h
index 9148066d50..a5e035b53a 100644
--- a/components/net/lwip-1.4.1/src/lwipopts.h
+++ b/components/net/lwip-1.4.1/src/lwipopts.h
@@ -533,6 +533,7 @@
#ifndef LWIP_SOCKET
#define LWIP_SOCKET 1
#endif
+#include <fcntl.h>
/*
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
diff --git a/components/net/lwip-2.0.2/src/lwipopts.h b/components/net/lwip-2.0.2/src/lwipopts.h
index fdfe1437b2..fe6e2fef6f 100644
--- a/components/net/lwip-2.0.2/src/lwipopts.h
+++ b/components/net/lwip-2.0.2/src/lwipopts.h
@@ -572,6 +572,7 @@
#ifndef LWIP_SOCKET
#define LWIP_SOCKET 1
#endif
+#include <fcntl.h>
/*
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
diff --git a/components/net/lwip-2.0.3/src/lwipopts.h b/components/net/lwip-2.0.3/src/lwipopts.h
index fdfe1437b2..fe6e2fef6f 100644
--- a/components/net/lwip-2.0.3/src/lwipopts.h
+++ b/components/net/lwip-2.0.3/src/lwipopts.h
@@ -572,6 +572,7 @@
#ifndef LWIP_SOCKET
#define LWIP_SOCKET 1
#endif
+#include <fcntl.h>
/*
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
diff --git a/components/net/lwip-2.1.2/src/lwipopts.h b/components/net/lwip-2.1.2/src/lwipopts.h
index a964ab13ac..81409a9d0a 100644
--- a/components/net/lwip-2.1.2/src/lwipopts.h
+++ b/components/net/lwip-2.1.2/src/lwipopts.h
@@ -579,6 +579,7 @@
#ifndef LWIP_SOCKET
#define LWIP_SOCKET 1
#endif
+#include <fcntl.h>
/*
* LWIP_COMPAT_SOCKETS==1: Enable BSD-style sockets functions names.
diff --git a/components/net/netdev/src/netdev_ipaddr.c b/components/net/netdev/src/netdev_ipaddr.c
index 9abb41bd14..afb6d1d962 100644
--- a/components/net/netdev/src/netdev_ipaddr.c
+++ b/components/net/netdev/src/netdev_ipaddr.c
@@ -7,7 +7,7 @@
* Date Author Notes
* 2018-05-18 ChenYong First version
*/
-
+#include <stdlib.h>
#include <rtthread.h>
#include <netdev_ipaddr.h>
diff --git a/components/net/sal_socket/socket/net_netdb.c b/components/net/sal_socket/socket/net_netdb.c
index 03b995c68d..1eb84e1c32 100644
--- a/components/net/sal_socket/socket/net_netdb.c
+++ b/components/net/sal_socket/socket/net_netdb.c
@@ -9,6 +9,7 @@
* 2108-05-24 ChenYong Add socket abstraction layer
*/
+#include <stddef.h>
#include <rtthread.h>
#include <netdb.h>
diff --git a/include/libc/libc_stat.h b/include/libc/libc_stat.h
deleted file mode 100644
index f680de4e06..0000000000
--- a/include/libc/libc_stat.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- */
-
-#ifndef LIBC_STAT_H__
-#define LIBC_STAT_H__
-
-#include <rtconfig.h>
-
-#if defined(RT_USING_NEWLIB) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
-/* use header file of newlib */
-#include <sys/stat.h>
-
-#elif defined(_WIN32)
-#include <sys/stat.h>
-
-#define S_IRWXU 00700
-#define S_IRUSR 00400
-#define S_IWUSR 00200
-#define S_IXUSR 00100
-
-#define S_IRWXG 00070
-#define S_IRGRP 00040
-#define S_IWGRP 00020
-#define S_IXGRP 00010
-
-#define S_IRWXO 00007
-#define S_IROTH 00004
-#define S_IWOTH 00002
-#define S_IXOTH 00001
-
-#define S_IFSOCK 0140000
-#define S_IFLNK 0120000
-#define S_IFBLK 0060000
-#define S_IFIFO 0010000
-#define S_ISUID 0004000
-#define S_ISGID 0002000
-#define S_ISVTX 0001000
-
-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-
-#else
-#define S_IFMT 00170000
-#define S_IFSOCK 0140000
-#define S_IFLNK 0120000
-#define S_IFREG 0100000
-#define S_IFBLK 0060000
-#define S_IFDIR 0040000
-#define S_IFCHR 0020000
-#define S_IFIFO 0010000
-#define S_ISUID 0004000
-#define S_ISGID 0002000
-#define S_ISVTX 0001000
-
-#define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK)
-#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
-#define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR)
-#define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR)
-#define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK)
-#define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO)
-#define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
-
-#define S_IRWXU 00700
-#define S_IRUSR 00400
-#define S_IWUSR 00200
-#define S_IXUSR 00100
-
-#define S_IRWXG 00070
-#define S_IRGRP 00040
-#define S_IWGRP 00020
-#define S_IXGRP 00010
-
-#define S_IRWXO 00007
-#define S_IROTH 00004
-#define S_IWOTH 00002
-#define S_IXOTH 00001
-
-/* stat structure */
-#include <stdint.h>
-#include <time.h>
-
-struct stat
-{
- struct rt_device *st_dev;
- uint16_t st_ino;
- uint16_t st_mode;
- uint16_t st_nlink;
- uint16_t st_uid;
- uint16_t st_gid;
- struct rt_device *st_rdev;
- uint32_t st_size;
- time_t st_atime;
- long st_spare1;
- time_t st_mtime;
- long st_spare2;
- time_t st_ctime;
- long st_spare3;
- uint32_t st_blksize;
- uint32_t st_blocks;
- long st_spare4[2];
-};
-
-#endif
-
-#endif
diff --git a/include/rtdef.h b/include/rtdef.h
index c0fcb8fce1..3f5f4c5ef9 100644
--- a/include/rtdef.h
+++ b/include/rtdef.h
@@ -1146,9 +1146,6 @@ struct rt_device_graphic_ops
/**@}*/
#endif
-/* definitions for libc */
-#include "rtlibc.h"
-
#ifdef __cplusplus
}
#endif
diff --git a/include/rtlibc.h b/include/rtlibc.h
deleted file mode 100644
index b59a29dadb..0000000000
--- a/include/rtlibc.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2017-01-21 Bernard the first version
- */
-
-#ifndef RTLIBC_H__
-#define RTLIBC_H__
-
-/* definitions for libc if toolchain has no these definitions */
-#include "libc/libc_stat.h"
-#include "libc/libc_fcntl.h"
-
-#ifndef RT_USING_LIBC
-#if defined(__ARMCC_VERSION) || 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;
-typedef int mode_t;
-#endif
-
-#endif
-
diff --git a/libcpu/mips/common/ptrace.h b/libcpu/mips/common/ptrace.h
index 8b82cca5d6..da800e05dc 100644
--- a/libcpu/mips/common/ptrace.h
+++ b/libcpu/mips/common/ptrace.h
@@ -63,7 +63,7 @@ struct pt_regs {
* so it should be a part of pt_regs */
struct mips_fpu_struct fpu;
#endif
-} __aligned(8);
+} __attribute__((aligned(8)));
#endif
/* Note: For call stack o32 ABI has 0x8 shadowsoace Here */
diff --git a/libcpu/risc-v/virt64/cpuport.c b/libcpu/risc-v/virt64/cpuport.c
index 33cab19488..9b0c2cce6b 100644
--- a/libcpu/risc-v/virt64/cpuport.c
+++ b/libcpu/risc-v/virt64/cpuport.c
@@ -9,13 +9,13 @@
* 2021-02-11 lizhirui add gp support
*/
+#include <stddef.h>
#include <rthw.h>
#include <rtthread.h>
#include "cpuport.h"
#include "stack.h"
-
/**
* @brief from thread used interrupt context switch
*