-extern void Proc_StartUser(Uint Entrypoint, Uint *Bases, int ArgC, char **ArgV, char **EnvP, int DataSize);
+/**
+ * \brief Create a new kernel thread for the process
+ * \param Fnc Thread root function
+ * \param Ptr Argument to pass the root function
+ * \return ID of new thread
+ */
+extern tTID Proc_NewKThread( void (*Fnc)(void*), void *Ptr );
+/**
+ * \brief Start a user task
+ * \param Entrypoint User entrypoint
+ * \param Base Base of executable (argument for ld-acess)
+ * \param ArgC Number of arguments when the program was invoked
+ * \param ArgV Heap allocated arguments and environment (two NULL terminated lists)
+ * \param DataSize Size of the \a ArgV buffer in bytes
+ * \note This function should free \a ArgV
+ */
+extern void Proc_StartUser(Uint Entrypoint, Uint Base, int ArgC, const char **ArgV, int DataSize) NORETURN;
+/**
+ * \brief Call the fault handler for a thread
+ * \param Thread Thread that is at fault :)
+ */