PatchworkOS
Loading...
Searching...
No Matches
cpu.h
Go to the documentation of this file.
1#pragma once
2
3#include <kernel/config.h>
4#include <kernel/cpu/cpu_id.h>
6#include <kernel/cpu/tss.h>
10#include <kernel/mem/vmm.h>
11#include <kernel/sched/sched.h>
12#include <kernel/sched/timer.h>
13#include <kernel/sched/wait.h>
14
15#include <stdint.h>
16
31#define CPU_STACK_CANARY 0x1234567890ABCDEFULL
32
60
71
80
void cpu_stacks_overflow_check(cpu_t *cpu)
Checks for CPU stack overflows.
Definition cpu.c:69
uint64_t cpu_init(cpu_t *cpu, cpuid_t id)
Initializes a CPU structure as part of the boot process.
Definition cpu.c:16
uint16_t cpuid_t
Type used to identify a CPU.
Definition cpu_id.h:29
uint8_t lapic_id_t
Local APIC ID type.
Definition apic.h:24
#define CONFIG_INTERRUPT_STACK_PAGES
Interrupt stack configuration.
Definition config.h:14
#define PAGE_SIZE
Memory page size.
Definition proc.h:140
__UINT64_TYPE__ uint64_t
Definition stdint.h:17
__UINT8_TYPE__ uint8_t
Definition stdint.h:11
CPU structure.
Definition cpu.h:42
timer_ctx_t timer
Definition cpu.h:49
cpuid_t id
Definition cpu.h:43
rand_cpu_ctx_t rand
Definition cpu.h:52
interrupt_ctx_t interrupt
Definition cpu.h:47
wait_cpu_ctx_t wait
Definition cpu.h:50
vmm_cpu_ctx_t vmm
Definition cpu.h:46
uint8_t interruptStackBuffer[CONFIG_INTERRUPT_STACK_PAGES *PAGE_SIZE] ALIGNED(PAGE_SIZE)
sched_cpu_ctx_t sched
Definition cpu.h:51
stack_pointer_t exceptionStack
Definition cpu.h:53
tss_t tss
Definition cpu.h:45
uint8_t doubleFaultStackBuffer[CONFIG_INTERRUPT_STACK_PAGES *PAGE_SIZE] ALIGNED(PAGE_SIZE)
lapic_id_t lapicId
Definition cpu.h:44
uint8_t exceptionStackBuffer[CONFIG_INTERRUPT_STACK_PAGES *PAGE_SIZE] ALIGNED(PAGE_SIZE)
statistics_cpu_ctx_t stat
Definition cpu.h:48
stack_pointer_t interruptStack
Definition cpu.h:55
stack_pointer_t doubleFaultStack
Definition cpu.h:54
Per-CPU Interrupt Context.
Definition interrupt.h:85
CPU random number generator context.
Definition rand.h:23
Per-CPU scheduling context.
Definition sched.h:95
Structure to define a stack in memory.
Per-CPU statistics context.
Definition statistics.h:46
Per-CPU system time context.
Definition timer.h:35
Task State Segment structure.
Definition tss.h:88
Per-CPU VMM context.
Definition vmm.h:109
Per-CPU wait context.
Definition wait.h:193