diff --git a/include/kernel/kernel.h b/include/kernel/kernel.h index caabcfe..0684f3c 100644 --- a/include/kernel/kernel.h +++ b/include/kernel/kernel.h @@ -1,11 +1,16 @@ #pragma once +#include "kernel_defs.h" + #ifdef __cplusplus extern "C" { #endif #include + +extern void KernelReadSRs(sr_table_t* table); +extern void KernelWriteSRs(sr_table_t* table); extern void KernelCopyData(uint32_t dst, uint32_t src, uint32_t len); void KernelReadPTE(uint32_t outputAddr, int32_t length); diff --git a/include/kernel/kernel_defs.h b/include/kernel/kernel_defs.h new file mode 100644 index 0000000..ff1d917 --- /dev/null +++ b/include/kernel/kernel_defs.h @@ -0,0 +1,25 @@ +#pragma once + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct _sr_table_t { + uint32_t value[16]; + uint32_t sdr1; +} sr_table_t; + +typedef struct _bat_t { + uint32_t h; + uint32_t l; +} bat_t; + +typedef struct _bat_table_t { + bat_t bat[8]; +} bat_table_t; + +#ifdef __cplusplus +} +#endif \ No newline at end of file diff --git a/source/kernel.def b/source/kernel.def index 932a843..eb3e6a2 100644 --- a/source/kernel.def +++ b/source/kernel.def @@ -1,4 +1,6 @@ :NAME homebrew_kernel :TEXT -KernelCopyData \ No newline at end of file +KernelCopyData +KernelWriteSRs +KernelReadSRs \ No newline at end of file