|
@@ -1,6 +1,38 @@
|
|
|
-#include <stdio.h>
|
|
|
|
|
|
|
+#include <malloc.h>
|
|
|
|
|
+#include <stdbool.h>
|
|
|
|
|
+
|
|
|
#include "kernel.h"
|
|
#include "kernel.h"
|
|
|
|
|
+#include "process.h"
|
|
|
|
|
+#include "worker.h"
|
|
|
|
|
+
|
|
|
|
|
+zivu_kernel_t* zivu_kernel_init_dynamic() {
|
|
|
|
|
+ zivu_kernel_t *current = (zivu_kernel_t*) malloc(sizeof(zivu_kernel_t));
|
|
|
|
|
|
|
|
-void kernel_init(void) {
|
|
|
|
|
- puts("UwU");
|
|
|
|
|
|
|
+ current->processes = NULL;
|
|
|
|
|
+ current->is_static = false;
|
|
|
|
|
+ current->processes_count = 0;
|
|
|
|
|
+
|
|
|
|
|
+ return current;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+void zivu_kernel_init_static(
|
|
|
|
|
+ zivu_kernel_t *self,
|
|
|
|
|
+ zivu_process_t *processes_table,
|
|
|
|
|
+ zivu_pid_t processes_count
|
|
|
|
|
+) {
|
|
|
|
|
+ self->is_static = true;
|
|
|
|
|
+ self->processes = processes_table;
|
|
|
|
|
+ self->processes_count = processes_count;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+void zivu_kernel_remove(zivu_kernel_t *self) {
|
|
|
|
|
+ if (self->is_static) {
|
|
|
|
|
+ self->processes = NULL;
|
|
|
|
|
+ self->processes_count = 0;
|
|
|
|
|
+
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ free((void*) self);
|
|
|
|
|
+ free((void*) self->processes);
|
|
|
|
|
+}
|