#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));
	}
}
