BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / commit / c530261a6ef76632384504044bc0b0519a33938e / include / nucleus / task.h

// Related

Nucleus

Barry Task queues and full scheduling c530261 (3 years, 3 months ago)
diff --git a/include/nucleus/task.h b/include/nucleus/task.h
index 2761a3f..547fabc 100644
--- a/include/nucleus/task.h
+++ b/include/nucleus/task.h
@@ -8,6 +8,7 @@
 #include <nucleus/memory.h>
 
 typedef struct Task Task;
+typedef struct TaskQueue TaskQueue;
 
 /* Task priorities */
 enum Priority {
@@ -38,7 +39,14 @@ struct Task {
 	Task *next;
 };
 
+/* Structure for a Task Queue */
+struct TaskQueue {
+	Object obj;
+	Task *start, *end;
+};
+
 extern ObjectType taskType;
+extern ObjectType taskQueueType;
 
 extern Task *currentTask[];
 #define current currentTask[CPUID]
@@ -47,4 +55,8 @@ void init_tasking(void);
 void schedule(void);
 pid_t clone(int flags);
 
+void add_to_queue(TaskQueue *queue, Task *task);
+void remove_from_queue(TaskQueue *queue, Task *task);
+Task *pop_from_queue(TaskQueue *queue);
+
 #endif