29 lines
486 B
C
29 lines
486 B
C
#pragma once
|
|
#include <queue.h>
|
|
#include <scheduler.h>
|
|
#include <stdint.h>
|
|
#include <interrupts.h>
|
|
#include <stddef.h>
|
|
|
|
struct process
|
|
{
|
|
uint64_t pid;
|
|
void *stack_ptr;
|
|
uint64_t state;
|
|
|
|
uint64_t P4;
|
|
uint64_t brk;
|
|
uint64_t stack;
|
|
QUEUE_SPOT(runQ);
|
|
};
|
|
|
|
struct process *process();
|
|
|
|
struct process *new_process(void (*function)(void));
|
|
void yield();
|
|
void start_scheduler();
|
|
|
|
void switch_stack(void *old_ptr, void *new_ptr);
|
|
|
|
uint64_t procmm_brk(struct process *p, void *addr);
|