summaryrefslogtreecommitdiff
path: root/components/libc/compilers/common/stdlib.c
diff options
context:
space:
mode:
authorMeco Jianting Man <[email protected]>2021-02-18 01:30:19 -0600
committerGitHub <[email protected]>2021-02-18 01:30:19 -0600
commit8ea33c2101cdc8d8d8a5f94479acca310fbbfb75 (patch)
tree48ba0df2445feb188eed3df81d9e2a62d6d57f53 /components/libc/compilers/common/stdlib.c
parente19873db6d6947f02e0b093251adf3c73daabdd8 (diff)
parent6420c2779143f414ca2850cb2ab3d72a4ff10a9b (diff)
Merge pull request #18 from RT-Thread/master
pr
Diffstat (limited to 'components/libc/compilers/common/stdlib.c')
-rw-r--r--components/libc/compilers/common/stdlib.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/components/libc/compilers/common/stdlib.c b/components/libc/compilers/common/stdlib.c
new file mode 100644
index 0000000000..b485bbd836
--- /dev/null
+++ b/components/libc/compilers/common/stdlib.c
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date Author Notes
+ * 2021-02-15 Meco Man first version
+ */
+
+#include <rtthread.h>
+#include <stdlib.h>
+
+void __rt_libc_exit(int status)
+{
+ rt_thread_t self = rt_thread_self();
+
+#ifdef RT_USING_MODULE
+ if (dlmodule_self())
+ {
+ dlmodule_exit(status);
+ }
+#endif
+
+ if (self != RT_NULL)
+ {
+ if(status == EXIT_FAILURE) /* abort() */
+ {
+ rt_kprintf("thread:%s abort!\n", self->name);
+ }
+ else /* exit() */
+ {
+ rt_kprintf("thread:%s exit:%d!\n", self->name, status);
+ }
+ rt_thread_suspend(self);
+ rt_schedule();
+ }
+}
+
+void __rt_libc_abort(void)
+{
+ __rt_libc_exit(EXIT_FAILURE);
+}
+
+int __rt_libc_system(const char *string)
+{
+ /* TODO */
+ return 0;
+}