summaryrefslogtreecommitdiff
path: root/kernel/src/cpu
diff options
context:
space:
mode:
authorTyler Murphy <=>2023-07-17 00:09:26 -0400
committerTyler Murphy <=>2023-07-17 00:09:26 -0400
commite6bec1afcd1c351c13db821a4bb5e899a6c37901 (patch)
tree132f66efcf1657cb4a735af9cb8c264661549dd3 /kernel/src/cpu
parentformat .env (diff)
downloadfinix-e6bec1afcd1c351c13db821a4bb5e899a6c37901.tar.gz
finix-e6bec1afcd1c351c13db821a4bb5e899a6c37901.tar.bz2
finix-e6bec1afcd1c351c13db821a4bb5e899a6c37901.zip
paging
Diffstat (limited to 'kernel/src/cpu')
-rw-r--r--kernel/src/cpu/cpu.c24
-rw-r--r--kernel/src/cpu/cpu.h7
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);