summaryrefslogtreecommitdiff
path: root/arm7/lib/include
diff options
context:
space:
mode:
Diffstat (limited to 'arm7/lib/include')
-rw-r--r--arm7/lib/include/MI_memory.h10
-rw-r--r--arm7/lib/include/OS_alarm.h9
-rw-r--r--arm7/lib/include/OS_context.h4
-rw-r--r--arm7/lib/include/OS_mutex.h9
-rw-r--r--arm7/lib/include/OS_thread.h29
-rw-r--r--arm7/lib/include/consts.h1
-rw-r--r--arm7/lib/include/systemWork.h7
7 files changed, 69 insertions, 0 deletions
diff --git a/arm7/lib/include/MI_memory.h b/arm7/lib/include/MI_memory.h
index cb0c53fc..53398ec5 100644
--- a/arm7/lib/include/MI_memory.h
+++ b/arm7/lib/include/MI_memory.h
@@ -12,4 +12,14 @@ void MIi_CpuCopyFast(register u32 * src, register u32 * dst, register u32 size);
void MI_CpuFill8(register u8 value, register u8 * dst, register u32 size);
void MI_CpuCopy8(register u8 * src, register u8 * dst, register u32 size);
+static inline void MI_CpuFill32(void *dest, u32 data, u32 size)
+{
+ MIi_CpuClear32(data, dest, size);
+}
+
+static inline void MI_CpuClear32(void *dest, u32 size)
+{
+ MI_CpuFill32(dest, 0, size);
+}
+
#endif
diff --git a/arm7/lib/include/OS_alarm.h b/arm7/lib/include/OS_alarm.h
new file mode 100644
index 00000000..8ae89e97
--- /dev/null
+++ b/arm7/lib/include/OS_alarm.h
@@ -0,0 +1,9 @@
+#ifndef POKEDIAMOND_ARM7_OS_ALARM_H
+#define POKEDIAMOND_ARM7_OS_ALARM_H
+
+#include "nitro/OS_alarm_shared.h"
+
+void OS_CreateAlarm(OSAlarm *alarm);
+void OS_SetAlarm(OSAlarm *alarm, OSTick tick, OSAlarmHandler handler, void *arg);
+
+#endif //POKEDIAMOND_ARM7_OS_ALARM_H
diff --git a/arm7/lib/include/OS_context.h b/arm7/lib/include/OS_context.h
index 7819e29c..b01ccb8b 100644
--- a/arm7/lib/include/OS_context.h
+++ b/arm7/lib/include/OS_context.h
@@ -13,4 +13,8 @@ typedef struct OSContext
u32 sp_svc;
} OSContext;
+extern u32 OS_SaveContext(OSContext *context);
+extern void OS_LoadContext(OSContext *context);
+extern void OS_InitContext(OSContext *context, u32 func, u32 stack);
+
#endif //POKEDIAMOND_ARM7_OS_CONTEXT_H
diff --git a/arm7/lib/include/OS_mutex.h b/arm7/lib/include/OS_mutex.h
new file mode 100644
index 00000000..b41ac9f8
--- /dev/null
+++ b/arm7/lib/include/OS_mutex.h
@@ -0,0 +1,9 @@
+#ifndef POKEDIAMOND_ARM7_OS_MUTEX_H
+#define POKEDIAMOND_ARM7_OS_MUTEX_H
+
+#include "OS_context.h"
+#include "nitro/OS_mutex_shared.h"
+
+void OSi_UnlockAllMutex(OSThread * thread);
+
+#endif //POKEDIAMOND_ARM7_OS_MUTEX_H
diff --git a/arm7/lib/include/OS_thread.h b/arm7/lib/include/OS_thread.h
index 04e4fdcb..b1d3a01b 100644
--- a/arm7/lib/include/OS_thread.h
+++ b/arm7/lib/include/OS_thread.h
@@ -4,4 +4,33 @@
#include "OS_context.h"
#include "nitro/OS_thread_shared.h"
+static s32 OSi_GetUnusedThreadId(void);
+static void OSi_InsertLinkToQueue(OSThreadQueue *queue, OSThread *thread);
+static OSThread *OSi_RemoveLinkFromQueue(OSThreadQueue *queue);
+static OSThread *OSi_RemoveSpecifiedLinkFromQueue(OSThreadQueue *queue, OSThread *thread);
+OSMutex *OSi_RemoveMutexLinkFromQueue(OSMutexQueue *queue);
+static void OSi_InsertThreadToList(OSThread *thread);
+static void OSi_RemoveThreadFromList(OSThread *thread);
+static void OSi_RescheduleThread(void);
+void OS_InitThread(void);
+void OS_CreateThread(OSThread *thread, void (*func) (void *), void *arg, void *stack, u32 stackSize, u32 prio);
+void OS_ExitThread(void);
+static void OSi_ExitThread_ArgSpecified(OSThread *thread, void *arg);
+static void OSi_ExitThread(void *arg);
+static void OSi_ExitThread_Destroy(void);
+void OS_JoinThread(OSThread *thread);
+BOOL OS_IsThreadTerminated(const OSThread *thread);
+void OS_SleepThread(OSThreadQueue *queue);
+void OS_WakeupThread(OSThreadQueue *queue);
+void OS_WakeupThreadDirect(OSThread *thread);
+OSThread *OS_SelectThread(void);
+void OS_RescheduleThread(void);
+BOOL OS_SetThreadPriority(OSThread *thread, u32 prio);
+void OS_Sleep(u32 msec);
+static void OSi_SleepAlarmCallback(void *arg);
+OSSwitchThreadCallback OS_SetSwitchThreadCallback(OSSwitchThreadCallback callback);
+u32 OS_DisableScheduler(void);
+u32 OS_EnableScheduler(void);
+void OS_SetThreadDestructor(OSThread *thread, OSThreadDestructor dtor);
+
#endif //POKEDIAMOND_ARM7_OS_THREAD_H
diff --git a/arm7/lib/include/consts.h b/arm7/lib/include/consts.h
index 966b5a4b..a6c4c393 100644
--- a/arm7/lib/include/consts.h
+++ b/arm7/lib/include/consts.h
@@ -4,5 +4,6 @@
#include "nitro/consts_shared.h"
#include "mmap.h"
#include "registers.h"
+#include "systemWork.h"
#endif //POKEDIAMOND_ARM7_CONSTS_H
diff --git a/arm7/lib/include/systemWork.h b/arm7/lib/include/systemWork.h
new file mode 100644
index 00000000..95a17845
--- /dev/null
+++ b/arm7/lib/include/systemWork.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_ARM7_SYSTEMWORK_H
+#define POKEDIAMOND_ARM7_SYSTEMWORK_H
+
+#include "OS_context.h"
+#include "nitro/OS_systemWork_shared.h"
+
+#endif //POKEDIAMOND_ARM7_SYSTEMWORK_H