3 * - By John Hodge (thePowersGang)
6 * - HAL Process management functions
12 #include <threads_int.h>
14 extern void ArchThreads_Init(void);
15 extern void Proc_Start(void);
16 extern int GetCPUNum(void);
17 extern tTID Proc_Clone(Uint Flags);
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
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);
33 extern tPAddr MM_ClearUser(void);
34 extern void MM_DumpTables(tVAddr Start, tVAddr End);