summaryrefslogtreecommitdiff
path: root/kernel/include/process.h
blob: ff8292415e1fb8dc2fc74c3fdbcde491cb8dfa93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef PROCESS_H
#define PROCESS_H

#include <types.h>
#include <libk/list.h>

void save_context_to_rsp(uint64_t irq_rsp, uint64_t task_rsp);
__attribute__((noreturn)) void restore_context_from_rsp(uint64_t task_rsp);

struct process_t {
	uint64_t rsp;
	list_t list;
};
typedef struct process_t process_t;

extern process_t process_queue;
extern process_t *curr_process;

__attribute__((noreturn)) void context_switch(uint64_t irq_rsp);

#endif