diff options
| author | Meco Jianting Man <[email protected]> | 2021-02-18 01:30:19 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-02-18 01:30:19 -0600 |
| commit | 8ea33c2101cdc8d8d8a5f94479acca310fbbfb75 (patch) | |
| tree | 48ba0df2445feb188eed3df81d9e2a62d6d57f53 /components/libc/compilers/newlib | |
| parent | e19873db6d6947f02e0b093251adf3c73daabdd8 (diff) | |
| parent | 6420c2779143f414ca2850cb2ab3d72a4ff10a9b (diff) | |
Merge pull request #18 from RT-Thread/master
pr
Diffstat (limited to 'components/libc/compilers/newlib')
| -rw-r--r-- | components/libc/compilers/newlib/machine/time.h | 12 | ||||
| -rw-r--r-- | components/libc/compilers/newlib/syscalls.c | 44 |
2 files changed, 20 insertions, 36 deletions
diff --git a/components/libc/compilers/newlib/machine/time.h b/components/libc/compilers/newlib/machine/time.h new file mode 100644 index 0000000000..d46533eb39 --- /dev/null +++ b/components/libc/compilers/newlib/machine/time.h @@ -0,0 +1,12 @@ +#ifndef _MACHTIME_H_ +#define _MACHTIME_H_ + +#include <rtconfig.h> +#define _CLOCKS_PER_SEC_ RT_TICK_PER_SECOND + +#ifdef __SPU__ +#include <sys/_timespec.h> +int nanosleep (const struct timespec *, struct timespec *); +#endif + +#endif /* _MACHTIME_H_ */ diff --git a/components/libc/compilers/newlib/syscalls.c b/components/libc/compilers/newlib/syscalls.c index cf98e0c3ec..76300f76b2 100644 --- a/components/libc/compilers/newlib/syscalls.c +++ b/components/libc/compilers/newlib/syscalls.c @@ -286,30 +286,16 @@ _free_r (struct _reent *ptr, void *addr) 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 */ + extern void __rt_libc_exit(int status); + __rt_libc_exit(status); + while(1); } void _system(const char *s) { - /* not support this call */ - return; + extern int __rt_libc_system(const char *string); + __rt_libc_system(s); } void __libc_init_array(void) @@ -319,23 +305,9 @@ void __libc_init_array(void) 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 */ + extern void __rt_libc_abort(void); + __rt_libc_abort(); + while(1); } uid_t getuid(void) |
