- Now splits paragraphs into multiple lines, with each line fitting the
[AROS.git] / workbench / devs / networks / rhine / timer.c
blobb0e4cfbe9885e569b44273f33e459fe8a46b4376
1 /*
3 Copyright (C) 2011 Neil Cafferkey
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston,
18 MA 02111-1307, USA.
23 #include <proto/timer.h>
25 #include "device.h"
27 #include "timer_protos.h"
30 /****i* rhine.device/BusyMilliDelay ****************************************
32 * NAME
33 * BusyMilliDelay - Busy-wait for specified number of milliseconds.
35 * SYNOPSIS
36 * BusyMilliDelay(millis)
38 * VOID BusyMilliDelay(ULONG);
40 ****************************************************************************
44 VOID BusyMilliDelay(ULONG millis, struct DevBase *base)
46 BusyMicroDelay(millis * 1000, base);
48 return;
53 /****i* rhine.device/BusyMicroDelay ****************************************
55 * NAME
56 * BusyMicroDelay - Busy-wait for specified number of microseconds.
58 * SYNOPSIS
59 * BusyMicroDelay(micros)
61 * VOID BusyMicroDelay(ULONG);
63 ****************************************************************************
67 VOID BusyMicroDelay(ULONG micros, struct DevBase *base)
69 struct timeval time, end_time;
71 GetSysTime(&end_time);
72 time.tv_secs = 0;
73 time.tv_micro = micros;
74 AddTime(&end_time, &time);
76 while(CmpTime(&end_time, &time) < 0)
77 GetSysTime(&time);
79 return;