Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
task.h
Go to the documentation of this file.
1// #ifndef __PROCC__TASK_H__
2// #define __PROCC__TASK_H__
3
4// #include <hal/cpu/paging.h>
5// #include <hal/cpu/register.h>
6
7// typedef enum {
8// TASK_RUNNING,
9// TASK_READY,
10// TASK_WAITING,
11// TASK_SUSPENDED,
12// TASK_TERMINATED
13// } task_state_t;
14
15// typedef enum {
16// TASK_PRIORITY_LOW,
17// TASK_PRIORITY_MEDIUM,
18// TASK_PRIORITY_HIGH,
19// TASK_PRIORITY_REALTIME
20// } task_priority_t;
21
22// typedef size_t pid_t;
23
24// #define TASK_MAX 1024
25
26// typedef struct {
27// uint64_t rax, rbx, rcx, rdx, rsi, rdi, rflag, rsp, rip, rbp;
28// uint64_t r8, r9, r10, r11, r12, r13, r14, r15;
29// } task_cpu_state_t;
30
31// struct heap {
32// struct heap* next;
33// struct heap* prev;
34// size_t size;
35// int free;
36// };
37
38// struct program_paramater {
39// uint64_t argc;
40// char** argv;
41// char** envp;
42// };
43
44// struct task {
45// pid_t pid;
46// char* name;
47// uintptr_t entry;
48// struct program_paramater param;
49// uintptr_t stack;
50// struct heap* heap;
51// task_state_t state;
52// task_priority_t priority;
53// page_t page_root;
54// task_cpu_state_t cpu_state;
55// struct task* next;
56// };
57
58// void task_initialize();
59// void task_add(char* name, uintptr_t entry, task_state_t state,
60// task_priority_t priority, page_t page_root, uintptr_t stack,
61// struct program_paramater param);
62// struct task* task_get(pid_t pid);
63// void task_free(pid_t pid);
64// struct task* task_get_current();
65
66// #endif // __PROCC__TASK_H__