62d23980d2916cd5e10fc52c6af8e13a4f13349d
[tpg/acess2.git] / Kernel / arch / arm7 / include / proc.h
1 /*
2  * Acess2
3  * ARM7 Architecture
4  *
5  * proc.h - Arch-Dependent Process Management
6  */
7 #ifndef _PROC_H_
8 #define _PROC_H_
9
10 #define MAX_CPUS        4
11
12 // === STRUCTURES ===
13 typedef struct {
14         Uint32  IP, LR, SP;
15         Uint32  UserIP, UserSP;
16 } tTaskState;
17
18 typedef struct {
19         Uint32  Base;
20 } tMemoryState;
21
22 typedef struct {
23         union {
24                 Uint32  Num;
25                 Uint32  Error;
26         };
27         union {
28                 Uint32  Arg1;
29                 Uint32  Return;
30         };
31         union {
32                 Uint32  Arg2;
33                 Uint32  RetHi;
34         };
35         Uint32  Arg3;
36         Uint32  Arg4;
37         Uint32  Arg5;
38         Uint32  Arg6;   // R6
39         Uint32  Unused[13-6];
40         Uint32  StackPointer;   // R13
41         Uint32  _lr;
42         Uint32  _ip;
43 } tSyscallRegs;
44
45 // === MACROS ===
46 #define HALT()  __asm__ __volatile__ ("nop")
47
48 // === PROTOTYPES ===
49 extern void     Proc_Start(void);
50 extern tTID     Proc_Clone(Uint *Errno, int Flags);
51
52 #endif
53

UCC git Repository :: git.ucc.asn.au