summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libc/libc_errno.h206
-rw-r--r--include/libc/libc_ioctl.h229
-rw-r--r--include/libc/libc_limits.h25
-rw-r--r--include/libc/libc_signal.h2
-rw-r--r--include/libc/libc_stdio.h22
-rw-r--r--include/rtdef.h14
-rw-r--r--include/rtlibc.h6
-rw-r--r--include/rtthread.h10
8 files changed, 17 insertions, 497 deletions
diff --git a/include/libc/libc_errno.h b/include/libc/libc_errno.h
deleted file mode 100644
index 30d6092e33..0000000000
--- a/include/libc/libc_errno.h
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2016-11-12 Bernard The first version
- */
-
-#ifndef LIBC_ERRNO_H__
-#define LIBC_ERRNO_H__
-
-#include <rtconfig.h>
-
-#if defined(RT_USING_NEWLIB) || defined(_WIN32) || (defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
-/* use errno.h file in toolchains */
-#include <errno.h>
-#endif
-
-#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(RT_USING_NEWLIB) && !defined(_WIN32) && !(defined( __GNUC__ ) && !defined(__ARMCC_VERSION))
-
-#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/include/libc/libc_ioctl.h b/include/libc/libc_ioctl.h
deleted file mode 100644
index 05f0daa238..0000000000
--- a/include/libc/libc_ioctl.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2017-01-21 Bernard the first version
- */
-
-#ifndef LIBC_IOCTL_H__
-#define LIBC_IOCTL_H__
-
-#define _IOC(a,b,c,d) ( ((a)<<30) | ((b)<<8) | (c) | ((d)<<16) )
-#define _IOC_NONE 0U
-#define _IOC_WRITE 1U
-#define _IOC_READ 2U
-
-#if !defined (_WIN32) && !defined (__TASKING__)
-#define _IO(a,b) _IOC(_IOC_NONE,(a),(b),0)
-#define _IOW(a,b,c) _IOC(_IOC_WRITE,(a),(b),sizeof(c))
-#define _IOR(a,b,c) _IOC(_IOC_READ,(a),(b),sizeof(c))
-#define _IOWR(a,b,c) _IOC(_IOC_READ|_IOC_WRITE,(a),(b),sizeof(c))
-
-#define FIONREAD _IOR('f', 127, int) /* get # bytes to read */
-#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */
-#define FIONWRITE _IOR('f', 121, int) /* get # bytes outstanding
- * in send queue. */
-#endif
-
-#define TCGETS 0x5401
-#define TCSETS 0x5402
-#define TCSETSW 0x5403
-#define TCSETSF 0x5404
-#define TCGETA 0x5405
-#define TCSETA 0x5406
-#define TCSETAW 0x5407
-#define TCSETAF 0x5408
-#define TCSBRK 0x5409
-#define TCXONC 0x540A
-#define TCFLSH 0x540B
-#define TIOCEXCL 0x540C
-#define TIOCNXCL 0x540D
-#define TIOCSCTTY 0x540E
-#define TIOCGPGRP 0x540F
-#define TIOCSPGRP 0x5410
-#define TIOCOUTQ 0x5411
-#define TIOCSTI 0x5412
-#define TIOCGWINSZ 0x5413
-#define TIOCSWINSZ 0x5414
-#define TIOCMGET 0x5415
-#define TIOCMBIS 0x5416
-#define TIOCMBIC 0x5417
-#define TIOCMSET 0x5418
-#define TIOCGSOFTCAR 0x5419
-#define TIOCSSOFTCAR 0x541A
-// #define FIONREAD 0x541B
-#define TIOCINQ FIONREAD
-#define TIOCLINUX 0x541C
-#define TIOCCONS 0x541D
-#define TIOCGSERIAL 0x541E
-#define TIOCSSERIAL 0x541F
-#define TIOCPKT 0x5420
-// #define FIONBIO 0x5421
-#define TIOCNOTTY 0x5422
-#define TIOCSETD 0x5423
-#define TIOCGETD 0x5424
-#define TCSBRKP 0x5425
-#define TIOCSBRK 0x5427
-#define TIOCCBRK 0x5428
-#define TIOCGSID 0x5429
-#define TIOCGRS485 0x542E
-#define TIOCSRS485 0x542F
-#define TIOCGPTN 0x80045430
-#define TIOCSPTLCK 0x40045431
-#define TIOCGDEV 0x80045432
-#define TCGETX 0x5432
-#define TCSETX 0x5433
-#define TCSETXF 0x5434
-#define TCSETXW 0x5435
-#define TIOCSIG 0x40045436
-#define TIOCVHANGUP 0x5437
-#define TIOCGPKT 0x80045438
-#define TIOCGPTLCK 0x80045439
-#define TIOCGEXCL 0x80045440
-
-#define FIONCLEX 0x5450
-#define FIOCLEX 0x5451
-
-#ifndef _WIN32
-#define FIOASYNC 0x5452
-#endif
-
-#define TIOCSERCONFIG 0x5453
-#define TIOCSERGWILD 0x5454
-#define TIOCSERSWILD 0x5455
-#define TIOCGLCKTRMIOS 0x5456
-#define TIOCSLCKTRMIOS 0x5457
-#define TIOCSERGSTRUCT 0x5458
-#define TIOCSERGETLSR 0x5459
-#define TIOCSERGETMULTI 0x545A
-#define TIOCSERSETMULTI 0x545B
-
-#define TIOCMIWAIT 0x545C
-#define TIOCGICOUNT 0x545D
-#define FIOQSIZE 0x5460
-
-#define TIOCPKT_DATA 0
-#define TIOCPKT_FLUSHREAD 1
-#define TIOCPKT_FLUSHWRITE 2
-#define TIOCPKT_STOP 4
-#define TIOCPKT_START 8
-#define TIOCPKT_NOSTOP 16
-#define TIOCPKT_DOSTOP 32
-#define TIOCPKT_IOCTL 64
-
-#define TIOCSER_TEMT 0x01
-
-struct winsize {
- unsigned short ws_row;
- unsigned short ws_col;
- unsigned short ws_xpixel;
- unsigned short ws_ypixel;
-};
-
-#define TIOCM_LE 0x001
-#define TIOCM_DTR 0x002
-#define TIOCM_RTS 0x004
-#define TIOCM_ST 0x008
-#define TIOCM_SR 0x010
-#define TIOCM_CTS 0x020
-#define TIOCM_CAR 0x040
-#define TIOCM_RNG 0x080
-#define TIOCM_DSR 0x100
-#define TIOCM_CD TIOCM_CAR
-#define TIOCM_RI TIOCM_RNG
-#define TIOCM_OUT1 0x2000
-#define TIOCM_OUT2 0x4000
-#define TIOCM_LOOP 0x8000
-
-#define N_TTY 0
-#define N_SLIP 1
-#define N_MOUSE 2
-#define N_PPP 3
-#define N_STRIP 4
-#define N_AX25 5
-#define N_X25 6
-#define N_6PACK 7
-#define N_MASC 8
-#define N_R3964 9
-#define N_PROFIBUS_FDL 10
-#define N_IRDA 11
-#define N_SMSBLOCK 12
-#define N_HDLC 13
-#define N_SYNC_PPP 14
-#define N_HCI 15
-
-#define FIOSETOWN 0x8901
-#define SIOCSPGRP 0x8902
-#define FIOGETOWN 0x8903
-#define SIOCGPGRP 0x8904
-// #define SIOCATMARK 0x8905
-#define SIOCGSTAMP 0x8906
-#define SIOCGSTAMPNS 0x8907
-
-#define SIOCADDRT 0x890B
-#define SIOCDELRT 0x890C
-#define SIOCRTMSG 0x890D
-
-#define SIOCGIFNAME 0x8910
-#define SIOCSIFLINK 0x8911
-#define SIOCGIFCONF 0x8912
-#define SIOCGIFFLAGS 0x8913
-#define SIOCSIFFLAGS 0x8914
-#define SIOCGIFADDR 0x8915
-#define SIOCSIFADDR 0x8916
-#define SIOCGIFDSTADDR 0x8917
-#define SIOCSIFDSTADDR 0x8918
-#define SIOCGIFBRDADDR 0x8919
-#define SIOCSIFBRDADDR 0x891a
-#define SIOCGIFNETMASK 0x891b
-#define SIOCSIFNETMASK 0x891c
-#define SIOCGIFMETRIC 0x891d
-#define SIOCSIFMETRIC 0x891e
-#define SIOCGIFMEM 0x891f
-#define SIOCSIFMEM 0x8920
-#define SIOCGIFMTU 0x8921
-#define SIOCSIFMTU 0x8922
-#define SIOCSIFNAME 0x8923
-#define SIOCSIFHWADDR 0x8924
-#define SIOCGIFENCAP 0x8925
-#define SIOCSIFENCAP 0x8926
-#define SIOCGIFHWADDR 0x8927
-#define SIOCGIFSLAVE 0x8929
-#define SIOCSIFSLAVE 0x8930
-#define SIOCADDMULTI 0x8931
-#define SIOCDELMULTI 0x8932
-#define SIOCGIFINDEX 0x8933
-#define SIOGIFINDEX SIOCGIFINDEX
-#define SIOCSIFPFLAGS 0x8934
-#define SIOCGIFPFLAGS 0x8935
-#define SIOCDIFADDR 0x8936
-#define SIOCSIFHWBROADCAST 0x8937
-#define SIOCGIFCOUNT 0x8938
-
-#define SIOCGIFBR 0x8940
-#define SIOCSIFBR 0x8941
-
-#define SIOCGIFTXQLEN 0x8942
-#define SIOCSIFTXQLEN 0x8943
-
-#define SIOCDARP 0x8953
-#define SIOCGARP 0x8954
-#define SIOCSARP 0x8955
-
-#define SIOCDRARP 0x8960
-#define SIOCGRARP 0x8961
-#define SIOCSRARP 0x8962
-
-#define SIOCGIFMAP 0x8970
-#define SIOCSIFMAP 0x8971
-
-#define SIOCADDDLCI 0x8980
-#define SIOCDELDLCI 0x8981
-
-#define SIOCDEVPRIVATE 0x89F0
-#define SIOCPROTOPRIVATE 0x89E0
-
-#endif
diff --git a/include/libc/libc_limits.h b/include/libc/libc_limits.h
deleted file mode 100644
index 36b8dbb202..0000000000
--- a/include/libc/libc_limits.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-09-05 Meco Man the first version
- */
-
-#ifndef LIBC_LIMITS_H__
-#define LIBC_LIMITS_H__
-
-#include <limits.h>
-#include <rtconfig.h>
-
-#ifdef RT_USING_POSIX
-
-#ifndef SSIZE_MAX
-# define SSIZE_MAX LONG_MAX
-#endif
-
-#endif
-
-#endif
diff --git a/include/libc/libc_signal.h b/include/libc/libc_signal.h
index 8a4cc0d738..1fb8194643 100644
--- a/include/libc/libc_signal.h
+++ b/include/libc/libc_signal.h
@@ -71,7 +71,7 @@ typedef unsigned long sigset_t;
#include <signal.h>
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
+#ifdef __ARMCC_VERSION
#define SIGHUP 1
/* #define SIGINT 2 */
diff --git a/include/libc/libc_stdio.h b/include/libc/libc_stdio.h
deleted file mode 100644
index 565e1bfd32..0000000000
--- a/include/libc/libc_stdio.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2020-09-05 Meco Man the first version
- */
-
-#ifndef LIBC_STDIO_H__
-#define LIBC_STDIO_H__
-
-#include <rtconfig.h>
-
-#ifdef RT_USING_POSIX_GETLINE
-
-#include <posix_getline.h>
-
-#endif
-
-#endif
diff --git a/include/rtdef.h b/include/rtdef.h
index d125c970c9..394bbca5d2 100644
--- a/include/rtdef.h
+++ b/include/rtdef.h
@@ -567,6 +567,10 @@ typedef siginfo_t rt_siginfo_t;
#define RT_SCHEDULE_IPI 0
#endif
+#ifndef RT_STOP_IPI
+#define RT_STOP_IPI 1
+#endif
+
/**
* CPUs definitions
*
@@ -659,6 +663,10 @@ struct rt_thread
rt_ubase_t init_tick; /**< thread's initialized tick */
rt_ubase_t remaining_tick; /**< remaining tick */
+#ifdef RT_USING_CPU_USAGE
+ rt_uint64_t duration_tick; /**< cpu usage tick */
+#endif
+
struct rt_timer thread_timer; /**< built-in thread timer */
void (*cleanup)(struct rt_thread *tid); /**< cleanup function when thread exit */
@@ -963,12 +971,6 @@ enum rt_device_class_type
#define RT_DEVICE_CTRL_BLK_AUTOREFRESH 0x13 /**< block device : enter/exit auto refresh mode */
#define RT_DEVICE_CTRL_NETIF_GETMAC 0x10 /**< get mac address */
#define RT_DEVICE_CTRL_MTD_FORMAT 0x10 /**< format a MTD device */
-#define RT_DEVICE_CTRL_RTC_GET_TIME 0x10 /**< get second time */
-#define RT_DEVICE_CTRL_RTC_SET_TIME 0x11 /**< set second time */
-#define RT_DEVICE_CTRL_RTC_GET_TIME_US 0x12 /**< get microsecond time */
-#define RT_DEVICE_CTRL_RTC_SET_TIME_US 0x13 /**< set microsecond time */
-#define RT_DEVICE_CTRL_RTC_GET_ALARM 0x14 /**< get alarm */
-#define RT_DEVICE_CTRL_RTC_SET_ALARM 0x15 /**< set alarm */
typedef struct rt_device *rt_device_t;
diff --git a/include/rtlibc.h b/include/rtlibc.h
index 50bddc6ee8..ac44a97831 100644
--- a/include/rtlibc.h
+++ b/include/rtlibc.h
@@ -13,18 +13,14 @@
/* definitions for libc if toolchain has no these definitions */
#include "libc/libc_stat.h"
-#include "libc/libc_errno.h"
#include "libc/libc_fcntl.h"
-#include "libc/libc_ioctl.h"
#include "libc/libc_dirent.h"
#include "libc/libc_signal.h"
#include "libc/libc_fdset.h"
-#include "libc/libc_limits.h"
-#include "libc/libc_stdio.h"
#ifndef RT_USING_LIBC
-#if defined(__CC_ARM) || defined(__CLANG_ARM) || defined(__IAR_SYSTEMS_ICC__)
+#if defined(__ARMCC_VERSION) || defined(__IAR_SYSTEMS_ICC__)
typedef signed long off_t;
typedef int mode_t;
#endif
diff --git a/include/rtthread.h b/include/rtthread.h
index 784b208a76..cf47a48efe 100644
--- a/include/rtthread.h
+++ b/include/rtthread.h
@@ -168,7 +168,6 @@ void rt_thread_idle_init(void);
rt_err_t rt_thread_idle_sethook(void (*hook)(void));
rt_err_t rt_thread_idle_delhook(void (*hook)(void));
#endif
-void rt_thread_idle_excute(void);
rt_thread_t rt_thread_idle_gethandler(void);
/*
@@ -187,6 +186,7 @@ rt_uint16_t rt_critical_level(void);
#ifdef RT_USING_HOOK
void rt_scheduler_sethook(void (*hook)(rt_thread_t from, rt_thread_t to));
+void rt_scheduler_switch_sethook(void (*hook)(struct rt_thread *tid));
#endif
#ifdef RT_USING_SMP
@@ -322,6 +322,7 @@ rt_mutex_t rt_mutex_create(const char *name, rt_uint8_t flag);
rt_err_t rt_mutex_delete(rt_mutex_t mutex);
rt_err_t rt_mutex_take(rt_mutex_t mutex, rt_int32_t time);
+rt_err_t rt_mutex_trytake(rt_mutex_t mutex);
rt_err_t rt_mutex_release(rt_mutex_t mutex);
rt_err_t rt_mutex_control(rt_mutex_t mutex, int cmd, void *arg);
#endif
@@ -395,6 +396,10 @@ rt_err_t rt_mq_recv(rt_mq_t mq,
rt_err_t rt_mq_control(rt_mq_t mq, int cmd, void *arg);
#endif
+/* defunct */
+void rt_thread_defunct_enqueue(rt_thread_t thread);
+rt_thread_t rt_thread_defunct_dequeue(void);
+
/*
* spinlock
*/
@@ -521,7 +526,6 @@ rt_int32_t rt_vsprintf(char *dest, const char *format, va_list arg_ptr);
rt_int32_t rt_vsnprintf(char *buf, rt_size_t size, const char *fmt, va_list args);
rt_int32_t rt_sprintf(char *buf, const char *format, ...);
rt_int32_t rt_snprintf(char *buf, rt_size_t size, const char *format, ...);
-rt_int32_t rt_sscanf(const char *buf, const char *fmt, ...);
#if defined(RT_USING_DEVICE) && defined(RT_USING_CONSOLE)
rt_device_t rt_console_set_device(const char *name);
@@ -566,7 +570,7 @@ rt_size_t rt_strlen(const char *src);
#endif /*RT_KSERVICE_USING_STDLIB*/
char *rt_strdup(const char *s);
-#if defined(__CC_ARM) || defined(__CLANG_ARM)
+#ifdef __ARMCC_VERSION
/* lack strdup interface */
char* strdup(const char* str);
#endif