summaryrefslogtreecommitdiff
path: root/components/libc/compilers
diff options
context:
space:
mode:
authorxuzhuoyi <[email protected]>2018-11-16 20:09:46 +0800
committerxuzhuoyi <[email protected]>2018-11-16 20:09:46 +0800
commit37db67d94a269e1a9893d076ab2bb6b9883cfa8c (patch)
treefaaea1c497b8b50e638f768ed6fcc4ec83e6a90f /components/libc/compilers
parent305307c90c8723dcdb79663f65a8933b5cb1b934 (diff)
parent63a6f6c4d2540b003296594c4b916cc1ba8d0b16 (diff)
Merge remote-tracking branch 'upstream/master'
# Conflicts: # src/thread.c
Diffstat (limited to 'components/libc/compilers')
-rw-r--r--components/libc/compilers/armlibc/dirent.h8
-rw-r--r--components/libc/compilers/armlibc/fcntl.h8
-rw-r--r--components/libc/compilers/armlibc/libc.c20
-rw-r--r--components/libc/compilers/armlibc/libc.h20
-rw-r--r--components/libc/compilers/armlibc/libc_syms.c8
-rw-r--r--components/libc/compilers/armlibc/mem_std.c19
-rw-r--r--components/libc/compilers/armlibc/stdio.c40
-rw-r--r--components/libc/compilers/armlibc/stubs.c33
-rw-r--r--components/libc/compilers/armlibc/sys/errno.h8
-rw-r--r--components/libc/compilers/armlibc/sys/mman.h18
-rw-r--r--components/libc/compilers/armlibc/sys/stat.h8
-rw-r--r--components/libc/compilers/armlibc/sys/time.h9
-rw-r--r--components/libc/compilers/armlibc/sys/types.h8
-rw-r--r--components/libc/compilers/armlibc/sys/unistd.h8
-rw-r--r--components/libc/compilers/armlibc/termios.h8
-rw-r--r--components/libc/compilers/armlibc/time.c8
-rw-r--r--components/libc/compilers/armlibc/unistd.h8
-rw-r--r--components/libc/compilers/common/SConscript12
-rw-r--r--components/libc/compilers/common/gmtime_r.c88
-rw-r--r--components/libc/compilers/dlib/dirent.h8
-rw-r--r--components/libc/compilers/dlib/environ.c19
-rw-r--r--components/libc/compilers/dlib/fcntl.h8
-rw-r--r--components/libc/compilers/dlib/libc.c20
-rw-r--r--components/libc/compilers/dlib/libc.h20
-rw-r--r--components/libc/compilers/dlib/rmtx.c18
-rw-r--r--components/libc/compilers/dlib/stdio.c20
-rw-r--r--components/libc/compilers/dlib/sys/errno.h8
-rw-r--r--components/libc/compilers/dlib/sys/mman.h18
-rw-r--r--components/libc/compilers/dlib/sys/stat.h8
-rw-r--r--components/libc/compilers/dlib/sys/time.h9
-rw-r--r--components/libc/compilers/dlib/sys/types.h8
-rw-r--r--components/libc/compilers/dlib/sys/unistd.h8
-rw-r--r--components/libc/compilers/dlib/syscall_close.c18
-rw-r--r--components/libc/compilers/dlib/syscall_lseek.c18
-rw-r--r--components/libc/compilers/dlib/syscall_mem.c18
-rw-r--r--components/libc/compilers/dlib/syscall_open.c22
-rw-r--r--components/libc/compilers/dlib/syscall_read.c18
-rw-r--r--components/libc/compilers/dlib/syscall_remove.c18
-rw-r--r--components/libc/compilers/dlib/syscall_write.c18
-rw-r--r--components/libc/compilers/dlib/syscalls.h19
-rw-r--r--components/libc/compilers/dlib/termios.h8
-rw-r--r--components/libc/compilers/dlib/time.c66
-rw-r--r--components/libc/compilers/dlib/unistd.h8
-rw-r--r--components/libc/compilers/minilibc/ctype.c8
-rw-r--r--components/libc/compilers/minilibc/ctype.h8
-rw-r--r--components/libc/compilers/minilibc/errno.h81
-rw-r--r--components/libc/compilers/minilibc/inttypes.h8
-rw-r--r--components/libc/compilers/minilibc/math.c8
-rw-r--r--components/libc/compilers/minilibc/math.h8
-rw-r--r--components/libc/compilers/minilibc/qsort.c8
-rw-r--r--components/libc/compilers/minilibc/rand.c8
-rw-r--r--components/libc/compilers/minilibc/stddef.h8
-rw-r--r--components/libc/compilers/minilibc/stdint.h8
-rw-r--r--components/libc/compilers/minilibc/stdio.h8
-rw-r--r--components/libc/compilers/minilibc/stdlib.c8
-rw-r--r--components/libc/compilers/minilibc/stdlib.h8
-rw-r--r--components/libc/compilers/minilibc/string.c8
-rw-r--r--components/libc/compilers/minilibc/string.h8
-rw-r--r--components/libc/compilers/minilibc/sys/mman.h18
-rw-r--r--components/libc/compilers/minilibc/sys/stat.h8
-rw-r--r--components/libc/compilers/minilibc/sys/time.h8
-rw-r--r--components/libc/compilers/minilibc/sys/types.h8
-rw-r--r--components/libc/compilers/minilibc/time.c8
-rw-r--r--components/libc/compilers/minilibc/time.h8
-rw-r--r--components/libc/compilers/newlib/libc.c24
-rw-r--r--components/libc/compilers/newlib/libc.h27
-rw-r--r--components/libc/compilers/newlib/libc_syms.c20
-rw-r--r--components/libc/compilers/newlib/stdio.c20
-rw-r--r--components/libc/compilers/newlib/sys/dirent.h8
-rw-r--r--components/libc/compilers/newlib/sys/mman.h18
-rw-r--r--components/libc/compilers/newlib/sys/statfs.h8
-rw-r--r--components/libc/compilers/newlib/sys/termios.h8
-rw-r--r--components/libc/compilers/newlib/syscalls.c24
-rw-r--r--components/libc/compilers/newlib/termios.h8
-rw-r--r--components/libc/compilers/newlib/time.c8
75 files changed, 580 insertions, 586 deletions
diff --git a/components/libc/compilers/armlibc/dirent.h b/components/libc/compilers/armlibc/dirent.h
index 1adf952031..d3bc58cbc5 100644
--- a/components/libc/compilers/armlibc/dirent.h
+++ b/components/libc/compilers/armlibc/dirent.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __RTT_DIRENT_H__
#define __RTT_DIRENT_H__
diff --git a/components/libc/compilers/armlibc/fcntl.h b/components/libc/compilers/armlibc/fcntl.h
index 324b73f218..80cf1b4409 100644
--- a/components/libc/compilers/armlibc/fcntl.h
+++ b/components/libc/compilers/armlibc/fcntl.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef FCNTL_H__
#define FCNTL_H__
diff --git a/components/libc/compilers/armlibc/libc.c b/components/libc/compilers/armlibc/libc.c
index c3fab19fdc..fee390d4b4 100644
--- a/components/libc/compilers/armlibc/libc.c
+++ b/components/libc/compilers/armlibc/libc.c
@@ -1,23 +1,7 @@
/*
- * File : libc.c
- * Brief : armcc libc initialization
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/armlibc/libc.h b/components/libc/compilers/armlibc/libc.h
index e57897f0a8..158fe06c3e 100644
--- a/components/libc/compilers/armlibc/libc.h
+++ b/components/libc/compilers/armlibc/libc.h
@@ -1,23 +1,7 @@
/*
- * File : libc.h
- * Brief : armcc libc header file
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/armlibc/libc_syms.c b/components/libc/compilers/armlibc/libc_syms.c
index fc84aec77a..0e1c42d899 100644
--- a/components/libc/compilers/armlibc/libc_syms.c
+++ b/components/libc/compilers/armlibc/libc_syms.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/components/libc/compilers/armlibc/mem_std.c b/components/libc/compilers/armlibc/mem_std.c
index 7fa0033f9d..e160104a25 100644
--- a/components/libc/compilers/armlibc/mem_std.c
+++ b/components/libc/compilers/armlibc/mem_std.c
@@ -1,13 +1,7 @@
/*
- * File : mem_std.c
- * Brief : implement standard memory routins.
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of Device File System in RT-Thread RTOS
- * COPYRIGHT (C) 2014, RT-Thread Development Team
- *
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* 2014-08-03 bernard Add file header.
@@ -16,22 +10,25 @@
#include "rtthread.h"
#ifdef RT_USING_HEAP
+
+#ifdef __CC_ARM
/* avoid the heap and heap-using library functions supplied by arm */
#pragma import(__use_no_heap)
+#endif
-void *malloc(int n)
+void *malloc(size_t n)
{
return rt_malloc(n);
}
RTM_EXPORT(malloc);
-void *realloc(void *rmem, rt_size_t newsize)
+void *realloc(void *rmem, size_t newsize)
{
return rt_realloc(rmem, newsize);
}
RTM_EXPORT(realloc);
-void *calloc(rt_size_t nelem, rt_size_t elsize)
+void *calloc(size_t nelem, size_t elsize)
{
return rt_calloc(nelem, elsize);
}
diff --git a/components/libc/compilers/armlibc/stdio.c b/components/libc/compilers/armlibc/stdio.c
index d1ac976568..5262a4dd92 100644
--- a/components/libc/compilers/armlibc/stdio.c
+++ b/components/libc/compilers/armlibc/stdio.c
@@ -1,23 +1,7 @@
/*
- * File : stdio.c
- * Brief : stdio/console
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
@@ -65,11 +49,27 @@ int libc_stdio_get_console(void)
int libc_stdio_read(void *buffer, size_t size)
{
- return read(std_fd, buffer, size);
+ if (std_fd >= 0)
+ {
+ return read(std_fd, buffer, size);
+ }
+ else
+ {
+ rt_kprintf("Illegal stdio input!\n");
+ return 0;
+ }
}
int libc_stdio_write(const void *buffer, size_t size)
{
- return write(std_fd, buffer, size);
+ if (std_fd >= 0)
+ {
+ return write(std_fd, buffer, size);
+ }
+ else
+ {
+ rt_kprintf("Illegal stdio output!\n");
+ return size;
+ }
}
#endif
diff --git a/components/libc/compilers/armlibc/stubs.c b/components/libc/compilers/armlibc/stubs.c
index b9be260357..6e9f13d143 100644
--- a/components/libc/compilers/armlibc/stubs.c
+++ b/components/libc/compilers/armlibc/stubs.c
@@ -1,23 +1,7 @@
/*
- * File : stubs.c
- * Brief : reimplement some basic functions of arm standard c library
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
@@ -37,7 +21,11 @@
#include "dfs_posix.h"
#endif
+#ifdef __CLANG_ARM
+__asm(".global __use_no_semihosting\n\t");
+#else
#pragma import(__use_no_semihosting_swi)
+#endif
/* Standard IO device handles. */
#define STDIN 0
@@ -249,7 +237,7 @@ int _sys_tmpnam(char *name, int fileno, unsigned maxlength)
char *_sys_command_string(char *cmd, int len)
{
/* no support */
- return cmd;
+ return RT_NULL;
}
/* This function writes a character to the console. */
@@ -309,17 +297,18 @@ int system(const char *string)
int fputc(int c, FILE *f)
{
- char ch = c;
+ char ch[2] = {0};
- rt_kprintf(&ch);
+ ch[0] = c;
+ rt_kprintf(&ch[0]);
return 1;
}
int fgetc(FILE *f)
{
+#ifdef RT_USING_POSIX
char ch;
-#ifdef RT_USING_POSIX
if (libc_stdio_read(&ch, 1) == 1)
return ch;
#endif
diff --git a/components/libc/compilers/armlibc/sys/errno.h b/components/libc/compilers/armlibc/sys/errno.h
index 8ee115ed04..9c4307ebfb 100644
--- a/components/libc/compilers/armlibc/sys/errno.h
+++ b/components/libc/compilers/armlibc/sys/errno.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef SYS_ERRNO_H__
#define SYS_ERRNO_H__
diff --git a/components/libc/compilers/armlibc/sys/mman.h b/components/libc/compilers/armlibc/sys/mman.h
index 024a64e911..8c61b32b7c 100644
--- a/components/libc/compilers/armlibc/sys/mman.h
+++ b/components/libc/compilers/armlibc/sys/mman.h
@@ -1,21 +1,7 @@
/*
- * File : mman.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2017, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/armlibc/sys/stat.h b/components/libc/compilers/armlibc/sys/stat.h
index e69de29bb2..ce95230e88 100644
--- a/components/libc/compilers/armlibc/sys/stat.h
+++ b/components/libc/compilers/armlibc/sys/stat.h
@@ -0,0 +1,8 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
diff --git a/components/libc/compilers/armlibc/sys/time.h b/components/libc/compilers/armlibc/sys/time.h
index 2d60b37317..bac122e183 100644
--- a/components/libc/compilers/armlibc/sys/time.h
+++ b/components/libc/compilers/armlibc/sys/time.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _SYS_TIME_H_
#define _SYS_TIME_H_
@@ -37,6 +45,7 @@ struct timezone {
};
int gettimeofday(struct timeval *tp, void *ignore);
+struct tm *gmtime_r(const time_t *timep, struct tm *r);
#ifdef __cplusplus
}
diff --git a/components/libc/compilers/armlibc/sys/types.h b/components/libc/compilers/armlibc/sys/types.h
index b01d8283d4..4c76dfc429 100644
--- a/components/libc/compilers/armlibc/sys/types.h
+++ b/components/libc/compilers/armlibc/sys/types.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __TYPES_H__
#define __TYPES_H__
diff --git a/components/libc/compilers/armlibc/sys/unistd.h b/components/libc/compilers/armlibc/sys/unistd.h
index 56979955ba..33f0561e72 100644
--- a/components/libc/compilers/armlibc/sys/unistd.h
+++ b/components/libc/compilers/armlibc/sys/unistd.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _SYS_UNISTD_H
#define _SYS_UNISTD_H
diff --git a/components/libc/compilers/armlibc/termios.h b/components/libc/compilers/armlibc/termios.h
index 0b54066a76..1956121225 100644
--- a/components/libc/compilers/armlibc/termios.h
+++ b/components/libc/compilers/armlibc/termios.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _TERMIOS_H__
#define _TERMIOS_H__
diff --git a/components/libc/compilers/armlibc/time.c b/components/libc/compilers/armlibc/time.c
index e7ad19ad3c..29c5c6cdd2 100644
--- a/components/libc/compilers/armlibc/time.c
+++ b/components/libc/compilers/armlibc/time.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <sys/time.h>
#include <rtthread.h>
diff --git a/components/libc/compilers/armlibc/unistd.h b/components/libc/compilers/armlibc/unistd.h
index 3de0eaf398..70187722d8 100644
--- a/components/libc/compilers/armlibc/unistd.h
+++ b/components/libc/compilers/armlibc/unistd.h
@@ -1 +1,9 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include "sys/unistd.h"
diff --git a/components/libc/compilers/common/SConscript b/components/libc/compilers/common/SConscript
new file mode 100644
index 0000000000..02bf49941d
--- /dev/null
+++ b/components/libc/compilers/common/SConscript
@@ -0,0 +1,12 @@
+from building import *
+
+Import('rtconfig')
+
+src = Glob('*.c')
+cwd = GetCurrentDir()
+group = []
+CPPPATH = [cwd]
+
+group = DefineGroup('libc', src, depend = ['RT_USING_LIBC'], CPPPATH = CPPPATH)
+
+Return('group')
diff --git a/components/libc/compilers/common/gmtime_r.c b/components/libc/compilers/common/gmtime_r.c
new file mode 100644
index 0000000000..dff251ab6c
--- /dev/null
+++ b/components/libc/compilers/common/gmtime_r.c
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2018-10-26 zylx first version
+ */
+
+#if defined(__CC_ARM) || defined(__CLANG_ARM) || defined (__IAR_SYSTEMS_ICC__)
+#include <sys/time.h>
+
+/* seconds per day */
+#define SPD 24*60*60
+
+/* days per month -- nonleap! */
+const short __spm[13] =
+{
+ 0,
+ (31),
+ (31 + 28),
+ (31 + 28 + 31),
+ (31 + 28 + 31 + 30),
+ (31 + 28 + 31 + 30 + 31),
+ (31 + 28 + 31 + 30 + 31 + 30),
+ (31 + 28 + 31 + 30 + 31 + 30 + 31),
+ (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31),
+ (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30),
+ (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31),
+ (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30),
+ (31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31),
+};
+
+int __isleap(int year)
+{
+ /* every fourth year is a leap year except for century years that are
+ * not divisible by 400. */
+ /* return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)); */
+ return (!(year % 4) && ((year % 100) || !(year % 400)));
+}
+
+/**
+ * This function will convert Time (Restartable)
+ *
+ * @param timep the timestamp
+ * @param the structure to stores information
+ *
+ * @return the structure to stores information
+ *
+ */
+struct tm *gmtime_r(const time_t *timep, struct tm *r)
+{
+ time_t i;
+ register time_t work = *timep % (SPD);
+ r->tm_sec = work % 60;
+ work /= 60;
+ r->tm_min = work % 60;
+ r->tm_hour = work / 60;
+ work = *timep / (SPD);
+ r->tm_wday = (4 + work) % 7;
+ for (i = 1970;; ++i)
+ {
+ register time_t k = __isleap(i) ? 366 : 365;
+ if (work >= k)
+ work -= k;
+ else
+ break;
+ }
+ r->tm_year = i - 1900;
+ r->tm_yday = work;
+
+ r->tm_mday = 1;
+ if (__isleap(i) && (work > 58))
+ {
+ if (work == 59)
+ r->tm_mday = 2; /* 29.2. */
+ work -= 1;
+ }
+
+ for (i = 11; i && (__spm[i] > work); --i)
+ ;
+ r->tm_mon = i;
+ r->tm_mday += work - __spm[i];
+ return r;
+}
+#endif /* end of __CC_ARM or __CLANG_ARM or __IAR_SYSTEMS_ICC__ */
+
diff --git a/components/libc/compilers/dlib/dirent.h b/components/libc/compilers/dlib/dirent.h
index 61e77b9767..4c897cc550 100644
--- a/components/libc/compilers/dlib/dirent.h
+++ b/components/libc/compilers/dlib/dirent.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __RTT_DIRENT_H__
#define __RTT_DIRENT_H__
diff --git a/components/libc/compilers/dlib/environ.c b/components/libc/compilers/dlib/environ.c
index 1e44eb1627..ac19758838 100644
--- a/components/libc/compilers/dlib/environ.c
+++ b/components/libc/compilers/dlib/environ.c
@@ -1,20 +1,7 @@
-/* File: environ.c
- * this file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/fcntl.h b/components/libc/compilers/dlib/fcntl.h
index e69de29bb2..ce95230e88 100644
--- a/components/libc/compilers/dlib/fcntl.h
+++ b/components/libc/compilers/dlib/fcntl.h
@@ -0,0 +1,8 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
diff --git a/components/libc/compilers/dlib/libc.c b/components/libc/compilers/dlib/libc.c
index fa977ab399..8b42411a6b 100644
--- a/components/libc/compilers/dlib/libc.c
+++ b/components/libc/compilers/dlib/libc.c
@@ -1,23 +1,7 @@
/*
- * File : libc.c
- * Brief : iar dlib initialization
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/libc.h b/components/libc/compilers/dlib/libc.h
index d0a081d538..7b2665c32b 100644
--- a/components/libc/compilers/dlib/libc.h
+++ b/components/libc/compilers/dlib/libc.h
@@ -1,23 +1,7 @@
/*
- * File : libc.h
- * Brief : iar dlib header file
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/rmtx.c b/components/libc/compilers/dlib/rmtx.c
index 4bf7140271..69405c8f6a 100644
--- a/components/libc/compilers/dlib/rmtx.c
+++ b/components/libc/compilers/dlib/rmtx.c
@@ -1,21 +1,7 @@
/*
- * File : rmtx.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/stdio.c b/components/libc/compilers/dlib/stdio.c
index 12c1081d8b..b35ade7a38 100644
--- a/components/libc/compilers/dlib/stdio.c
+++ b/components/libc/compilers/dlib/stdio.c
@@ -1,23 +1,7 @@
/*
- * File : stdio.c
- * Brief : stdio/console
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/sys/errno.h b/components/libc/compilers/dlib/sys/errno.h
index 072892edc1..1ecb58b74c 100644
--- a/components/libc/compilers/dlib/sys/errno.h
+++ b/components/libc/compilers/dlib/sys/errno.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef SYS_ERRNO_H__
#define SYS_ERRNO_H__
diff --git a/components/libc/compilers/dlib/sys/mman.h b/components/libc/compilers/dlib/sys/mman.h
index 024a64e911..8c61b32b7c 100644
--- a/components/libc/compilers/dlib/sys/mman.h
+++ b/components/libc/compilers/dlib/sys/mman.h
@@ -1,21 +1,7 @@
/*
- * File : mman.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2017, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/sys/stat.h b/components/libc/compilers/dlib/sys/stat.h
index e69de29bb2..ce95230e88 100644
--- a/components/libc/compilers/dlib/sys/stat.h
+++ b/components/libc/compilers/dlib/sys/stat.h
@@ -0,0 +1,8 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
diff --git a/components/libc/compilers/dlib/sys/time.h b/components/libc/compilers/dlib/sys/time.h
index 1acb836032..baf566936b 100644
--- a/components/libc/compilers/dlib/sys/time.h
+++ b/components/libc/compilers/dlib/sys/time.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _SYS_TIME_H_
#define _SYS_TIME_H_
@@ -44,6 +52,7 @@ struct timezone {
};
int gettimeofday(struct timeval *tp, void *ignore);
+struct tm *gmtime_r(const time_t *timep, struct tm *r);
#ifdef __cplusplus
}
diff --git a/components/libc/compilers/dlib/sys/types.h b/components/libc/compilers/dlib/sys/types.h
index b01d8283d4..4c76dfc429 100644
--- a/components/libc/compilers/dlib/sys/types.h
+++ b/components/libc/compilers/dlib/sys/types.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __TYPES_H__
#define __TYPES_H__
diff --git a/components/libc/compilers/dlib/sys/unistd.h b/components/libc/compilers/dlib/sys/unistd.h
index dbe4f3010d..5985a42996 100644
--- a/components/libc/compilers/dlib/sys/unistd.h
+++ b/components/libc/compilers/dlib/sys/unistd.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _SYS_UNISTD_H
#define _SYS_UNISTD_H
diff --git a/components/libc/compilers/dlib/syscall_close.c b/components/libc/compilers/dlib/syscall_close.c
index 5792bb3806..f46162deb7 100644
--- a/components/libc/compilers/dlib/syscall_close.c
+++ b/components/libc/compilers/dlib/syscall_close.c
@@ -1,21 +1,7 @@
/*
- * File : syscall_close.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/syscall_lseek.c b/components/libc/compilers/dlib/syscall_lseek.c
index 950ba52f65..b79cc410b7 100644
--- a/components/libc/compilers/dlib/syscall_lseek.c
+++ b/components/libc/compilers/dlib/syscall_lseek.c
@@ -1,21 +1,7 @@
/*
- * File : syscall_lseek.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/syscall_mem.c b/components/libc/compilers/dlib/syscall_mem.c
index b3933ba910..236ef1c12d 100644
--- a/components/libc/compilers/dlib/syscall_mem.c
+++ b/components/libc/compilers/dlib/syscall_mem.c
@@ -1,21 +1,7 @@
/*
- * File : syscall_mem.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/syscall_open.c b/components/libc/compilers/dlib/syscall_open.c
index 6194707549..96e02dc32a 100644
--- a/components/libc/compilers/dlib/syscall_open.c
+++ b/components/libc/compilers/dlib/syscall_open.c
@@ -1,22 +1,8 @@
/*
-* File : syscall_open.c
-* This file is part of RT-Thread RTOS
-* COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
-*
-* This program is free software; you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation; either version 2 of the License, or
-* (at your option) any later version.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License along
-* with this program; if not, write to the Free Software Foundation, Inc.,
-* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
* Change Logs:
* Date Author Notes
* 2015-01-28 Bernard first version
diff --git a/components/libc/compilers/dlib/syscall_read.c b/components/libc/compilers/dlib/syscall_read.c
index e7e99629d7..e248211486 100644
--- a/components/libc/compilers/dlib/syscall_read.c
+++ b/components/libc/compilers/dlib/syscall_read.c
@@ -1,21 +1,7 @@
/*
- * File : syscall_read.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/syscall_remove.c b/components/libc/compilers/dlib/syscall_remove.c
index b7dd9477b7..e7f0268b1b 100644
--- a/components/libc/compilers/dlib/syscall_remove.c
+++ b/components/libc/compilers/dlib/syscall_remove.c
@@ -1,21 +1,7 @@
/*
- * File : syscall_remove.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/syscall_write.c b/components/libc/compilers/dlib/syscall_write.c
index 79d702339a..85c0da22c3 100644
--- a/components/libc/compilers/dlib/syscall_write.c
+++ b/components/libc/compilers/dlib/syscall_write.c
@@ -1,21 +1,7 @@
/*
- * File : syscall_write.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/syscalls.h b/components/libc/compilers/dlib/syscalls.h
index 2c38854f72..993962e8db 100644
--- a/components/libc/compilers/dlib/syscalls.h
+++ b/components/libc/compilers/dlib/syscalls.h
@@ -1,20 +1,7 @@
-/* File: syscalls.h
- * this file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2015, RT-Thread Development Team
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/dlib/termios.h b/components/libc/compilers/dlib/termios.h
index 0b54066a76..1956121225 100644
--- a/components/libc/compilers/dlib/termios.h
+++ b/components/libc/compilers/dlib/termios.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _TERMIOS_H__
#define _TERMIOS_H__
diff --git a/components/libc/compilers/dlib/time.c b/components/libc/compilers/dlib/time.c
index e7ad19ad3c..87574df851 100644
--- a/components/libc/compilers/dlib/time.c
+++ b/components/libc/compilers/dlib/time.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <sys/time.h>
#include <rtthread.h>
@@ -32,43 +40,47 @@ int gettimeofday(struct timeval *tp, void *ignore)
* @return time_t return timestamp current.
*
*/
+#pragma module_name = "?time"
+#if _DLIB_TIME_USES_64
+time_t __time64(time_t *t)
+#else
/* for IAR 6.2 later Compiler */
#if defined (__IAR_SYSTEMS_ICC__) && (__VER__) >= 6020000
-#pragma module_name = "?time"
-time_t (__time32)(time_t *t) /* Only supports 32-bit timestamp */
+time_t __time32(time_t *t)
#else
time_t time(time_t *t)
#endif
+#endif
{
- time_t time_now = 0;
-
+ time_t time_now = 0;
+
#ifdef RT_USING_RTC
- static rt_device_t device = RT_NULL;
-
- /* optimization: find rtc device only first. */
- if (device == RT_NULL)
- {
- device = rt_device_find("rtc");
- }
-
- /* read timestamp from RTC device. */
- if (device != RT_NULL)
+ static rt_device_t device = RT_NULL;
+
+ /* optimization: find rtc device only first. */
+ if (device == RT_NULL)
+ {
+ device = rt_device_find("rtc");
+ }
+
+ /* read timestamp from RTC device. */
+ if (device != RT_NULL)
+ {
+ if (rt_device_open(device, 0) == RT_EOK)
{
- if (rt_device_open(device, 0) == RT_EOK)
- {
- rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time_now);
- rt_device_close(device);
- }
+ rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time_now);
+ rt_device_close(device);
}
+ }
#endif /* RT_USING_RTC */
-
- /* if t is not NULL, write timestamp to *t */
- if (t != RT_NULL)
- {
- *t = time_now;
- }
-
- return time_now;
+
+ /* if t is not NULL, write timestamp to *t */
+ if (t != RT_NULL)
+ {
+ *t = time_now;
+ }
+
+ return time_now;
}
RT_WEAK clock_t clock(void)
diff --git a/components/libc/compilers/dlib/unistd.h b/components/libc/compilers/dlib/unistd.h
index d67f8fb6f2..a07d8409c2 100644
--- a/components/libc/compilers/dlib/unistd.h
+++ b/components/libc/compilers/dlib/unistd.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _UNISTD_H_
#define _UNISTD_H_
diff --git a/components/libc/compilers/minilibc/ctype.c b/components/libc/compilers/minilibc/ctype.c
index fed8f583a6..b94ff2dae8 100644
--- a/components/libc/compilers/minilibc/ctype.c
+++ b/components/libc/compilers/minilibc/ctype.c
@@ -1,11 +1,7 @@
/*
- * File : ctype.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2008, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/ctype.h b/components/libc/compilers/minilibc/ctype.h
index 6b93490d36..5f41376ed8 100644
--- a/components/libc/compilers/minilibc/ctype.h
+++ b/components/libc/compilers/minilibc/ctype.h
@@ -1,11 +1,7 @@
/*
- * File : ctype.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2008, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/errno.h b/components/libc/compilers/minilibc/errno.h
index 74b8296241..a7ee380594 100644
--- a/components/libc/compilers/minilibc/errno.h
+++ b/components/libc/compilers/minilibc/errno.h
@@ -1,77 +1,16 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __ERRNO_H__
#define __ERRNO_H__
-#ifdef RT_USING_DFS
-
-#include <dfs_def.h>
-
-/* using device error codes */
-#define ENOENT DFS_STATUS_ENOENT
-#define EIO DFS_STATUS_EIO
-#define ENXIO DFS_STATUS_ENXIO
-#define EBADF DFS_STATUS_EBADF
-#define EAGAIN DFS_STATUS_EAGAIN
-#define ENOMEM DFS_STATUS_ENOMEM
-#define EBUSY DFS_STATUS_EBUSY
-#define EEXIST DFS_STATUS_EEXIST
-#define EXDEV DFS_STATUS_EXDEV
-#define ENODEV DFS_STATUS_ENODEV
-#define ENOTDIR DFS_STATUS_ENOTDIR
-#define EISDIR DFS_STATUS_EISDIR
-#define EINVAL DFS_STATUS_EINVAL
-#define ENOSPC DFS_STATUS_ENOSPC
-#define EROFS DFS_STATUS_EROFS
-#define ENOSYS DFS_STATUS_ENOSYS
-#define ENOTEMPTY DFS_STATUS_ENOTEMPTY
-
-#else
-
-/* error codes */
-#define ENOENT 2 /* No such file or directory */
-#define EIO 5 /* I/O error */
-#define ENXIO 6 /* No such device or address */
-#define EBADF 9 /* Bad file number */
-#define EAGAIN 11 /* Try again */
-#define ENOMEM 12 /* no memory */
-#define EBUSY 16 /* Device or resource busy */
-#define EEXIST 17 /* File exists */
-#define EXDEV 18 /* Cross-device link */
-#define ENODEV 19 /* No such device */
-#define ENOTDIR 20 /* Not a directory */
-#define EISDIR 21 /* Is a directory */
-#define EINVAL 22 /* Invalid argument */
-#define ENOSPC 28 /* No space left on device */
-#define EROFS 30 /* Read-only file system */
-#define ENOSYS 38 /* Function not implemented */
-#define ENOTEMPTY 39 /* Directory not empty */
-
-#endif
-
-#define EPERM 1 /* Not super-user */
-#define ESRCH 3 /* No such process */
-#define EINTR 4 /* Interrupted system call */
-#define EFAULT 14 /* Bad address */
-#define ENFILE 23 /* Too many open files in system */
-#define ERANGE 34 /* Math result not representable */
-#define EDEADLK 45 /* Deadlock condition */
-#define EBADMSG 77 /* Trying to read unreadable message */
-#define EMSGSIZE 90 /* Message too long */
-#define ENOPROTOOPT 92 /* Protocol not available */
-#define EOPNOTSUPP 95 /* Operation not supported on transport endpoint */
-#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
-#define EADDRINUSE 98 /* Address already in use */
-#define ENETDOWN 100 /* Network is down */
-#define ENETUNREACH 101 /* Network is unreachable */
-#define ECONNABORTED 103 /* Software caused connection abort */
-#define ECONNRESET 104 /* Connection reset by peer */
-#define ENOBUFS 105 /* No buffer space available */
-#define ENOTCONN 107 /* Transport endpoint is not connected */
-#define EINPROGRESS 115 /* Operation now in progress */
-#define ETIMEDOUT 116 /* Connection timed out */
-#define EHOSTUNREACH 113 /* No route to host */
-#define EALREADY 114 /* Operation already in progress */
-#define ENOTSUP 134 /* Not supported */
+#include "libc/libc_errno.h"
+/* Others defined in libc/libc_errno.h */
#define ENSRNOTFOUND 163 /* Domain name not found */
-#define EWOULDBLOCK EAGAIN /* Operation would block */
#endif
diff --git a/components/libc/compilers/minilibc/inttypes.h b/components/libc/compilers/minilibc/inttypes.h
index 84e036a043..8bab743655 100644
--- a/components/libc/compilers/minilibc/inttypes.h
+++ b/components/libc/compilers/minilibc/inttypes.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __INTTYPES_H__
#define __INTTYPES_H__
diff --git a/components/libc/compilers/minilibc/math.c b/components/libc/compilers/minilibc/math.c
index 27315a428c..cd5770178e 100644
--- a/components/libc/compilers/minilibc/math.c
+++ b/components/libc/compilers/minilibc/math.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <math.h>
/*
diff --git a/components/libc/compilers/minilibc/math.h b/components/libc/compilers/minilibc/math.h
index b436eb08b5..9ddb9c859b 100644
--- a/components/libc/compilers/minilibc/math.h
+++ b/components/libc/compilers/minilibc/math.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __MATH_H__
#define __MATH_H__
diff --git a/components/libc/compilers/minilibc/qsort.c b/components/libc/compilers/minilibc/qsort.c
index f412986e1d..2b97ce763c 100644
--- a/components/libc/compilers/minilibc/qsort.c
+++ b/components/libc/compilers/minilibc/qsort.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <sys/types.h>
#include <stdlib.h>
diff --git a/components/libc/compilers/minilibc/rand.c b/components/libc/compilers/minilibc/rand.c
index 387d605d4c..88603dc808 100644
--- a/components/libc/compilers/minilibc/rand.c
+++ b/components/libc/compilers/minilibc/rand.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <stdlib.h>
#include <stdint.h>
#include <sys/types.h>
diff --git a/components/libc/compilers/minilibc/stddef.h b/components/libc/compilers/minilibc/stddef.h
index 8068277117..7353a157cb 100644
--- a/components/libc/compilers/minilibc/stddef.h
+++ b/components/libc/compilers/minilibc/stddef.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __STDDEF_H__
#define __STDDEF_H__
diff --git a/components/libc/compilers/minilibc/stdint.h b/components/libc/compilers/minilibc/stdint.h
index c865d43435..bd5fdc83f5 100644
--- a/components/libc/compilers/minilibc/stdint.h
+++ b/components/libc/compilers/minilibc/stdint.h
@@ -1,4 +1,12 @@
/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
+/*
* ISO C Standard: 7.18 Integer types <stdint.h>
*/
diff --git a/components/libc/compilers/minilibc/stdio.h b/components/libc/compilers/minilibc/stdio.h
index a6ecb32931..678682cf5e 100644
--- a/components/libc/compilers/minilibc/stdio.h
+++ b/components/libc/compilers/minilibc/stdio.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __STDIO_H__
#define __STDIO_H__
diff --git a/components/libc/compilers/minilibc/stdlib.c b/components/libc/compilers/minilibc/stdlib.c
index e29ae9bc2e..8154ec5b8b 100644
--- a/components/libc/compilers/minilibc/stdlib.c
+++ b/components/libc/compilers/minilibc/stdlib.c
@@ -1,11 +1,7 @@
/*
- * File : stdlib.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2008, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/stdlib.h b/components/libc/compilers/minilibc/stdlib.h
index 4e87537d3f..d57d95b64d 100644
--- a/components/libc/compilers/minilibc/stdlib.h
+++ b/components/libc/compilers/minilibc/stdlib.h
@@ -1,11 +1,7 @@
/*
- * File : stdlib.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2008, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/string.c b/components/libc/compilers/minilibc/string.c
index 4e90da1554..1ab7c0509f 100644
--- a/components/libc/compilers/minilibc/string.c
+++ b/components/libc/compilers/minilibc/string.c
@@ -1,11 +1,7 @@
/*
- * File : string.c
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2008, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/string.h b/components/libc/compilers/minilibc/string.h
index 089903e993..45524c7764 100644
--- a/components/libc/compilers/minilibc/string.h
+++ b/components/libc/compilers/minilibc/string.h
@@ -1,11 +1,7 @@
/*
- * File : string.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2008, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * The license and distribution terms for this file may be
- * found in the file LICENSE in this distribution or at
- * http://www.rt-thread.org/license/LICENSE
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/sys/mman.h b/components/libc/compilers/minilibc/sys/mman.h
index 024a64e911..8c61b32b7c 100644
--- a/components/libc/compilers/minilibc/sys/mman.h
+++ b/components/libc/compilers/minilibc/sys/mman.h
@@ -1,21 +1,7 @@
/*
- * File : mman.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2017, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/minilibc/sys/stat.h b/components/libc/compilers/minilibc/sys/stat.h
index 7826cba945..65db477a4a 100644
--- a/components/libc/compilers/minilibc/sys/stat.h
+++ b/components/libc/compilers/minilibc/sys/stat.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __STAT_H__
#define __STAT_H__
diff --git a/components/libc/compilers/minilibc/sys/time.h b/components/libc/compilers/minilibc/sys/time.h
index 9cb330df5c..22a93f5c9d 100644
--- a/components/libc/compilers/minilibc/sys/time.h
+++ b/components/libc/compilers/minilibc/sys/time.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _SYS_TIME_H_
#define _SYS_TIME_H_
diff --git a/components/libc/compilers/minilibc/sys/types.h b/components/libc/compilers/minilibc/sys/types.h
index 850bafea43..0c00a79d1e 100644
--- a/components/libc/compilers/minilibc/sys/types.h
+++ b/components/libc/compilers/minilibc/sys/types.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __TYPES_H__
#define __TYPES_H__
diff --git a/components/libc/compilers/minilibc/time.c b/components/libc/compilers/minilibc/time.c
index 605f6f573e..508558bafc 100644
--- a/components/libc/compilers/minilibc/time.c
+++ b/components/libc/compilers/minilibc/time.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <time.h>
#include <rtthread.h>
diff --git a/components/libc/compilers/minilibc/time.h b/components/libc/compilers/minilibc/time.h
index d64feba0b8..09fc7d2e67 100644
--- a/components/libc/compilers/minilibc/time.h
+++ b/components/libc/compilers/minilibc/time.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __TIME_H__
#define __TIME_H__
diff --git a/components/libc/compilers/newlib/libc.c b/components/libc/compilers/newlib/libc.c
index 0b7350c30e..2234c36f98 100644
--- a/components/libc/compilers/newlib/libc.c
+++ b/components/libc/compilers/newlib/libc.c
@@ -1,23 +1,7 @@
/*
- * File : libc.c
- * Brief : gcc libc header file
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
@@ -39,7 +23,7 @@ int _EXFUN(putenv,(char *__string));
int libc_system_init(void)
{
-#if defined(RT_USING_DFS) & defined(RT_USING_DFS_DEVFS)
+#if defined(RT_USING_DFS) & defined(RT_USING_DFS_DEVFS) & defined(RT_USING_CONSOLE)
rt_device_t dev_console;
dev_console = rt_console_get_device();
@@ -51,11 +35,11 @@ int libc_system_init(void)
libc_stdio_set_console(dev_console->parent.name, O_WRONLY);
#endif
}
-#endif
/* set PATH and HOME */
putenv("PATH=/bin");
putenv("HOME=/home");
+#endif
#if defined RT_USING_PTHREADS && !defined RT_USING_COMPONENTS_INIT
pthread_system_init();
diff --git a/components/libc/compilers/newlib/libc.h b/components/libc/compilers/newlib/libc.h
index d077de9656..ab9334fe26 100644
--- a/components/libc/compilers/newlib/libc.h
+++ b/components/libc/compilers/newlib/libc.h
@@ -1,23 +1,7 @@
/*
- * File : libc.h
- * Brief : gcc libc header file
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
@@ -26,8 +10,15 @@
#ifndef __RTT_LIBC_H__
#define __RTT_LIBC_H__
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
#include <sys/time.h>
+#ifndef _EXFUN
+#define _EXFUN(name, proto) name proto
+#endif
+
#define MILLISECOND_PER_SECOND 1000UL
#define MICROSECOND_PER_SECOND 1000000UL
#define NANOSECOND_PER_SECOND 1000000000UL
diff --git a/components/libc/compilers/newlib/libc_syms.c b/components/libc/compilers/newlib/libc_syms.c
index ed8686e5dd..b150c10fd6 100644
--- a/components/libc/compilers/newlib/libc_syms.c
+++ b/components/libc/compilers/newlib/libc_syms.c
@@ -1,23 +1,7 @@
/*
- * File : libc_syms.c
- * Brief : exported symbols for libc.
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/newlib/stdio.c b/components/libc/compilers/newlib/stdio.c
index 9f30106b72..233a447396 100644
--- a/components/libc/compilers/newlib/stdio.c
+++ b/components/libc/compilers/newlib/stdio.c
@@ -1,23 +1,7 @@
/*
- * File : stdio.c
- * Brief : stdio for newlib
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2006 - 2017, RT-Thread Development Team
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/newlib/sys/dirent.h b/components/libc/compilers/newlib/sys/dirent.h
index 2efc683579..db8c0655a1 100644
--- a/components/libc/compilers/newlib/sys/dirent.h
+++ b/components/libc/compilers/newlib/sys/dirent.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __RTT_DIRENT_H__
#define __RTT_DIRENT_H__
diff --git a/components/libc/compilers/newlib/sys/mman.h b/components/libc/compilers/newlib/sys/mman.h
index 024a64e911..8c61b32b7c 100644
--- a/components/libc/compilers/newlib/sys/mman.h
+++ b/components/libc/compilers/newlib/sys/mman.h
@@ -1,21 +1,7 @@
/*
- * File : mman.h
- * This file is part of RT-Thread RTOS
- * COPYRIGHT (C) 2017, RT-Thread Development Team
+ * Copyright (c) 2006-2018, RT-Thread Development Team
*
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ * SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
diff --git a/components/libc/compilers/newlib/sys/statfs.h b/components/libc/compilers/newlib/sys/statfs.h
index 95772b5ead..3c923a21f9 100644
--- a/components/libc/compilers/newlib/sys/statfs.h
+++ b/components/libc/compilers/newlib/sys/statfs.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef __RTT_STATFS_H__
#define __RTT_STATFS_H__
diff --git a/components/libc/compilers/newlib/sys/termios.h b/components/libc/compilers/newlib/sys/termios.h
index e69de29bb2..ce95230e88 100644
--- a/components/libc/compilers/newlib/sys/termios.h
+++ b/components/libc/compilers/newlib/sys/termios.h
@@ -0,0 +1,8 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c
index 822182ba93..e4cda478cb 100644
--- a/components/libc/compilers/newlib/syscalls.c
+++ b/components/libc/compilers/newlib/syscalls.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <reent.h>
#include <sys/errno.h>
#include <sys/time.h>
@@ -11,6 +19,10 @@
#include <pthread.h>
#endif
+#ifdef RT_USING_MODULE
+#include <dlmodule.h>
+#endif
+
/* Reentrant versions of system calls. */
int
@@ -379,18 +391,12 @@ _free_r (struct _reent *ptr, void *addr)
}
void
-_exit (int status)
+exit (int status)
{
#ifdef RT_USING_MODULE
- rt_module_t module;
-
- module = rt_module_self();
- if (module != RT_NULL)
+ if (dlmodule_self())
{
- rt_thread_suspend(rt_thread_self());
-
- /* re-schedule */
- rt_schedule();
+ dlmodule_exit(status);
}
#endif
diff --git a/components/libc/compilers/newlib/termios.h b/components/libc/compilers/newlib/termios.h
index 0b54066a76..1956121225 100644
--- a/components/libc/compilers/newlib/termios.h
+++ b/components/libc/compilers/newlib/termios.h
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#ifndef _TERMIOS_H__
#define _TERMIOS_H__
diff --git a/components/libc/compilers/newlib/time.c b/components/libc/compilers/newlib/time.c
index e7ad19ad3c..29c5c6cdd2 100644
--- a/components/libc/compilers/newlib/time.c
+++ b/components/libc/compilers/newlib/time.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ */
#include <sys/time.h>
#include <rtthread.h>