fad225b8d9972393a4bada96edba1dcdcd470254
[tpg/acess2.git] / Kernel / include / hal_proc.h
1 /**
2  * Acess2
3  * - By John Hodge (thePowersGang)
4  *
5  * include/hal_proc.h
6  * - HAL Process management functions
7  * 
8  */
9 #ifndef _HAL_PROC_H_
10 #define _HAL_PROC_H_
11
12 #include <threads_int.h>
13
14 extern void     ArchThreads_Init(void);
15 extern void     Proc_Start(void);
16 extern int      GetCPUNum(void);
17 extern tTID     Proc_Clone(Uint Flags);
18 /**
19  * \brief Start a user task
20  * \param Entrypoint    User entrypoint
21  * \param Base  Base of executable (argument for ld-acess)
22  * \param ArgC  Number of arguments when the program was invoked
23  * \param ArgV  Heap allocated arguments and environment (two NULL terminated lists)
24  * \param DataSize      Size of the \a ArgV buffer in bytes
25  * \note This function should free \a ArgV
26  */
27 extern void     Proc_StartUser(Uint Entrypoint, Uint Base, int ArgC, char **ArgV, int DataSize) NORETURN;
28 extern void     Proc_CallFaultHandler(tThread *Thread);
29 extern void     Proc_DumpThreadCPUState(tThread *Thread);
30 extern void     Proc_Reschedule(void);
31
32
33 extern tPAddr   MM_ClearUser(void);
34 extern void     MM_DumpTables(tVAddr Start, tVAddr End);
35
36
37 #endif

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