summaryrefslogtreecommitdiff
path: root/amiga/schedule.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/schedule.c')
-rwxr-xr-xamiga/schedule.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/amiga/schedule.c b/amiga/schedule.c
index 1c670c4bb..030ed266a 100755
--- a/amiga/schedule.c
+++ b/amiga/schedule.c
@@ -133,7 +133,7 @@ void schedule_run(BOOL poll)
nscb = pblHeapGetFirst(schedule_list);
- if(nscb == -1) return false;
+ if(nscb == -1) return;
if(poll)
{
@@ -188,3 +188,33 @@ void ami_schedule_free(void)
{
pblHeapFree(schedule_list);
}
+
+void ami_schedule_open_timer(void)
+{
+ msgport = AllocSysObjectTags(ASOT_PORT,
+ ASO_NoTrack,FALSE,
+ TAG_DONE);
+
+ tioreq = (struct TimeRequest *)AllocSysObjectTags(ASOT_IOREQUEST,
+ ASOIOR_Size,sizeof(struct TimeRequest),
+ ASOIOR_ReplyPort,msgport,
+ ASO_NoTrack,FALSE,
+ TAG_DONE);
+
+ OpenDevice("timer.device", UNIT_WAITUNTIL, (struct IORequest *)tioreq, 0);
+
+ TimerBase = (struct Device *)tioreq->Request.io_Device;
+ ITimer = (struct TimerIFace *)GetInterface((struct Library *)TimerBase,"main",1,NULL);
+}
+
+void ami_schedule_close_timer(void)
+{
+ if(ITimer)
+ {
+ DropInterface((struct Interface *)ITimer);
+ }
+
+ CloseDevice((struct IORequest *) tioreq);
+ FreeSysObject(ASOT_IOREQUEST,tioreq);
+ FreeSysObject(ASOT_PORT,msgport);
+}