diff options
author | Tyler Murphy <=> | 2023-07-17 00:09:26 -0400 |
---|---|---|
committer | Tyler Murphy <=> | 2023-07-17 00:09:26 -0400 |
commit | e6bec1afcd1c351c13db821a4bb5e899a6c37901 (patch) | |
tree | 132f66efcf1657cb4a735af9cb8c264661549dd3 /kernel/src/cpu | |
parent | format .env (diff) | |
download | finix-e6bec1afcd1c351c13db821a4bb5e899a6c37901.tar.gz finix-e6bec1afcd1c351c13db821a4bb5e899a6c37901.tar.bz2 finix-e6bec1afcd1c351c13db821a4bb5e899a6c37901.zip |
paging
Diffstat (limited to 'kernel/src/cpu')
-rw-r--r-- | kernel/src/cpu/cpu.c | 24 | ||||
-rw-r--r-- | kernel/src/cpu/cpu.h | 7 |
2 files changed, 17 insertions, 14 deletions
diff --git a/kernel/src/cpu/cpu.c b/kernel/src/cpu/cpu.c index f78ef26..416a1ad 100644 --- a/kernel/src/cpu/cpu.c +++ b/kernel/src/cpu/cpu.c @@ -2,19 +2,17 @@ #include "print.h" -extern int sse_init (void); -extern int fpu_init (void); +extern uint8_t sse_init (void); +extern uint8_t fpu_init (void); -void init_registers (void) { - if (!sse_init()) { - debugk("Loaded SIMD"); - } else { - errork("SIMD not supported"); - } +uint8_t init_registers (uint8_t reg) { + uint8_t res = 0; - if (!fpu_init()) { - debugk("Loaded FPU"); - } else { - errork("FPU not supported"); - } + if (reg & SSE_REG) + res |= ~sse_init() & SSE_REG; + + if (reg & FPU_REG) + res |= ~fpu_init() & FPU_REG; + + return res; } diff --git a/kernel/src/cpu/cpu.h b/kernel/src/cpu/cpu.h index 3044292..b6221aa 100644 --- a/kernel/src/cpu/cpu.h +++ b/kernel/src/cpu/cpu.h @@ -1,3 +1,8 @@ #pragma once -void init_registers (void); +#include <stdint.h> + +#define SSE_REG 0x01 +#define FPU_REG 0x02 + +uint8_t init_registers (uint8_t reg); |