#include "exec/devices.h" #include "devices/timer.h" struct timerequest *timermsg; struct timerequest * CreateTimer(unit) ULONG unit; { int error; struct MsgPort *timerport; struct timerequest *timermsg; timerport = CreatePort(0, 0); if(!timerport) return 0; timermsg = (struct timerequest *) CreateExtIO(timerport, sizeof(struct timerequest)); if(!timermsg) { DeletePort(timerport); return 0; } error = OpenDevice(TIMERNAME, unit, timermsg, 0); if(error) { DeleteTimer(timermsg); return 0; } return timermsg; } DeleteTimer(tr) struct timerequest *tr; { struct MsgPort *tp; if(tr) { tp = tr->tr_node.io_Message.mn_ReplyPort; if(tp) DeletePort(tp); CloseDevice(tr); DeleteExtIO(tr, sizeof(struct timerequest)); } }