diff options
Diffstat (limited to 'xc/programs/Xserver/hw/xfree86/os-support/misc/Delay.c')
-rw-r--r-- | xc/programs/Xserver/hw/xfree86/os-support/misc/Delay.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/misc/Delay.c b/xc/programs/Xserver/hw/xfree86/os-support/misc/Delay.c new file mode 100644 index 000000000..04fe5b0b5 --- /dev/null +++ b/xc/programs/Xserver/hw/xfree86/os-support/misc/Delay.c @@ -0,0 +1,28 @@ +/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/Delay.c,v 3.1 2000/08/04 16:13:41 eich Exp $ */ + +#include "X.h" +#include "xf86.h" +#include "xf86Priv.h" +#include "xf86_OSlib.h" + +#include <time.h> + +void +xf86UDelay(long usec) +{ + struct timeval start, interrupt; + + gettimeofday(&start,NULL); + + do { + usleep(usec); + gettimeofday(&interrupt,NULL); + + if ((usec = usec - (interrupt.tv_sec - start.tv_sec) * 1000000 + - (interrupt.tv_usec - start.tv_usec)) < 0) + break; + + } while (1); + +} + |