From 3f2399e0a62d4df4e055ec5273f5b7738c55e81d Mon Sep 17 00:00:00 2001 From: reinelt Date: Mon, 12 Mar 2001 12:39:36 +0000 Subject: [lcd4linux @ 2001-03-12 12:39:36 by reinelt] reworked autoconf a lot: drivers may be excluded, #define's went to config.h git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@110 3ae390bd-cb1e-0410-b409-cd5a39f66f1f --- udelay.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) (limited to 'udelay.c') diff --git a/udelay.c b/udelay.c index 2c7d308..e658436 100644 --- a/udelay.c +++ b/udelay.c @@ -1,4 +1,4 @@ -/* $Id: udelay.c,v 1.3 2001/03/01 22:33:50 reinelt Exp $ +/* $Id: udelay.c,v 1.4 2001/03/12 12:39:36 reinelt Exp $ * * short delays * @@ -20,6 +20,10 @@ * * * $Log: udelay.c,v $ + * Revision 1.4 2001/03/12 12:39:36 reinelt + * + * reworked autoconf a lot: drivers may be excluded, #define's went to config.h + * * Revision 1.3 2001/03/01 22:33:50 reinelt * * renamed Raster_flush() to PPM_flush() @@ -57,10 +61,18 @@ #include #include + +#ifdef USE_OLD_UDELAY #include +#else +#include +#include +#endif #include "udelay.h" +#ifdef USE_OLD_UDELAY + unsigned long loops_per_usec; void udelay (unsigned long usec) @@ -104,3 +116,23 @@ void udelay_calibrate (void) loops_per_usec&=~bit; } } + +#else + +void udelay (unsigned long usec) +{ + struct timeval now, end; + + gettimeofday (&end, NULL); + end.tv_usec+=usec; + while (end.tv_usec>1000000) { + end.tv_usec-=1000000; + end.tv_sec++; + } + + do { + gettimeofday(&now, NULL); + } while (now.tv_sec==end.tv_sec?now.tv_usec