uintptr_t uptr
Definition integers.h:36
__UINT64_TYPE__ u64
Definition integers.h:12
constexpr auto to_underlying
Definition to_underlying.h:15
Definition cxx_init.cpp:12
void load_kernel_stack(mm::VirtualAddress base)
Definition tss.cpp:8
void load_userspace_thread_pointer(uptr userspace_thread_pointer, arch::TaskState &task_state)
Definition gdt.cpp:22
di::StrongInt< VirtualAddressTag > VirtualAddress
Definition virtual_address.h:25
di::vocab::Expected< T, di::platform::GenericCode > Expected
Definition error.h:324
SystemCall
Definition syscall.h:4
byte * fpu_state
Definition task.h:93
auto setup_fpu_state() -> Expected< void >
Setup the task's FPU state. This must be called for userspace tasks.
Definition task.cpp:61
auto setup_initial_fpu_state() -> Expected< void >
Definition task.cpp:71
void load()
Definition task.cpp:91
void save()
Definition task.cpp:102
~FpuState()
Definition task.cpp:55
void set_argument1(uptr value)
Definition task.h:37
u64 rdx
Definition task.h:57
u64 rax
Definition task.h:60
u64 rbx
Definition task.h:59
u64 rsp
Definition task.h:67
u64 rsi
Definition task.h:56
u64 r11
Definition task.h:50
auto syscall_arg6() const -> u64
Definition task.h:24
u64 r8
Definition task.h:53
u64 rip
Definition task.h:64
u64 rdi
Definition task.h:55
void set_syscall_return(Expected< uptr > value)
Definition task.h:26
auto syscall_arg4() const -> u64
Definition task.h:22
auto syscall_arg5() const -> u64
Definition task.h:23
u64 r15
Definition task.h:46
void set_instruction_pointer(uptr value)
Definition task.h:35
u64 rflags
Definition task.h:66
void set_stack_pointer(uptr value)
Definition task.h:36
void set_argument3(uptr value)
Definition task.h:39
u64 rbp
Definition task.h:54
auto syscall_arg2() const -> u64
Definition task.h:20
u64 ss
Definition task.h:68
void set_argument4(uptr value)
Definition task.h:40
u64 r13
Definition task.h:48
u64 r14
Definition task.h:47
auto syscall_arg3() const -> u64
Definition task.h:21
u64 rcx
Definition task.h:58
void set_argument2(uptr value)
Definition task.h:38
auto syscall_number() const -> SystemCall
Definition task.h:15
u64 r9
Definition task.h:52
u64 cs
Definition task.h:65
auto in_kernel() const -> bool
Definition task.h:17
void context_switch_to()
Function to perform a context switch.
Definition task.cpp:21
auto syscall_arg1() const -> u64
Definition task.h:19
u64 r10
Definition task.h:51
TaskState(bool userspace)
Definition task.cpp:9
u64 r12
Definition task.h:49