aboutsummaryrefslogtreecommitdiffstats
path: root/udelay.c
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2001-03-12 12:39:36 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2001-03-12 12:39:36 +0000
commit3f2399e0a62d4df4e055ec5273f5b7738c55e81d (patch)
tree711f05c7dafc211fd5ba65e5f66240d2291e9956 /udelay.c
parentae1c4ae6f41459fdd78ac41cc43fdfa34cdc1067 (diff)
downloadlcd4linux-3f2399e0a62d4df4e055ec5273f5b7738c55e81d.tar.gz
[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
Diffstat (limited to 'udelay.c')
-rw-r--r--udelay.c34
1 files changed, 33 insertions, 1 deletions
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 <stdlib.h>
#include <stdio.h>
+
+#ifdef USE_OLD_UDELAY
#include <time.h>
+#else
+#include <sys/time.h>
+#include <unistd.h>
+#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<end.tv_usec:now.tv_sec<end.tv_sec);
+}
+
+#endif