summaryrefslogtreecommitdiff
path: root/include/task.h
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-04-03 03:46:32 -0700
committerYamaArashi <shadow962@live.com>2016-04-03 03:47:02 -0700
commit5b648ca2591f34c06ea51e3f3b6f9c5835533310 (patch)
treec132565f6ad4f03b80774fd27906b9d61cbfdc3f /include/task.h
parentae21f32d61c6614999778f15bb52a0857b0390b5 (diff)
task.c
Diffstat (limited to 'include/task.h')
-rw-r--r--include/task.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/task.h b/include/task.h
new file mode 100644
index 000000000..cb01efbef
--- /dev/null
+++ b/include/task.h
@@ -0,0 +1,27 @@
+#ifndef GUARD_TASK_H
+#define GUARD_TASK_H
+
+typedef void (*TaskFunc)(u8 taskId);
+
+struct Task
+{
+ TaskFunc func;
+ bool8 isActive;
+ u8 prev;
+ u8 next;
+ u8 priority;
+ u16 data[16];
+};
+
+void ResetTasks();
+u8 CreateTask(TaskFunc func, u8 priority);
+void DestroyTask(u8 taskId);
+void RunTasks();
+void TaskDummy(u8 taskId);
+void SetTaskFuncWithFollowupFunc(u8 taskId, TaskFunc func, TaskFunc followupFunc);
+void SwitchTaskToFollowupFunc(u8 taskId);
+bool8 FuncIsActiveTask(TaskFunc func);
+u8 FindTaskIdByFunc(TaskFunc func);
+u8 GetTaskCount();
+
+#endif // GUARD_TASK_H