home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
348.lha
/
chatterbox_v1.0
/
sources
/
timer.c
< prev
next >
Wrap
C/C++ Source or Header
|
1990-02-14
|
1KB
|
73 lines
#include <exec/devices.h>
#include <functions.h>
#include <devices/timer.h>
struct timerequest *timermsg;
struct timerequest *CreateExtIO();
extern struct timerequest *tr;
extern int gab_interval;
struct timerequest *CreateTimer(unit)
int unit;
{
int error;
register struct MsgPort *timerport;
register struct timerequest *timermsg;
timerport = CreatePort(0L, 0L);
if(!timerport)
return 0;
timermsg = CreateExtIO(timerport, (long)sizeof(struct timerequest));
if (!timermsg)
{
DeletePort(timerport);
return 0;
}
error = OpenDevice(TIMERNAME, (long)unit, timermsg, 0L);
if(error)
{
DeleteTimer(timermsg);
return 0;
}
return timermsg;
}
DeleteTimer(tr)
register struct timerequest *tr;
{
register struct MsgPort *tp;
if (tr)
{
tp = tr->tr_node.io_Message.mn_ReplyPort;
if(tp)
DeletePort(tp);
CloseDevice(tr);
DeleteExtIO(tr, (long)sizeof(struct timerequest));
}
}
TrashTimer()
{
if (tr)
{
AbortIO(tr);
DeleteTimer(tr);
}
}
InitTimer()
{
tr = (struct timerequest *)CreateTimer((int)UNIT_MICROHZ);
if (tr == NULL)
panic("can't create timer");
add_cleanup(TrashTimer);
}