Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
scheduler.h
Go to the documentation of this file.
1#ifndef __PROCC__SCHEDULER_H__
2#define __PROCC__SCHEDULER_H__
3
4#include "hal/cpu/interrupt.h"
5#include "procc/thread.h"
6#include <spinlock.h>
7#include <type.h>
8
15
22
23void vxStartScheduler(void);
25void attach_to_scheduler(thread_t* new_thread);
28 uint16_t core_id);
29#endif /* __PROCC__SCHEDULER_H__ */
uint64_t rsp[3]
Definition gdt.h:1
struct thread thread_t
Definition thread.h:29
typedef __attribute__
Definition msi.c:47
scheduler_core_t * vxGetSchedulerCore(uint16_t core)
Definition scheduler.c:21
void attach_to_scheduler(thread_t *new_thread)
Definition scheduler.c:268
void vxStartScheduler(void)
Definition scheduler.c:293
void sch_restore_to_next_thread(volatile interrupt_stack_frame_t *rsp, uint16_t core_id)
Definition scheduler.c:305
struct scheduler_core scheduler_core_t
struct scheduler_queue scheduler_queue_t
Definition scheduler.h:9
scheduler_queue_t * vxSchedulerGetCurrentQueue(uint16_t core)
Definition scheduler.c:29
scheduler_queue_t * last
Definition scheduler.h:18
scheduler_queue_t * run_queue_head
Definition scheduler.h:19
spinlock_t lock
Definition scheduler.h:20
scheduler_queue_t * current
Definition scheduler.h:17
thread_t * thread
Definition scheduler.h:11
struct scheduler_queue * next_queue
Definition scheduler.h:13
struct scheduler_queue * prev_queue
Definition scheduler.h:12
unsigned short uint16_t
Definition type.h:13
int core
Definition vm_manager.h:5