git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kernel - Fixing up doxygen commenting
[tpg/acess2.git]
/
Kernel
/
include
/
hal_proc.h
diff --git
a/Kernel/include/hal_proc.h
b/Kernel/include/hal_proc.h
index
fad225b
..
f41c938
100644
(file)
--- a/
Kernel/include/hal_proc.h
+++ b/
Kernel/include/hal_proc.h
@@
-8,13
+8,39
@@
*/
#ifndef _HAL_PROC_H_
#define _HAL_PROC_H_
*/
#ifndef _HAL_PROC_H_
#define _HAL_PROC_H_
+/**
+ * \file hal_proc.h
+ * \brief Achitecture defined thread/process management functions
+ */
#include <threads_int.h>
#include <threads_int.h>
+/**
+ * \brief Initialise the architecture dependent side of threading
+ */
extern void ArchThreads_Init(void);
extern void ArchThreads_Init(void);
+/**
+ * \brief Start preemptive multithreading (if needed)
+ */
extern void Proc_Start(void);
extern void Proc_Start(void);
+/**
+ * \brief Get the ID of this CPU
+ * \return Zero based CPU ID
+ */
extern int GetCPUNum(void);
extern int GetCPUNum(void);
+/**
+ * \brief Create a copy of the current process
+ * \param Flags Options for the clone
+ * \return ID of the new thread/process
+ */
extern tTID Proc_Clone(Uint Flags);
extern tTID Proc_Clone(Uint Flags);
+/**
+ * \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
/**
* \brief Start a user task
* \param Entrypoint User entrypoint
@@
-25,13
+51,29
@@
extern tTID Proc_Clone(Uint Flags);
* \note This function should free \a ArgV
*/
extern void Proc_StartUser(Uint Entrypoint, Uint Base, int ArgC, char **ArgV, int DataSize) NORETURN;
* \note This function should free \a ArgV
*/
extern void Proc_StartUser(Uint Entrypoint, Uint Base, int ArgC, char **ArgV, int DataSize) NORETURN;
+/**
+ * \brief Call the fault handler for a thread
+ * \param Thread Thread that is at fault :)
+ */
extern void Proc_CallFaultHandler(tThread *Thread);
extern void Proc_CallFaultHandler(tThread *Thread);
+/**
+ * \brief Dump the CPU state for a thread
+ */
extern void Proc_DumpThreadCPUState(tThread *Thread);
extern void Proc_DumpThreadCPUState(tThread *Thread);
+/**
+ * \brief Select a new task and run it, suspending this
+ */
extern void Proc_Reschedule(void);
extern void Proc_Reschedule(void);
-
+/**
+ * \brief Clear the user's memory space back to the minimum required to run
+ */
extern tPAddr MM_ClearUser(void);
extern tPAddr MM_ClearUser(void);
+/**
+ * \brief Dump the address space to the debug channel
+ * \param Start First address
+ * \param End Last address
+ */
extern void MM_DumpTables(tVAddr Start, tVAddr End);
extern void MM_DumpTables(tVAddr Start, tVAddr End);
-
#endif
#endif
UCC
git Repository :: git.ucc.asn.au