From 0f38f554b462a516d66649f919faa7336a9601d2 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Wed, 7 Oct 2015 16:43:05 +0200 Subject: ucoo/arch: add more newlib syscalls --- ucoo/arch/syscalls.newlib.cc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'ucoo/arch') diff --git a/ucoo/arch/syscalls.newlib.cc b/ucoo/arch/syscalls.newlib.cc index abdd75f..5b0b777 100644 --- a/ucoo/arch/syscalls.newlib.cc +++ b/ucoo/arch/syscalls.newlib.cc @@ -26,6 +26,8 @@ #include #include +#include +#include #include ucoo::Stream *ucoo::syscalls_streams[3]; @@ -58,6 +60,13 @@ _sbrk_r (struct _reent *ptr, int incr) return (void *) prev_heap_end; } +/** Some Newlib versions insist to call this function when exit is called, + * make them happy. */ +extern "C" void +_fini (void) +{ +} + /** Exit program, endless loop to stop program, to be improved. */ extern "C" void _exit (int n) @@ -177,3 +186,33 @@ _write_r (struct _reent *ptr, int fd, const void *buf, size_t cnt) } } +extern "C" int +_unlink_r (struct _reent *ptr, const char *pathname) +{ + ptr->_errno = ENOSYS; + return -1; +} + +extern "C" int +_link_r (struct _reent *ptr, const char *old_name, const char *new_name) +{ + ptr->_errno = ENOSYS; + return -1; +} + +extern "C" clock_t +_times_r (struct _reent *ptr, struct tms *ptms) +{ + ptr->_errno = ENOSYS; + return -1; +} + +extern "C" int +_gettimeofday_r (struct _reent *ptr, + struct timeval *ptimeval, + void *ptimezone) +{ + ptr->_errno = ENOSYS; + return -1; +} + -- cgit v1.2.3