summaryrefslogtreecommitdiff
path: root/kernel/src/cpu/cpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/cpu/cpu.c')
-rw-r--r--kernel/src/cpu/cpu.c24
1 files changed, 11 insertions, 13 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;
}