From c8255e7f323a58625992973f9777a9928947f310 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 7 May 2020 15:40:45 +0100 Subject: OS_terminate_proc --- arm9/lib/include/OS_terminate_proc.h | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 arm9/lib/include/OS_terminate_proc.h (limited to 'arm9/lib/include') diff --git a/arm9/lib/include/OS_terminate_proc.h b/arm9/lib/include/OS_terminate_proc.h new file mode 100644 index 00000000..26741e5d --- /dev/null +++ b/arm9/lib/include/OS_terminate_proc.h @@ -0,0 +1,11 @@ +// +// Created by red031000 on 2020-05-07. +// + +#ifndef POKEDIAMOND_OS_TERMINATE_PROC_H +#define POKEDIAMOND_OS_TERMINATE_PROC_H + +void OS_Terminate(); +void OS_Halt(); + +#endif //POKEDIAMOND_OS_TERMINATE_PROC_H -- cgit v1.2.3 From be09adbcb7e47bbc0ccc3994fe405b72cf2a59c6 Mon Sep 17 00:00:00 2001 From: red031000 Date: Thu, 7 May 2020 19:16:27 +0100 Subject: partial OS_interrupt --- arm9/lib/include/OS_init.h | 2 ++ arm9/lib/include/OS_interrupt.h | 28 ++++++++++++++++++++++++++++ arm9/lib/include/OS_thread.h | 13 +++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 arm9/lib/include/OS_interrupt.h (limited to 'arm9/lib/include') diff --git a/arm9/lib/include/OS_init.h b/arm9/lib/include/OS_init.h index 0c74035d..dd2b20c7 100644 --- a/arm9/lib/include/OS_init.h +++ b/arm9/lib/include/OS_init.h @@ -16,6 +16,8 @@ #include "OS_arena.h" #include "OS_alloc.h" #include "OS_system.h" +#include "OS_terminate_proc.h" +#include "OS_interrupt.h" #include "OS_reset.h" void OS_Init(); diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h new file mode 100644 index 00000000..acac12aa --- /dev/null +++ b/arm9/lib/include/OS_interrupt.h @@ -0,0 +1,28 @@ +// +// Created by red031000 on 2020-05-07. +// + +#ifndef POKEDIAMOND_OS_INTERRUPT_H +#define POKEDIAMOND_OS_INTERRUPT_H + +#include "types.h" + +typedef void (*OSIrqFunction) (void); + +typedef struct +{ + void (*func) (void *); + u32 enable; + void* arg; +} OSIrqCallbackInfo; + +typedef u32 OSIrqMask; + +extern OSIrqFunction OS_IRQTable[]; +extern OSIrqCallbackInfo OSi_IrqCallbackInfo[7+1]; + +void OS_InitIrqTable(); +void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function); +OSIrqFunction OS_GetIrqFunction(OSIrqMask intrBit); + +#endif //POKEDIAMOND_OS_INTERRUPT_H diff --git a/arm9/lib/include/OS_thread.h b/arm9/lib/include/OS_thread.h index 4fb70bf7..49ae9f15 100644 --- a/arm9/lib/include/OS_thread.h +++ b/arm9/lib/include/OS_thread.h @@ -7,6 +7,14 @@ typedef struct _OSThread OSThread; +struct _OSThreadQueue +{ + OSThread *head; + OSThread *tail; +}; + +typedef struct _OSThreadQueue OSThreadQueue; + typedef struct OSThreadInfo { u16 isNeedRescheduling; u16 irqDepth; @@ -20,4 +28,9 @@ struct _OSThread u8 padding[0x80]; //todo: not the correct size but idfk }; +static inline void OS_InitThreadQueue(OSThreadQueue * queue) +{ + queue->head = queue->tail = NULL; +} + #endif //POKEDIAMOND_OS_THREAD_H -- cgit v1.2.3 From 4d444cabe0a241afd7d12e565c6a32f866b260bd Mon Sep 17 00:00:00 2001 From: red031000 Date: Fri, 8 May 2020 01:12:38 +0100 Subject: match OSi_EnterDmaCallback --- arm9/lib/include/OS_interrupt.h | 1 + 1 file changed, 1 insertion(+) (limited to 'arm9/lib/include') diff --git a/arm9/lib/include/OS_interrupt.h b/arm9/lib/include/OS_interrupt.h index acac12aa..b8425b4e 100644 --- a/arm9/lib/include/OS_interrupt.h +++ b/arm9/lib/include/OS_interrupt.h @@ -24,5 +24,6 @@ extern OSIrqCallbackInfo OSi_IrqCallbackInfo[7+1]; void OS_InitIrqTable(); void OS_SetIrqFunction(OSIrqMask intrBit, OSIrqFunction function); OSIrqFunction OS_GetIrqFunction(OSIrqMask intrBit); +void OSi_EnterDmaCallback(u32 dmaNo, void (*callback) (void *), void *arg); #endif //POKEDIAMOND_OS_INTERRUPT_H -- cgit v1.2.3