summaryrefslogtreecommitdiff
path: root/ucoo/arch
diff options
context:
space:
mode:
authorNicolas Schodet2015-10-07 16:43:05 +0200
committerNicolas Schodet2019-10-07 00:44:50 +0200
commit0f38f554b462a516d66649f919faa7336a9601d2 (patch)
treeb43d5db55caf00e448870233181768fdfb5c6438 /ucoo/arch
parent3c14e95166da27c3a9c6a1d800edf514589372f1 (diff)
ucoo/arch: add more newlib syscalls
Diffstat (limited to 'ucoo/arch')
-rw-r--r--ucoo/arch/syscalls.newlib.cc39
1 files changed, 39 insertions, 0 deletions
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 <reent.h>
#include <sys/stat.h>
+#include <sys/times.h>
+#include <time.h>
#include <errno.h>
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;
+}
+