summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/dfs/include/dfs_fs.h2
-rw-r--r--components/drivers/cputime/cputime.c5
-rw-r--r--components/drivers/src/pipe.c11
-rw-r--r--components/finsh/msh.c2
-rw-r--r--components/finsh/msh_file.c152
-rw-r--r--components/finsh/shell.c2
-rw-r--r--components/libc/compilers/common/SConscript13
-rw-r--r--components/libc/compilers/common/none-gcc/SConscript6
-rw-r--r--components/libc/compilers/common/none-gcc/sys/errno.h197
-rw-r--r--components/libc/compilers/common/time.c1
-rw-r--r--components/libc/compilers/newlib/minilib.c14
-rw-r--r--components/libc/getline/posix_getline.c6
-rw-r--r--components/libc/pthreads/posix_types.h2
-rw-r--r--components/libc/signal/posix_signal.c3
-rw-r--r--components/net/lwip-1.4.1/src/arch/include/arch/cc.h14
-rw-r--r--components/net/lwip-1.4.1/src/lwipopts.h2
-rw-r--r--components/net/lwip-2.0.2/src/arch/include/arch/cc.h16
-rw-r--r--components/net/lwip-2.0.2/src/lwipopts.h2
-rw-r--r--components/net/lwip-2.1.2/src/arch/include/arch/cc.h13
-rw-r--r--components/net/lwip-2.1.2/src/include/lwip/errno.h2
-rw-r--r--components/net/lwip-2.1.2/src/lwipopts.h3
-rw-r--r--components/net/sal_socket/socket/net_sockets.c2
22 files changed, 380 insertions, 90 deletions
diff --git a/components/dfs/include/dfs_fs.h b/components/dfs/include/dfs_fs.h
index 828f15a0f5..3d194515df 100644
--- a/components/dfs/include/dfs_fs.h
+++ b/components/dfs/include/dfs_fs.h
@@ -15,7 +15,7 @@
#ifdef RT_USING_LIBC
#include <sys/types.h>
#endif
-
+#include <sys/errno.h>
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/components/drivers/cputime/cputime.c b/components/drivers/cputime/cputime.c
index 4a9eee3a71..750733f366 100644
--- a/components/drivers/cputime/cputime.c
+++ b/components/drivers/cputime/cputime.c
@@ -10,6 +10,7 @@
#include <rtdevice.h>
#include <rtthread.h>
+#include <sys/errno.h>
static const struct rt_clock_cputime_ops *_cputime_ops = RT_NULL;
@@ -24,7 +25,7 @@ float clock_cpu_getres(void)
if (_cputime_ops)
return _cputime_ops->cputime_getres();
- rt_set_errno(-ENOSYS);
+ rt_set_errno(ENOSYS);
return 0;
}
@@ -38,7 +39,7 @@ uint32_t clock_cpu_gettime(void)
if (_cputime_ops)
return _cputime_ops->cputime_gettime();
- rt_set_errno(-ENOSYS);
+ rt_set_errno(ENOSYS);
return 0;
}
diff --git a/components/drivers/src/pipe.c b/components/drivers/src/pipe.c
index 0e35248480..7fa5eb067d 100644
--- a/components/drivers/src/pipe.c
+++ b/components/drivers/src/pipe.c
@@ -11,8 +11,9 @@
#include <rthw.h>
#include <rtdevice.h>
#include <stdint.h>
+#include <sys/errno.h>
-#if defined(RT_USING_POSIX)
+#ifdef RT_USING_POSIX
#include <dfs_file.h>
#include <dfs_posix.h>
#include <dfs_poll.h>
@@ -375,7 +376,7 @@ rt_size_t rt_pipe_read(rt_device_t device, rt_off_t pos, void *buffer, rt_size_t
if (device == RT_NULL)
{
- rt_set_errno(-EINVAL);
+ rt_set_errno(EINVAL);
return 0;
}
if (count == 0) return 0;
@@ -403,7 +404,7 @@ rt_size_t rt_pipe_write(rt_device_t device, rt_off_t pos, const void *buffer, rt
if (device == RT_NULL)
{
- rt_set_errno(-EINVAL);
+ rt_set_errno(EINVAL);
return 0;
}
if (count == 0) return 0;
@@ -517,12 +518,12 @@ int rt_pipe_delete(const char *name)
}
else
{
- result = -ENODEV;
+ result = -RT_EINVAL;
}
}
else
{
- result = -ENODEV;
+ result = -RT_EINVAL;
}
return result;
diff --git a/components/finsh/msh.c b/components/finsh/msh.c
index 73a5197dcd..ed12219c2e 100644
--- a/components/finsh/msh.c
+++ b/components/finsh/msh.c
@@ -374,7 +374,7 @@ int msh_exec(char *cmd, rt_size_t length)
int cmd_ret;
/* strim the beginning of command */
- while (*cmd == ' ' || *cmd == '\t')
+ while ((length > 0) && (*cmd == ' ' || *cmd == '\t'))
{
cmd++;
length--;
diff --git a/components/finsh/msh_file.c b/components/finsh/msh_file.c
index 459d77af4e..3f21cc6f34 100644
--- a/components/finsh/msh_file.c
+++ b/components/finsh/msh_file.c
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2015-09-25 Bernard the first verion for FinSH
+ * 2021-06-09 Meco Man implement tail command
*/
#include <rtthread.h>
@@ -146,7 +147,7 @@ int msh_exec_script(const char *cmd_line, int size)
extern char working_directory[];
#endif
-int cmd_ls(int argc, char **argv)
+static int cmd_ls(int argc, char **argv)
{
extern void ls(const char *pathname);
@@ -165,9 +166,9 @@ int cmd_ls(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_ls, __cmd_ls, List information about the FILEs.);
+MSH_CMD_EXPORT_ALIAS(cmd_ls, ls, List information about the FILEs.);
-int cmd_cp(int argc, char **argv)
+static int cmd_cp(int argc, char **argv)
{
void copy(const char *src, const char *dst);
@@ -183,9 +184,9 @@ int cmd_cp(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_cp, __cmd_cp, Copy SOURCE to DEST.);
+MSH_CMD_EXPORT_ALIAS(cmd_cp, cp, Copy SOURCE to DEST.);
-int cmd_mv(int argc, char **argv)
+static int cmd_mv(int argc, char **argv)
{
if (argc != 3)
{
@@ -242,9 +243,9 @@ int cmd_mv(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_mv, __cmd_mv, Rename SOURCE to DEST.);
+MSH_CMD_EXPORT_ALIAS(cmd_mv, mv, Rename SOURCE to DEST.);
-int cmd_cat(int argc, char **argv)
+static int cmd_cat(int argc, char **argv)
{
int index;
extern void cat(const char *filename);
@@ -263,7 +264,7 @@ int cmd_cat(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_cat, __cmd_cat, Concatenate FILE(s));
+MSH_CMD_EXPORT_ALIAS(cmd_cat, cat, Concatenate FILE(s));
static void directory_delete_for_msh(const char *pathname, char f, char v)
{
@@ -329,7 +330,7 @@ static void directory_delete_for_msh(const char *pathname, char f, char v)
}
}
-int cmd_rm(int argc, char **argv)
+static int cmd_rm(int argc, char **argv)
{
int index, n;
char f = 0, r = 0, v = 0;
@@ -399,10 +400,10 @@ int cmd_rm(int argc, char **argv)
}
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_rm, __cmd_rm, Remove(unlink) the FILE(s).);
+MSH_CMD_EXPORT_ALIAS(cmd_rm, rm, Remove(unlink) the FILE(s).);
#ifdef DFS_USING_WORKDIR
-int cmd_cd(int argc, char **argv)
+static int cmd_cd(int argc, char **argv)
{
if (argc == 1)
{
@@ -418,17 +419,17 @@ int cmd_cd(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_cd, __cmd_cd, Change the shell working directory.);
+MSH_CMD_EXPORT_ALIAS(cmd_cd, cd, Change the shell working directory.);
-int cmd_pwd(int argc, char **argv)
+static int cmd_pwd(int argc, char **argv)
{
rt_kprintf("%s\n", working_directory);
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_pwd, __cmd_pwd, Print the name of the current working directory.);
+MSH_CMD_EXPORT_ALIAS(cmd_pwd, pwd, Print the name of the current working directory.);
#endif
-int cmd_mkdir(int argc, char **argv)
+static int cmd_mkdir(int argc, char **argv)
{
if (argc == 1)
{
@@ -442,9 +443,9 @@ int cmd_mkdir(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_mkdir, __cmd_mkdir, Create the DIRECTORY.);
+MSH_CMD_EXPORT_ALIAS(cmd_mkdir, mkdir, Create the DIRECTORY.);
-int cmd_mkfs(int argc, char **argv)
+static int cmd_mkfs(int argc, char **argv)
{
int result = 0;
char *type = "elm"; /* use the default file system type as 'fatfs' */
@@ -474,10 +475,10 @@ int cmd_mkfs(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_mkfs, __cmd_mkfs, format disk with file system);
+MSH_CMD_EXPORT_ALIAS(cmd_mkfs, mkfs, format disk with file system);
extern struct dfs_filesystem filesystem_table[];
-int cmd_mount(int argc, char *argv[])
+static int cmd_mount(int argc, char **argv)
{
if (argc == 1)
{
@@ -522,10 +523,10 @@ int cmd_mount(int argc, char *argv[])
return -1;
}
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_mount, __cmd_mount, mount <device> <mountpoint> <fstype>);
+MSH_CMD_EXPORT_ALIAS(cmd_mount, mount, mount <device> <mountpoint> <fstype>);
/* unmount the filesystem from the specified mountpoint */
-int cmd_umount(int argc, char *argv[])
+static int cmd_umount(int argc, char **argv)
{
char *path = argv[1];
@@ -547,10 +548,10 @@ int cmd_umount(int argc, char *argv[])
return 0;
}
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_umount, __cmd_umount, Unmount device from file system);
+MSH_CMD_EXPORT_ALIAS(cmd_umount, umount, Unmount device from file system);
extern int df(const char *path);
-int cmd_df(int argc, char **argv)
+static int cmd_df(int argc, char **argv)
{
if (argc != 2)
{
@@ -570,9 +571,9 @@ int cmd_df(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_df, __cmd_df, disk free);
+MSH_CMD_EXPORT_ALIAS(cmd_df, df, disk free);
-int cmd_echo(int argc, char **argv)
+static int cmd_echo(int argc, char **argv)
{
if (argc == 2)
{
@@ -600,7 +601,106 @@ int cmd_echo(int argc, char **argv)
return 0;
}
-FINSH_FUNCTION_EXPORT_ALIAS(cmd_echo, __cmd_echo, echo string to file);
+MSH_CMD_EXPORT_ALIAS(cmd_echo, echo, echo string to file);
+
+static int cmd_tail(int argc, char **argv)
+{
+ int fd;
+ char c = RT_NULL;
+ char *file_name = RT_NULL;
+ rt_uint32_t total_lines = 0;
+ rt_uint32_t target_line = 0;
+ rt_uint32_t current_line = 0;
+ rt_uint32_t required_lines = 0;
+ rt_uint32_t after_xxx_line = 0;
+
+ if(argc < 2)
+ {
+ rt_kprintf("Usage: tail [-n numbers] <filename>\n");
+ return -1;
+ }
+ else if(argc == 2)
+ {
+ required_lines = 10; /* default: 10 lines from tail */
+ file_name = argv[1];
+ }
+ else if(rt_strcmp(argv[1], "-n") == 0)
+ {
+ if(argv[2][0] != '+')
+ {
+ required_lines = atoi(argv[2]);
+ }
+ else
+ {
+ after_xxx_line = atoi(&argv[2][1]); /* eg: +100, to get the 100 */
+ }
+ file_name = argv[3];
+ }
+ else
+ {
+ rt_kprintf("Usage: tail [-n numbers] <filename>\n");
+ return -1;
+ }
+
+ fd = open(file_name, O_RDONLY);
+ if (fd < 0)
+ {
+ rt_kprintf("File doesn't exist\n");
+ return -1;
+ }
+
+ while ((read(fd, &c, sizeof(char))) > 0)
+ {
+ if (c == '\n')
+ {
+ total_lines++;
+ }
+ }
+
+ rt_kprintf("\nTotal Number of lines:%d\n", total_lines);
+
+ if(after_xxx_line != 0)
+ {
+ if(total_lines > after_xxx_line)
+ {
+ required_lines = total_lines - after_xxx_line;
+ }
+ else
+ {
+ rt_kprintf("\nError:Required lines are more than total number of lines\n");
+ close(fd);
+ return -1;
+ }
+ }
+
+ if (required_lines > total_lines)
+ {
+ rt_kprintf("\nError:Required lines are more than total number of lines\n");
+ close(fd);
+ return -1;
+ }
+ rt_kprintf("Required Number of lines:%d\n", required_lines);
+
+ target_line = total_lines - required_lines;
+ lseek(fd, 0, SEEK_SET); /* back to head */
+
+ while ((read(fd, &c, sizeof(char))) > 0)
+ {
+ if (c == '\n')
+ {
+ current_line++;
+ }
+ if (current_line > target_line)
+ {
+ rt_kprintf("%c", c);
+ }
+ }
+ rt_kprintf("\n");
+
+ close(fd);
+ return 0;
+}
+MSH_CMD_EXPORT_ALIAS(cmd_tail, tail, print the last N-lines data of the given file);
#endif /* defined(FINSH_USING_MSH) && defined(RT_USING_DFS) */
diff --git a/components/finsh/shell.c b/components/finsh/shell.c
index 6f1133bf3b..a749660629 100644
--- a/components/finsh/shell.c
+++ b/components/finsh/shell.c
@@ -97,7 +97,7 @@ int finsh_set_prompt(const char * prompt)
}
#endif /* RT_USING_HEAP */
-#if defined(RT_USING_DFS)
+#ifdef RT_USING_DFS
#include <dfs_posix.h>
#endif /* RT_USING_DFS */
diff --git a/components/libc/compilers/common/SConscript b/components/libc/compilers/common/SConscript
index 039e53a0b3..2ebfc36c4e 100644
--- a/components/libc/compilers/common/SConscript
+++ b/components/libc/compilers/common/SConscript
@@ -9,20 +9,17 @@ CPPPATH = [cwd]
if GetDepend('RT_USING_LIBC'):
src += Glob('*.c')
-else:
- if GetDepend('RT_LIBC_USING_TIME'):
- src += ['time.c']
-
-if GetDepend('RT_USING_POSIX') == False:
- SrcRemove(src, ['unistd.c'])
+ if GetDepend('RT_USING_POSIX') == False:
+ SrcRemove(src, ['unistd.c'])
+elif GetDepend('RT_LIBC_USING_TIME'):
+ src += ['time.c']
if rtconfig.CROSS_TOOL == 'keil':
CPPDEFINES = ['__CLK_TCK=RT_TICK_PER_SECOND']
else:
CPPDEFINES = []
-if GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME'):
- group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
+group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
list = os.listdir(cwd)
for d in list:
diff --git a/components/libc/compilers/common/none-gcc/SConscript b/components/libc/compilers/common/none-gcc/SConscript
index c5838f8949..c766c8f82d 100644
--- a/components/libc/compilers/common/none-gcc/SConscript
+++ b/components/libc/compilers/common/none-gcc/SConscript
@@ -6,8 +6,10 @@ src = []
cwd = GetCurrentDir()
CPPPATH = [cwd]
group = []
-src += Glob('*.c')
+
+if GetDepend('RT_USING_LIBC'):
+ src += Glob('*.c')
if rtconfig.PLATFORM != 'gcc' or rtconfig.ARCH == 'sim':
- group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH)
+ group = DefineGroup('libc', src, depend = [], CPPPATH = CPPPATH)
Return('group')
diff --git a/components/libc/compilers/common/none-gcc/sys/errno.h b/components/libc/compilers/common/none-gcc/sys/errno.h
new file mode 100644
index 0000000000..773c2cd7d3
--- /dev/null
+++ b/components/libc/compilers/common/none-gcc/sys/errno.h
@@ -0,0 +1,197 @@
+/*
+ * Copyright (c) 2006-2021, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-05-22 Meco Man The first version.
+ */
+#ifndef _SYS_ERRNO_H
+#define _SYS_ERRNO_H
+
+#if defined(__CC_ARM)
+/*
+defined in armcc/errno.h
+
+#define EDOM 1
+#define ERANGE 2
+#define EILSEQ 4
+#define ESIGNUM 3
+#define EINVAL 5
+#define ENOMEM 6
+*/
+
+#define ERROR_BASE_NO 7
+
+#elif defined(__IAR_SYSTEMS_ICC__)
+/* defined in iar/errno.h
+#define EDOM 33
+#define ERANGE 34
+#define EFPOS 35
+#define EILSEQ 36
+*/
+#define ERROR_BASE_NO 36
+
+#else
+#define ERROR_BASE_NO 0
+#endif
+
+#if defined(__CC_ARM) || defined(__IAR_SYSTEMS_ICC__)
+#include <errno.h>
+#define EPERM (ERROR_BASE_NO + 1)
+#define ENOENT (ERROR_BASE_NO + 2)
+#define ESRCH (ERROR_BASE_NO + 3)
+#define EINTR (ERROR_BASE_NO + 4)
+#define EIO (ERROR_BASE_NO + 5)
+#define ENXIO (ERROR_BASE_NO + 6)
+#define E2BIG (ERROR_BASE_NO + 7)
+#define ENOEXEC (ERROR_BASE_NO + 8)
+#define EBADF (ERROR_BASE_NO + 9)
+#define ECHILD (ERROR_BASE_NO + 10)
+#define EAGAIN (ERROR_BASE_NO + 11)
+
+#ifndef ENOMEM
+#define ENOMEM (ERROR_BASE_NO + 12)
+#endif
+
+#define EACCES (ERROR_BASE_NO + 13)
+#define EFAULT (ERROR_BASE_NO + 14)
+#define ENOTBLK (ERROR_BASE_NO + 15)
+#define EBUSY (ERROR_BASE_NO + 16)
+#define EEXIST (ERROR_BASE_NO + 17)
+#define EXDEV (ERROR_BASE_NO + 18)
+#define ENODEV (ERROR_BASE_NO + 19)
+#define ENOTDIR (ERROR_BASE_NO + 20)
+#define EISDIR (ERROR_BASE_NO + 21)
+
+#ifndef EINVAL
+#define EINVAL (ERROR_BASE_NO + 22)
+#endif
+
+#define ENFILE (ERROR_BASE_NO + 23)
+#define EMFILE (ERROR_BASE_NO + 24)
+#define ENOTTY (ERROR_BASE_NO + 25)
+#define ETXTBSY (ERROR_BASE_NO + 26)
+#define EFBIG (ERROR_BASE_NO + 27)
+#define ENOSPC (ERROR_BASE_NO + 28)
+#define ESPIPE (ERROR_BASE_NO + 29)
+#define EROFS (ERROR_BASE_NO + 30)
+#define EMLINK (ERROR_BASE_NO + 31)
+#define EPIPE (ERROR_BASE_NO + 32)
+
+#ifndef EDOM
+#define EDOM (ERROR_BASE_NO + 33)
+#endif
+
+#ifndef ERANGE
+#define ERANGE (ERROR_BASE_NO + 34)
+#endif
+
+#define EDEADLK (ERROR_BASE_NO + 35)
+#define ENAMETOOLONG (ERROR_BASE_NO + 36)
+#define ENOLCK (ERROR_BASE_NO + 37)
+#define ENOSYS (ERROR_BASE_NO + 38)
+#define ENOTEMPTY (ERROR_BASE_NO + 39)
+#define ELOOP (ERROR_BASE_NO + 40)
+#define EWOULDBLOCK EAGAIN
+#define ENOMSG (ERROR_BASE_NO + 42)
+#define EIDRM (ERROR_BASE_NO + 43)
+#define ECHRNG (ERROR_BASE_NO + 44)
+#define EL2NSYNC (ERROR_BASE_NO + 45)
+#define EL3HLT (ERROR_BASE_NO + 46)
+#define EL3RST (ERROR_BASE_NO + 47)
+#define ELNRNG (ERROR_BASE_NO + 48)
+#define EUNATCH (ERROR_BASE_NO + 49)
+#define ENOCSI (ERROR_BASE_NO + 50)
+#define EL2HLT (ERROR_BASE_NO + 51)
+#define EBADE (ERROR_BASE_NO + 52)
+#define EBADR (ERROR_BASE_NO + 53)
+#define EXFULL (ERROR_BASE_NO + 54)
+#define ENOANO (ERROR_BASE_NO + 55)
+#define EBADRQC (ERROR_BASE_NO + 56)
+#define EBADSLT (ERROR_BASE_NO + 57)
+#define EDEADLOCK EDEADLK
+#define EBFONT (ERROR_BASE_NO + 59)
+#define ENOSTR (ERROR_BASE_NO + 60)
+#define ENODATA (ERROR_BASE_NO + 61)
+#define ETIME (ERROR_BASE_NO + 62)
+#define ENOSR (ERROR_BASE_NO + 63)
+#define ENONET (ERROR_BASE_NO + 64)
+#define ENOPKG (ERROR_BASE_NO + 65)
+#define EREMOTE (ERROR_BASE_NO + 66)
+#define ENOLINK (ERROR_BASE_NO + 67)
+#define EADV (ERROR_BASE_NO + 68)
+#define ESRMNT (ERROR_BASE_NO + 69)
+#define ECOMM (ERROR_BASE_NO + 70)
+#define EPROTO (ERROR_BASE_NO + 71)
+#define EMULTIHOP (ERROR_BASE_NO + 72)
+#define EDOTDOT (ERROR_BASE_NO + 73)
+#define EBADMSG (ERROR_BASE_NO + 74)
+#define EOVERFLOW (ERROR_BASE_NO + 75)
+#define ENOTUNIQ (ERROR_BASE_NO + 76)
+#define EBADFD (ERROR_BASE_NO + 77)
+#define EREMCHG (ERROR_BASE_NO + 78)
+#define ELIBACC (ERROR_BASE_NO + 79)
+#define ELIBBAD (ERROR_BASE_NO + 80)
+#define ELIBSCN (ERROR_BASE_NO + 81)
+#define ELIBMAX (ERROR_BASE_NO + 82)
+#define ELIBEXEC (ERROR_BASE_NO + 83)
+
+#ifndef EILSEQ
+#define EILSEQ (ERROR_BASE_NO + 84)
+#endif
+
+#define ERESTART (ERROR_BASE_NO + 85)
+#define ESTRPIPE (ERROR_BASE_NO + 86)
+#define EUSERS (ERROR_BASE_NO + 87)
+#define ENOTSOCK (ERROR_BASE_NO + 88)
+#define EDESTADDRREQ (ERROR_BASE_NO + 89)
+#define EMSGSIZE (ERROR_BASE_NO + 90)
+#define EPROTOTYPE (ERROR_BASE_NO + 91)
+#define ENOPROTOOPT (ERROR_BASE_NO + 92)
+#define EPROTONOSUPPORT (ERROR_BASE_NO + 93)
+#define ESOCKTNOSUPPORT (ERROR_BASE_NO + 94)
+#define EOPNOTSUPP (ERROR_BASE_NO + 95)
+#define ENOTSUP EOPNOTSUPP
+#define EPFNOSUPPORT (ERROR_BASE_NO + 96)
+#define EAFNOSUPPORT (ERROR_BASE_NO + 97)
+#define EADDRINUSE (ERROR_BASE_NO + 98)
+#define EADDRNOTAVAIL (ERROR_BASE_NO + 99)
+#define ENETDOWN (ERROR_BASE_NO + 100)
+#define ENETUNREACH (ERROR_BASE_NO + 101)
+#define ENETRESET (ERROR_BASE_NO + 102)
+#define ECONNABORTED (ERROR_BASE_NO + 103)
+#define ECONNRESET (ERROR_BASE_NO + 104)
+#define ENOBUFS (ERROR_BASE_NO + 105)
+#define EISCONN (ERROR_BASE_NO + 106)
+#define ENOTCONN (ERROR_BASE_NO + 107)
+#define ESHUTDOWN (ERROR_BASE_NO + 108)
+#define ETOOMANYREFS (ERROR_BASE_NO + 109)
+#define ETIMEDOUT (ERROR_BASE_NO + 110)
+#define ECONNREFUSED (ERROR_BASE_NO + 111)
+#define EHOSTDOWN (ERROR_BASE_NO + 112)
+#define EHOSTUNREACH (ERROR_BASE_NO + 113)
+#define EALREADY (ERROR_BASE_NO + 114)
+#define EINPROGRESS (ERROR_BASE_NO + 115)
+#define ESTALE (ERROR_BASE_NO + 116)
+#define EUCLEAN (ERROR_BASE_NO + 117)
+#define ENOTNAM (ERROR_BASE_NO + 118)
+#define ENAVAIL (ERROR_BASE_NO + 119)
+#define EISNAM (ERROR_BASE_NO + 120)
+#define EREMOTEIO (ERROR_BASE_NO + 121)
+#define EDQUOT (ERROR_BASE_NO + 122)
+#define ENOMEDIUM (ERROR_BASE_NO + 123)
+#define EMEDIUMTYPE (ERROR_BASE_NO + 124)
+#define ECANCELED (ERROR_BASE_NO + 125)
+#define ENOKEY (ERROR_BASE_NO + 126)
+#define EKEYEXPIRED (ERROR_BASE_NO + 127)
+#define EKEYREVOKED (ERROR_BASE_NO + 128)
+#define EKEYREJECTED (ERROR_BASE_NO + 129)
+#define EOWNERDEAD (ERROR_BASE_NO + 130)
+#define ENOTRECOVERABLE (ERROR_BASE_NO + 131)
+#define ERFKILL (ERROR_BASE_NO + 132)
+#define EHWPOISON (ERROR_BASE_NO + 133)
+#endif
+
+#endif
diff --git a/components/libc/compilers/common/time.c b/components/libc/compilers/common/time.c
index 9996212444..4cdfe77343 100644
--- a/components/libc/compilers/common/time.c
+++ b/components/libc/compilers/common/time.c
@@ -21,6 +21,7 @@
*/
#include "sys/time.h"
+#include <sys/errno.h>
#include <rtthread.h>
#ifdef RT_USING_DEVICE
diff --git a/components/libc/compilers/newlib/minilib.c b/components/libc/compilers/newlib/minilib.c
index f6df38f67b..612554ca66 100644
--- a/components/libc/compilers/newlib/minilib.c
+++ b/components/libc/compilers/newlib/minilib.c
@@ -12,8 +12,9 @@
#include <rtthread.h>
#ifdef RT_USING_HEAP /* Memory routine */
-void *
-_malloc_r (struct _reent *ptr, size_t size)
+#include <sys/errno.h>
+
+void * _malloc_r (struct _reent *ptr, size_t size)
{
void* result;
@@ -26,8 +27,7 @@ _malloc_r (struct _reent *ptr, size_t size)
return result;
}
-void *
-_realloc_r (struct _reent *ptr, void *old, size_t newlen)
+void * _realloc_r (struct _reent *ptr, void *old, size_t newlen)
{
void* result;
@@ -53,15 +53,13 @@ void *_calloc_r (struct _reent *ptr, size_t size, size_t len)
return result;
}
-void
-_free_r (struct _reent *ptr, void *addr)
+void _free_r (struct _reent *ptr, void *addr)
{
rt_free (addr);
}
#else
-void *
-_sbrk_r(struct _reent *ptr, ptrdiff_t incr)
+void * _sbrk_r(struct _reent *ptr, ptrdiff_t incr)
{
return RT_NULL;
}
diff --git a/components/libc/getline/posix_getline.c b/components/libc/getline/posix_getline.c
index 794ac3a07d..da80242ecc 100644
--- a/components/libc/getline/posix_getline.c
+++ b/components/libc/getline/posix_getline.c
@@ -11,8 +11,8 @@
#include "posix_getline.h"
#include <stdlib.h>
-#include <errno.h>
-#include <rtlibc.h>
+#include <limits.h>
+#include <sys/errno.h>
ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) {
char *cur_pos, *new_lineptr;
@@ -43,7 +43,7 @@ ssize_t getdelim(char **lineptr, size_t *n, int delim, FILE *stream) {
break;
if ((*lineptr + *n - cur_pos) < 2) {
- if (SSIZE_MAX / 2 < *n) {
+ if (LONG_MAX / 2 < *n) {
#ifdef EOVERFLOW
errno = EOVERFLOW;
#else
diff --git a/components/libc/pthreads/posix_types.h b/components/libc/pthreads/posix_types.h
index 942657ef39..5838e8b370 100644
--- a/components/libc/pthreads/posix_types.h
+++ b/components/libc/pthreads/posix_types.h
@@ -20,7 +20,7 @@
#include <sys/types.h>
#include <sys/time.h>
#include <unistd.h>
-#include <errno.h>
+#include <sys/errno.h>
#include <fcntl.h>
#endif
diff --git a/components/libc/signal/posix_signal.c b/components/libc/signal/posix_signal.c
index b06fe12685..1cb561d428 100644
--- a/components/libc/signal/posix_signal.c
+++ b/components/libc/signal/posix_signal.c
@@ -10,7 +10,8 @@
#include <rthw.h>
#include <rtthread.h>
-#include <time.h>
+#include <sys/time.h>
+#include <sys/errno.h>
#include "posix_signal.h"
#define sig_valid(sig_no) (sig_no >= 0 && sig_no < RT_SIG_MAX)
diff --git a/components/net/lwip-1.4.1/src/arch/include/arch/cc.h b/components/net/lwip-1.4.1/src/arch/include/arch/cc.h
index 8dd59e8dee..c312f50df5 100644
--- a/components/net/lwip-1.4.1/src/arch/include/arch/cc.h
+++ b/components/net/lwip-1.4.1/src/arch/include/arch/cc.h
@@ -54,24 +54,18 @@ typedef uintptr_t mem_ptr_t;
#define S32_F "ld"
#define X32_F "lx"
-#ifdef RT_USING_LIBC
-#if !defined(__CC_ARM) && !defined(__IAR_SYSTEMS_ICC__)
-
+#include <sys/errno.h>
/* some errno not defined in newlib */
+#ifndef ENSRNOTFOUND
#define ENSRNOTFOUND 163 /* Domain name not found */
/* WARNING: ESHUTDOWN also not defined in newlib. We chose
180 here because the number "108" which is used
in arch.h has been assigned to another error code. */
-#define ESHUTDOWN 180
-#endif /* __CC_ARM/__IAR_SYSTEMS_ICC__ */
#endif
-#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
+/* LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> */
#include <sys/time.h>
#define LWIP_TIMEVAL_PRIVATE 0
-#else
-#define LWIP_TIMEVAL_PRIVATE 1
-#endif
#if defined(__CC_ARM) /* ARMCC compiler */
#define PACK_STRUCT_FIELD(x) x
@@ -105,7 +99,7 @@ void sys_arch_assert(const char* file, int line);
#define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0)
#define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0)
-#include "string.h"
+#include <string.h>
#define SYS_ARCH_DECL_PROTECT(level)
#define SYS_ARCH_PROTECT(level) rt_enter_critical()
diff --git a/components/net/lwip-1.4.1/src/lwipopts.h b/components/net/lwip-1.4.1/src/lwipopts.h
index a23a167970..0b7e092d6c 100644
--- a/components/net/lwip-1.4.1/src/lwipopts.h
+++ b/components/net/lwip-1.4.1/src/lwipopts.h
@@ -3,7 +3,7 @@
#include <rtconfig.h>
-#define ERRNO 1
+#define ERRNO
#define NO_SYS 0
#define LWIP_SOCKET 1
diff --git a/components/net/lwip-2.0.2/src/arch/include/arch/cc.h b/components/net/lwip-2.0.2/src/arch/include/arch/cc.h
index e3014f552c..4829f5b2e5 100644
--- a/components/net/lwip-2.0.2/src/arch/include/arch/cc.h
+++ b/components/net/lwip-2.0.2/src/arch/include/arch/cc.h
@@ -45,12 +45,18 @@
#define S32_F "ld"
#define X32_F "lx"
-#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
+#include <sys/errno.h>
+/* some errno not defined in newlib */
+#ifndef ENSRNOTFOUND
+#define ENSRNOTFOUND 163 /* Domain name not found */
+/* WARNING: ESHUTDOWN also not defined in newlib. We chose
+ 180 here because the number "108" which is used
+ in arch.h has been assigned to another error code. */
+#endif
+
+/* LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> */
#include <sys/time.h>
#define LWIP_TIMEVAL_PRIVATE 0
-#else
-#define LWIP_TIMEVAL_PRIVATE 1
-#endif
#if defined(__CC_ARM) /* ARMCC compiler */
#define PACK_STRUCT_FIELD(x) x
@@ -84,7 +90,7 @@ void sys_arch_assert(const char* file, int line);
#define LWIP_PLATFORM_DIAG(x) do {rt_kprintf x;} while(0)
#define LWIP_PLATFORM_ASSERT(x) do {rt_kprintf(x); sys_arch_assert(__FILE__, __LINE__);}while(0)
-#include "string.h"
+#include <string.h>
#define SYS_ARCH_DECL_PROTECT(level)
#define SYS_ARCH_PROTECT(level) rt_enter_critical()
diff --git a/components/net/lwip-2.0.2/src/lwipopts.h b/components/net/lwip-2.0.2/src/lwipopts.h
index 09bd223aa4..d559684c02 100644
--- a/components/net/lwip-2.0.2/src/lwipopts.h
+++ b/components/net/lwip-2.0.2/src/lwipopts.h
@@ -3,7 +3,7 @@
#include <rtconfig.h>
-#define ERRNO 1
+#define LWIP_ERRNO_STDINCLUDE
#define LWIP_IPV4 1
diff --git a/components/net/lwip-2.1.2/src/arch/include/arch/cc.h b/components/net/lwip-2.1.2/src/arch/include/arch/cc.h
index 413fef65df..8e98013412 100644
--- a/components/net/lwip-2.1.2/src/arch/include/arch/cc.h
+++ b/components/net/lwip-2.1.2/src/arch/include/arch/cc.h
@@ -45,25 +45,18 @@
#define S32_F "ld"
#define X32_F "lx"
-#ifdef RT_USING_LIBC
-#include <errno.h>
+#include <sys/errno.h>
+/* some errno not defined in newlib */
#ifndef ENSRNOTFOUND
#define ENSRNOTFOUND 163 /* Domain name not found */
-#endif
-#ifndef ESHUTDOWN
/* WARNING: ESHUTDOWN also not defined in newlib. We chose
180 here because the number "108" which is used
in arch.h has been assigned to another error code. */
-#define ESHUTDOWN 180
#endif
-#endif /* RT_USING_LIBC */
-#if defined(RT_USING_LIBC) || defined(RT_LIBC_USING_TIME) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
+/* LWIP_TIMEVAL_PRIVATE: provided by <sys/time.h> */
#include <sys/time.h>
#define LWIP_TIMEVAL_PRIVATE 0
-#else
-#define LWIP_TIMEVAL_PRIVATE 1
-#endif
#if defined(__CC_ARM) /* ARMCC compiler */
#define PACK_STRUCT_FIELD(x) x
diff --git a/components/net/lwip-2.1.2/src/include/lwip/errno.h b/components/net/lwip-2.1.2/src/include/lwip/errno.h
index 48d6b539d8..9fd88fc91a 100644
--- a/components/net/lwip-2.1.2/src/include/lwip/errno.h
+++ b/components/net/lwip-2.1.2/src/include/lwip/errno.h
@@ -181,7 +181,7 @@ extern int errno;
/* Define LWIP_ERRNO_STDINCLUDE if you want to include <errno.h> here */
#ifdef LWIP_ERRNO_STDINCLUDE
-#include <errno.h>
+#include <sys/errno.h>
#else /* LWIP_ERRNO_STDINCLUDE */
/* Define LWIP_ERRNO_INCLUDE to an equivalent of <errno.h> to include the error defines here */
#ifdef LWIP_ERRNO_INCLUDE
diff --git a/components/net/lwip-2.1.2/src/lwipopts.h b/components/net/lwip-2.1.2/src/lwipopts.h
index 220bb6fa41..2cd7cb023a 100644
--- a/components/net/lwip-2.1.2/src/lwipopts.h
+++ b/components/net/lwip-2.1.2/src/lwipopts.h
@@ -3,8 +3,7 @@
#include <rtconfig.h>
-#define ERRNO 1
-
+#define LWIP_ERRNO_STDINCLUDE
#define LWIP_SOCKET_SELECT 1
#define LWIP_SOCKET_POLL 1
diff --git a/components/net/sal_socket/socket/net_sockets.c b/components/net/sal_socket/socket/net_sockets.c
index 3637635d50..7d4db34327 100644
--- a/components/net/sal_socket/socket/net_sockets.c
+++ b/components/net/sal_socket/socket/net_sockets.c
@@ -13,7 +13,7 @@
#include <dfs_file.h>
#include <dfs_poll.h>
#include <dfs_net.h>
-
+#include <sys/errno.h>
#include <sys/socket.h>
int accept(int s, struct sockaddr *addr, socklen_t *addrlen)