summaryrefslogtreecommitdiff
path: root/components/libc
diff options
context:
space:
mode:
Diffstat (limited to 'components/libc')
-rw-r--r--components/libc/Kconfig7
-rw-r--r--components/libc/compilers/armlibc/README.md9
-rw-r--r--components/libc/compilers/armlibc/fcntl.h2
-rw-r--r--components/libc/compilers/armlibc/stubs.c10
-rw-r--r--components/libc/compilers/armlibc/sys/ioctl.h (renamed from components/libc/compilers/dlib/termios.h)8
-rw-r--r--components/libc/compilers/armlibc/sys/types.h14
-rw-r--r--components/libc/compilers/armlibc/sys/unistd.h28
-rw-r--r--components/libc/compilers/common/SConscript11
-rw-r--r--components/libc/compilers/common/readme.md10
-rw-r--r--components/libc/compilers/common/sys/time.h23
-rw-r--r--components/libc/compilers/common/termios.h (renamed from components/libc/compilers/armlibc/termios.h)4
-rw-r--r--components/libc/compilers/common/unistd.c26
-rw-r--r--components/libc/compilers/dlib/README.md7
-rw-r--r--components/libc/compilers/dlib/sys/types.h13
-rw-r--r--components/libc/compilers/minilibc/SConscript2
-rw-r--r--components/libc/compilers/minilibc/sys/types.h2
-rw-r--r--components/libc/compilers/newlib/README.md9
-rw-r--r--components/libc/compilers/newlib/syscalls.c4
-rw-r--r--components/libc/compilers/newlib/termios.h15
-rw-r--r--components/libc/compilers/newlib/time.c82
-rw-r--r--components/libc/libdl/dlmodule.c14
-rw-r--r--components/libc/pthreads/SConscript22
-rw-r--r--components/libc/pthreads/semaphore.c2
-rw-r--r--components/libc/termios/posix_termios.c9
-rw-r--r--components/libc/termios/posix_termios.h3
25 files changed, 174 insertions, 162 deletions
diff --git a/components/libc/Kconfig b/components/libc/Kconfig
index 2d1e9315f1..26726d8f5e 100644
--- a/components/libc/Kconfig
+++ b/components/libc/Kconfig
@@ -22,11 +22,11 @@ if RT_USING_LIBC && RT_USING_DFS
if RT_USING_POSIX
config RT_USING_POSIX_MMAP
- bool "Enable mmap() api"
+ bool "Enable mmap() API"
default n
config RT_USING_POSIX_TERMIOS
- bool "Enable termios feature"
+ bool "Enable termios APIs"
default n
config RT_USING_POSIX_AIO
@@ -34,6 +34,9 @@ if RT_USING_LIBC && RT_USING_DFS
default n
endif
+endif
+
+if RT_USING_LIBC
config RT_USING_MODULE
bool "Enable dynamic module with dlopen/dlsym/dlclose feature"
default n
diff --git a/components/libc/compilers/armlibc/README.md b/components/libc/compilers/armlibc/README.md
new file mode 100644
index 0000000000..4d2a73b6be
--- /dev/null
+++ b/components/libc/compilers/armlibc/README.md
@@ -0,0 +1,9 @@
+# ARMLIB (Keil-MDK) porting for RT-Thread
+
+Please define RT_USING_LIBC and compile RT-Thread with Keil-MDK compiler.
+
+
+
+## More Information
+
+https://www.keil.com/support/man/docs/armlib/ \ No newline at end of file
diff --git a/components/libc/compilers/armlibc/fcntl.h b/components/libc/compilers/armlibc/fcntl.h
index 80cf1b4409..3e650a8471 100644
--- a/components/libc/compilers/armlibc/fcntl.h
+++ b/components/libc/compilers/armlibc/fcntl.h
@@ -9,6 +9,8 @@
#ifndef FCNTL_H__
#define FCNTL_H__
+#include <rtconfig.h>
+
#ifdef RT_USING_DFS
#include <dfs_posix.h>
#endif
diff --git a/components/libc/compilers/armlibc/stubs.c b/components/libc/compilers/armlibc/stubs.c
index b6ffb37b0f..b4cc13799e 100644
--- a/components/libc/compilers/armlibc/stubs.c
+++ b/components/libc/compilers/armlibc/stubs.c
@@ -9,6 +9,8 @@
* 2013-11-24 aozima fixed _sys_read()/_sys_write() issues.
* 2014-08-03 bernard If using msh, use system() implementation
* in msh.
+ * 2020-08-05 Meco Man fixed _sys_flen() compiling-warning when
+ * RT_USING_DFS is not defined
*/
#include <string.h>
@@ -265,16 +267,16 @@ RT_WEAK void _sys_exit(int return_code)
*/
long _sys_flen(FILEHANDLE fh)
{
+#ifdef RT_USING_DFS
struct stat stat;
-
+
if (fh < STDERR)
return -1;
-#ifndef RT_USING_DFS
- return -1;
-#else
fstat(fh, &stat);
return stat.st_size;
+#else
+ return -1;
#endif
}
diff --git a/components/libc/compilers/dlib/termios.h b/components/libc/compilers/armlibc/sys/ioctl.h
index 1956121225..033a57014a 100644
--- a/components/libc/compilers/dlib/termios.h
+++ b/components/libc/compilers/armlibc/sys/ioctl.h
@@ -5,11 +5,11 @@
*
* Change Logs:
* Date Author Notes
+ * 2020-09-01 Meco Man First Version
*/
-#ifndef _TERMIOS_H__
-#define _TERMIOS_H__
+#ifndef _SYS_IOCTL_H
+#define _SYS_IOCTL_H
+
-#include <sys/types.h>
-#include <posix_termios.h>
#endif
diff --git a/components/libc/compilers/armlibc/sys/types.h b/components/libc/compilers/armlibc/sys/types.h
index 001ace4dd2..78fee1bb99 100644
--- a/components/libc/compilers/armlibc/sys/types.h
+++ b/components/libc/compilers/armlibc/sys/types.h
@@ -5,20 +5,22 @@
*
* Change Logs:
* Date Author Notes
+ * 2020-09-05 Meco Man fix bugs
+ * 2020-12-16 Meco Man add useconds_t
*/
#ifndef __TYPES_H__
#define __TYPES_H__
#include <stdint.h>
-#include <rtthread.h>
-typedef rt_int32_t clockid_t;
-typedef rt_int32_t key_t; /* Used for interprocess communication. */
-typedef rt_int32_t pid_t; /* Used for process IDs and process group IDs. */
+typedef int32_t clockid_t;
+typedef int32_t key_t; /* Used for interprocess communication. */
+typedef int32_t pid_t; /* Used for process IDs and process group IDs. */
#ifndef ARCH_CPU_64BIT
-typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */
+typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */
#else
-typedef long signed int ssize_t; /* Used for a count of bytes or an error indication. */
+typedef long signed int ssize_t; /* Used for a count of bytes or an error indication. */
#endif
+typedef unsigned long useconds_t; /* microseconds (unsigned) */
#endif
diff --git a/components/libc/compilers/armlibc/sys/unistd.h b/components/libc/compilers/armlibc/sys/unistd.h
index 33f0561e72..1763282812 100644
--- a/components/libc/compilers/armlibc/sys/unistd.h
+++ b/components/libc/compilers/armlibc/sys/unistd.h
@@ -9,7 +9,8 @@
#ifndef _SYS_UNISTD_H
#define _SYS_UNISTD_H
-#include <rtthread.h>
+#include <rtconfig.h>
+#include "types.h"
#ifdef RT_USING_DFS
@@ -36,14 +37,39 @@
#define _FNDELAY _FNONBLOCK /* non blocking I/O (4.2 style) */
#define _FNOCTTY 0x8000 /* don't assign a ctty on this open */
+
+#ifndef O_RDONLY
#define O_RDONLY 0 /* +1 == FREAD */
+#endif
+#ifndef O_WRONLY
#define O_WRONLY 1 /* +1 == FWRITE */
+#endif
+#ifndef O_RDWR
#define O_RDWR 2 /* +1 == FREAD|FWRITE */
+#endif
+#ifndef O_APPEND
#define O_APPEND _FAPPEND
+#endif
+#ifndef O_CREAT
#define O_CREAT _FCREAT
+#endif
+#ifndef O_TRUNC
#define O_TRUNC _FTRUNC
+#endif
+#ifndef O_EXCL
#define O_EXCL _FEXCL
+#endif
+#ifndef O_SYNC
#define O_SYNC _FSYNC
#endif
+#endif
+
+
+int isatty (int fd);
+char * ttyname (int desc);
+
+unsigned int sleep(unsigned int seconds);
+int usleep(useconds_t usec);
+
#endif /* _SYS_UNISTD_H */
diff --git a/components/libc/compilers/common/SConscript b/components/libc/compilers/common/SConscript
index a8d2606820..2407301405 100644
--- a/components/libc/compilers/common/SConscript
+++ b/components/libc/compilers/common/SConscript
@@ -8,12 +8,15 @@ group = []
CPPPATH = [cwd]
if GetDepend('RT_USING_LIBC'):
- src += Glob('*.c')
+ src += Glob('*.c')
else:
- if GetDepend('RT_LIBC_USING_TIME'):
+ if GetDepend('RT_LIBC_USING_TIME') and not GetDepend('RT_USING_MINILIBC'):
src += ['time.c']
-if (rtconfig.PLATFORM == 'armcc' or rtconfig.PLATFORM == 'iar') and rtconfig.ARCH != 'sim' :
- group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH)
+if GetDepend('RT_USING_POSIX') == False:
+ SrcRemove(src, ['unistd.c'])
+
+if not GetDepend('RT_USING_MINILIBC') and (GetDepend('RT_USING_LIBC') or GetDepend('RT_LIBC_USING_TIME')):
+ group = DefineGroup('libc', src, depend = [''], CPPPATH = CPPPATH)
Return('group')
diff --git a/components/libc/compilers/common/readme.md b/components/libc/compilers/common/readme.md
new file mode 100644
index 0000000000..99797d933c
--- /dev/null
+++ b/components/libc/compilers/common/readme.md
@@ -0,0 +1,10 @@
+## Attentions
+
+1. This folder is "common" for armlibc newlibc and dlib. It's not "common" for minilibc.
+
+2. If you want to add new .c files, please do not forget to fix SConscript file too. eg:
+
+```python
+if GetDepend('RT_USING_POSIX') == False:
+ SrcRemove(src, ['unistd.c'])
+``` \ No newline at end of file
diff --git a/components/libc/compilers/common/sys/time.h b/components/libc/compilers/common/sys/time.h
index 1d68eeafa3..79cfbbfaf2 100644
--- a/components/libc/compilers/common/sys/time.h
+++ b/components/libc/compilers/common/sys/time.h
@@ -15,6 +15,14 @@
extern "C" {
#endif
+/*
+ * Skip define timespec for IAR version over 8.10.1 where __VER__ is 8010001.
+ */
+#if defined ( __ICCARM__ ) && (__VER__ >= 8010001)
+#define _TIMESPEC_DEFINED
+#endif
+
+
#ifndef _TIMEVAL_DEFINED
#define _TIMEVAL_DEFINED
/*
@@ -27,23 +35,12 @@ struct timeval {
};
#endif /* _TIMEVAL_DEFINED */
-/*
- * Skip define timespec for IAR version over 8.10.1 where __VER__ is 8010001.
- */
-#if defined ( __ICCARM__ ) && (__VER__ >= 8010001)
-#define _TIMESPEC_DEFINED
-#endif
-
-#ifndef _TIMESPEC_DEFINED
-#define _TIMESPEC_DEFINED
-/*
- * Structure defined by POSIX.1b to be like a timeval.
- */
+#if !defined __GNUC__ && !defined __ICCARM__
struct timespec {
time_t tv_sec; /* seconds */
long tv_nsec; /* and nanoseconds */
};
-#endif /* _TIMESPEC_DEFINED */
+#endif
struct timezone {
int tz_minuteswest; /* minutes west of Greenwich */
diff --git a/components/libc/compilers/armlibc/termios.h b/components/libc/compilers/common/termios.h
index 1956121225..414d0c0cb3 100644
--- a/components/libc/compilers/armlibc/termios.h
+++ b/components/libc/compilers/common/termios.h
@@ -9,7 +9,11 @@
#ifndef _TERMIOS_H__
#define _TERMIOS_H__
+#include <rtconfig.h>
+
+#ifdef RT_USING_POSIX_TERMIOS
#include <sys/types.h>
#include <posix_termios.h>
+#endif
#endif
diff --git a/components/libc/compilers/common/unistd.c b/components/libc/compilers/common/unistd.c
new file mode 100644
index 0000000000..df970b2b59
--- /dev/null
+++ b/components/libc/compilers/common/unistd.c
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2020-09-01 Meco Man First Version
+ */
+
+#include <unistd.h>
+
+#ifdef RT_USING_POSIX_TERMIOS
+#include "termios.h"
+
+int isatty(int fd)
+{
+ struct termios ts;
+ return(tcgetattr(fd,&ts) != -1);/*true if no error (is a tty)*/
+}
+#endif
+
+char *ttyname(int fd)
+{
+ return "/dev/tty0"; /*TODO: need to add more specific*/
+}
diff --git a/components/libc/compilers/dlib/README.md b/components/libc/compilers/dlib/README.md
index 846eb3f5c0..acd08f9074 100644
--- a/components/libc/compilers/dlib/README.md
+++ b/components/libc/compilers/dlib/README.md
@@ -1,4 +1,9 @@
-Dlib(IAR) porting for RT-Thread.
+# DLIB (IAR) porting for RT-Thread
Please define RT_USING_LIBC and compile RT-Thread with IAR compiler.
+
+
+## More Information
+
+http://www.iarsys.co.jp/download/LMS2/arm/7502/ewarm7502doc/arm/doc/EWARM_DevelopmentGuide.ENU.pdf P.130 \ No newline at end of file
diff --git a/components/libc/compilers/dlib/sys/types.h b/components/libc/compilers/dlib/sys/types.h
index 001ace4dd2..7dbeddcaa9 100644
--- a/components/libc/compilers/dlib/sys/types.h
+++ b/components/libc/compilers/dlib/sys/types.h
@@ -5,20 +5,21 @@
*
* Change Logs:
* Date Author Notes
+ * 2020-12-16 Meco Man add useconds_t
*/
#ifndef __TYPES_H__
#define __TYPES_H__
#include <stdint.h>
-#include <rtthread.h>
-typedef rt_int32_t clockid_t;
-typedef rt_int32_t key_t; /* Used for interprocess communication. */
-typedef rt_int32_t pid_t; /* Used for process IDs and process group IDs. */
+typedef int32_t clockid_t;
+typedef int32_t key_t; /* Used for interprocess communication. */
+typedef int32_t pid_t; /* Used for process IDs and process group IDs. */
#ifndef ARCH_CPU_64BIT
-typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */
+typedef signed int ssize_t; /* Used for a count of bytes or an error indication. */
#else
-typedef long signed int ssize_t; /* Used for a count of bytes or an error indication. */
+typedef long signed int ssize_t; /* Used for a count of bytes or an error indication. */
#endif
+typedef unsigned long useconds_t; /* microseconds (unsigned) */
#endif
diff --git a/components/libc/compilers/minilibc/SConscript b/components/libc/compilers/minilibc/SConscript
index 518d800571..dec657028f 100644
--- a/components/libc/compilers/minilibc/SConscript
+++ b/components/libc/compilers/minilibc/SConscript
@@ -8,7 +8,7 @@ group = []
CPPPATH = [cwd]
CPPDEFINES = ['RT_USING_MINILIBC']
-if rtconfig.PLATFORM == 'gcc' and rtconfig.ARCH != 'sim' and not GetDepend('RT_USING_LIBC'):
+if rtconfig.PLATFORM == 'gcc' and rtconfig.ARCH != 'sim' and not GetDepend('RT_USING_LIBC') and GetDepend('RT_USING_MINILIBC'):
group = DefineGroup('libc', src, depend = [''],
CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
diff --git a/components/libc/compilers/minilibc/sys/types.h b/components/libc/compilers/minilibc/sys/types.h
index d3abc6bb38..746235273c 100644
--- a/components/libc/compilers/minilibc/sys/types.h
+++ b/components/libc/compilers/minilibc/sys/types.h
@@ -25,8 +25,6 @@ typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
-typedef int mode_t;
-
typedef unsigned long clockid_t;
typedef int pid_t;
diff --git a/components/libc/compilers/newlib/README.md b/components/libc/compilers/newlib/README.md
new file mode 100644
index 0000000000..385f329a4f
--- /dev/null
+++ b/components/libc/compilers/newlib/README.md
@@ -0,0 +1,9 @@
+# NEWLIB (GCC) porting for RT-Thread
+
+Please define RT_USING_LIBC and compile RT-Thread with GCC compiler.
+
+
+
+## More Information
+
+https://sourceware.org/newlib/libc.html#Reentrancy \ No newline at end of file
diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c
index 59c1881ad1..228fa0d140 100644
--- a/components/libc/compilers/newlib/syscalls.c
+++ b/components/libc/compilers/newlib/syscalls.c
@@ -17,10 +17,6 @@
#include <dfs_posix.h>
#endif
-#ifdef RT_USING_PTHREADS
-#include <pthread.h>
-#endif
-
#ifdef RT_USING_MODULE
#include <dlmodule.h>
#endif
diff --git a/components/libc/compilers/newlib/termios.h b/components/libc/compilers/newlib/termios.h
deleted file mode 100644
index 1956121225..0000000000
--- a/components/libc/compilers/newlib/termios.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- * 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__
-
-#include <sys/types.h>
-#include <posix_termios.h>
-
-#endif
diff --git a/components/libc/compilers/newlib/time.c b/components/libc/compilers/newlib/time.c
deleted file mode 100644
index f099d51330..0000000000
--- a/components/libc/compilers/newlib/time.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * 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>
-
-#ifdef RT_USING_DEVICE
-int gettimeofday(struct timeval *tp, void *ignore)
-{
- time_t time;
- rt_device_t device;
-
- device = rt_device_find("rtc");
- RT_ASSERT(device != RT_NULL);
-
- rt_device_control(device, RT_DEVICE_CTRL_RTC_GET_TIME, &time);
- if (tp != RT_NULL)
- {
- tp->tv_sec = time;
- tp->tv_usec = 0;
- }
-
- return time;
-}
-#endif
-
-/**
- * Returns the current time.
- *
- * @param time_t * t the timestamp pointer, if not used, keep NULL.
- *
- * @return time_t return timestamp current.
- *
- */
-/* 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 */
-#else
-time_t time(time_t *t)
-#endif
-{
- 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)
- {
- if (rt_device_open(device, 0) == RT_EOK)
- {
- 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;
-}
-
-RT_WEAK clock_t clock(void)
-{
- return rt_tick_get();
-}
diff --git a/components/libc/libdl/dlmodule.c b/components/libc/libdl/dlmodule.c
index dbebfc8961..21e070a106 100644
--- a/components/libc/libdl/dlmodule.c
+++ b/components/libc/libdl/dlmodule.c
@@ -14,7 +14,9 @@
#include "dlmodule.h"
#include "dlelf.h"
+#if defined(RT_USING_POSIX)
#include <dfs_posix.h>
+#endif
#define DBG_TAG "DLMD"
#define DBG_LVL DBG_INFO
@@ -122,7 +124,7 @@ static void _dlmodule_exit(void)
rt_thread_t thread = (rt_thread_t)object;
/* stop timer and suspend thread*/
- if ((thread->stat & RT_THREAD_STAT_MASK) != RT_THREAD_CLOSE ||
+ if ((thread->stat & RT_THREAD_STAT_MASK) != RT_THREAD_CLOSE &&
(thread->stat & RT_THREAD_STAT_MASK) != RT_THREAD_INIT)
{
rt_timer_stop(&(thread->thread_timer));
@@ -419,11 +421,14 @@ struct rt_dlmodule *rt_module_self(void)
struct rt_dlmodule* dlmodule_load(const char* filename)
{
- int fd, length = 0;
+#if defined(RT_USING_POSIX)
+ int fd = -1, length = 0;
+#endif
rt_err_t ret = RT_EOK;
rt_uint8_t *module_ptr = RT_NULL;
struct rt_dlmodule *module = RT_NULL;
+#if defined(RT_USING_POSIX)
fd = open(filename, O_RDONLY, 0);
if (fd >= 0)
{
@@ -446,6 +451,9 @@ struct rt_dlmodule* dlmodule_load(const char* filename)
{
goto __exit;
}
+#endif
+
+ if (!module_ptr) goto __exit;
/* check ELF header */
if (rt_memcmp(elf_module->e_ident, RTMMAG, SELFMAG) != 0 &&
@@ -512,7 +520,9 @@ struct rt_dlmodule* dlmodule_load(const char* filename)
return module;
__exit:
+#if defined(RT_USING_POSIX)
if (fd >= 0) close(fd);
+#endif
if (module_ptr) rt_free(module_ptr);
if (module) dlmodule_destroy(module);
diff --git a/components/libc/pthreads/SConscript b/components/libc/pthreads/SConscript
index 1b7b75bfd1..767b406d4c 100644
--- a/components/libc/pthreads/SConscript
+++ b/components/libc/pthreads/SConscript
@@ -1,10 +1,22 @@
from building import *
+from utils import VersionCmp
-cwd = GetCurrentDir()
-src = Glob('*.c')
-CPPPATH = [cwd]
+cwd = GetCurrentDir()
+src = Glob('*.c')
+CPPPATH = [cwd]
+CPPDEFINES = []
-group = DefineGroup('pthreads', src,
- depend = ['RT_USING_PTHREADS', 'RT_USING_LIBC'], CPPPATH = CPPPATH)
+# only enable POSIX.1b-1993 Real-time extensions
+libc_ver = GetDepend('LIBC_VERSION')
+try:
+ ver = libc_ver.split(' ')
+ ver = ver[1]
+ if VersionCmp(ver, "2.5.0") == 1:
+ CPPDEFINES = ['_POSIX_C_SOURCE=199309L']
+except :
+ pass
+
+group = DefineGroup('libc', src,
+ depend = ['RT_USING_PTHREADS', 'RT_USING_LIBC'], CPPPATH = CPPPATH, CPPDEFINES = CPPDEFINES)
Return('group')
diff --git a/components/libc/pthreads/semaphore.c b/components/libc/pthreads/semaphore.c
index 2bef10022e..2ed93e99b6 100644
--- a/components/libc/pthreads/semaphore.c
+++ b/components/libc/pthreads/semaphore.c
@@ -64,7 +64,7 @@ static sem_t *posix_sem_find(const char* name)
for (iter = posix_sem_list; iter != RT_NULL; iter = iter->next)
{
- object = (rt_object_t)&(iter->sem);
+ object = (rt_object_t)iter->sem;
if (strncmp(object->name, name, RT_NAME_MAX) == 0)
{
diff --git a/components/libc/termios/posix_termios.c b/components/libc/termios/posix_termios.c
index 75c876dd33..9c736c3184 100644
--- a/components/libc/termios/posix_termios.c
+++ b/components/libc/termios/posix_termios.c
@@ -5,7 +5,7 @@
*
* Change Logs:
* Date Author Notes
- * 2017/08/30 Bernard The first version
+ * 2017/08/30 Bernard The first version
*/
#include <stdlib.h>
#include <string.h>
@@ -111,13 +111,6 @@ int tcdrain(int fd)
return 0;
}
-int isatty (int fd)
-{
- struct termios term;
-
- return tcgetattr (fd, &term) == 0;
-}
-
#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
void cfmakeraw(struct termios *t)
{
diff --git a/components/libc/termios/posix_termios.h b/components/libc/termios/posix_termios.h
index 4f556d79d9..c61191b7dc 100644
--- a/components/libc/termios/posix_termios.h
+++ b/components/libc/termios/posix_termios.h
@@ -5,12 +5,13 @@
*
* Change Logs:
* Date Author Notes
- * 2017/08/30 Bernard The first version
+ * 2017/08/30 Bernard The first version
*/
#ifndef TERMIOS_H__
#define TERMIOS_H__
#include <rtthread.h>
+#include <sys/types.h>
#ifdef __cplusplus
extern "C" {