X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=Kernel%2Farch%2Farm7%2Finclude%2Fproc.h;fp=Kernel%2Farch%2Farm7%2Finclude%2Fproc.h;h=62d23980d2916cd5e10fc52c6af8e13a4f13349d;hb=e4ccf568b07857a36382433ed73ea38874843b24;hp=0000000000000000000000000000000000000000;hpb=9c61cf12758c0977ee1dc5791cba638fd3437ba6;p=tpg%2Facess2.git diff --git a/Kernel/arch/arm7/include/proc.h b/Kernel/arch/arm7/include/proc.h new file mode 100644 index 00000000..62d23980 --- /dev/null +++ b/Kernel/arch/arm7/include/proc.h @@ -0,0 +1,53 @@ +/* + * Acess2 + * ARM7 Architecture + * + * proc.h - Arch-Dependent Process Management + */ +#ifndef _PROC_H_ +#define _PROC_H_ + +#define MAX_CPUS 4 + +// === STRUCTURES === +typedef struct { + Uint32 IP, LR, SP; + Uint32 UserIP, UserSP; +} tTaskState; + +typedef struct { + Uint32 Base; +} tMemoryState; + +typedef struct { + union { + Uint32 Num; + Uint32 Error; + }; + union { + Uint32 Arg1; + Uint32 Return; + }; + union { + Uint32 Arg2; + Uint32 RetHi; + }; + Uint32 Arg3; + Uint32 Arg4; + Uint32 Arg5; + Uint32 Arg6; // R6 + Uint32 Unused[13-6]; + Uint32 StackPointer; // R13 + Uint32 _lr; + Uint32 _ip; +} tSyscallRegs; + +// === MACROS === +#define HALT() __asm__ __volatile__ ("nop") + +// === PROTOTYPES === +extern void Proc_Start(void); +extern tTID Proc_Clone(Uint *Errno, int Flags); + +#endif +