summaryrefslogtreecommitdiffstats
path: root/src/include/kernel/task.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/kernel/task.H')
-rw-r--r--src/include/kernel/task.H23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/include/kernel/task.H b/src/include/kernel/task.H
index c27c7e8ce..6cd49028d 100644
--- a/src/include/kernel/task.H
+++ b/src/include/kernel/task.H
@@ -1,8 +1,16 @@
+/** @file task.H
+ * @brief Defines kernel information about tasks.
+ */
#ifndef __KERNEL_TASK_H
#define __KERNEL_TASK_H
#include <kernel/types.h>
+/** @struct context_t
+ * @brief Defines the save-restore context for the task.
+ *
+ * See PowerISA for information on registers listed.
+ */
struct context_t
{
void* stack_ptr;
@@ -14,12 +22,25 @@ struct context_t
uint64_t xer;
};
+/** @struct task_t
+ * @brief The kernel-level task structure.
+ */
struct task_t
{
+ /** Pointer to the CPU this task is assigned to. */
cpu_t* cpu;
+ /** Context information. This MUST stay here due to
+ * save-restore asm code. */
context_t context;
-
+
+ /** Task ID */
tid_t tid;
+ /** Determines if user-space would like this task pinned to a CPU.
+ * This value is considered a count of the number of times the pinned
+ * as been requested, so pinning can be used recursively. */
+ uint64_t affinity_pinned;
+
+ // Pointers for queue containers.
task_t* prev;
task_t* next;
};
OpenPOWER on IntegriCloud