Pārlūkot izejas kodu

[dlib]remove syscalls.h and add syscalls.c to implement exit() and abort()

Meco Man 4 gadi atpakaļ
vecāks
revīzija
2530a5a272

+ 51 - 0
components/libc/compilers/dlib/syscalls.c

@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2006-2018, RT-Thread Development Team
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Change Logs:
+ * Date           Author       Notes
+ * 2021-02-13     Meco Man     implement exit() and abort()
+ */
+
+void 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)
+    {
+        rt_kprintf("thread:%-8.*s exit:%d!\n", RT_NAME_MAX, self->name, status);
+        rt_thread_suspend(self);
+        rt_schedule();
+    }
+
+    while(1); /* noreturn */
+}
+
+void abort(void)
+{
+    rt_thread_t self = rt_thread_self();
+
+#ifdef RT_USING_MODULE
+    if (dlmodule_self())
+    {
+        dlmodule_exit(-1);
+    }
+#endif
+
+    if (self != RT_NULL)
+    {
+        rt_kprintf("thread:%-8.*s abort!\n", RT_NAME_MAX, self->name);
+        rt_thread_suspend(self);
+        rt_schedule();
+    }
+
+    while(1); /* noreturn */
+}

+ 0 - 10
components/libc/compilers/dlib/syscalls.h

@@ -1,10 +0,0 @@
-/*
- * 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
- */
-

+ 1 - 0
components/libc/compilers/newlib/syscalls.c

@@ -6,6 +6,7 @@
  * Change Logs:
  * Date           Author       Notes
  * 2021-02-11     Meco Man     remove _gettimeofday_r() and _times_r()
+ * 2020-02-13     Meco Man     re-implement exit() and abort()
  */
 
 #include <reent.h>