From 7c15164f1772f7b0e093ff5dd1027051cddc764a Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Wed, 30 Nov 2005 23:37:14 +0000 Subject: 2005-11-30 Shaun Jackman * arm/libcfunc.c (clock, sleep, usleep): New functions. * arm/syscalls.c (_clock): New function. (_times): Call _clock. --- libgloss/arm/libcfunc.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) (limited to 'libgloss/arm/libcfunc.c') diff --git a/libgloss/arm/libcfunc.c b/libgloss/arm/libcfunc.c index f28f527b2..ffad2e7e0 100644 --- a/libgloss/arm/libcfunc.c +++ b/libgloss/arm/libcfunc.c @@ -43,6 +43,13 @@ alarm (unsigned seconds) return 0; } +clock_t _clock(void); +clock_t __attribute__((weak)) +clock(void) +{ + return _clock(); +} + int _isatty(int fildes); int __attribute__((weak)) isatty(int fildes) @@ -51,8 +58,31 @@ isatty(int fildes) } int __attribute__((weak)) -pause (void) +pause(void) { errno = ENOSYS; return -1; } + +#include +#include + +unsigned __attribute__((weak)) +sleep(unsigned seconds) +{ + clock_t t0 = _clock(); + clock_t dt = seconds * CLOCKS_PER_SEC; + + while (_clock() - t0 < dt); + return 0; +} + +int __attribute__((weak)) +usleep(useconds_t useconds) +{ + clock_t t0 = _clock(); + clock_t dt = useconds / (1000000/CLOCKS_PER_SEC); + + while (_clock() - t0 < dt); + return 0; +} -- cgit v1.2.3