summaryrefslogtreecommitdiff
path: root/src/kernel/libs/acpi.c
diff options
context:
space:
mode:
authorBrett Weiland <brett_weiland@bpcspace.com>2021-03-24 15:42:20 -0500
committerBrett Weiland <brett_weiland@bpcspace.com>2021-03-24 15:42:20 -0500
commitf90c075d5061b3a89316d6bf3d5b190d49049ccd (patch)
tree36265da568b852ca5c0a8b4affe706cda80c4a9d /src/kernel/libs/acpi.c
parent14b109ea24dc5cb1db948de57a2a44c80ef4622e (diff)
renamed: kernel/include/acpi.h -> include/acpi.h
renamed: kernel/include/libc.h -> include/libc.h renamed: kernel/include/paging.h -> include/paging.h renamed: kernel/include/printf.h -> include/printf.h renamed: kernel/include/serial.h -> include/serial.h renamed: kernel/include/video.h -> include/video.h new file: indigo_os renamed: kernel/libs/acpi.c -> kernel/acpi.c renamed: kernel/libs/drivers/serial.c -> kernel/drivers/serial.c renamed: kernel/libs/drivers/video.c -> kernel/drivers/video.c renamed: kernel/libs/libc.c -> kernel/libc.c renamed: kernel/libs/page.c -> kernel/page.c renamed: kernel/libs/printf.c -> kernel/printf.c renamed: kernel/libs/printf.h -> kernel/printf.h modified: makefile
Diffstat (limited to 'src/kernel/libs/acpi.c')
-rw-r--r--src/kernel/libs/acpi.c58
1 files changed, 0 insertions, 58 deletions
diff --git a/src/kernel/libs/acpi.c b/src/kernel/libs/acpi.c
deleted file mode 100644
index 0c22fe4..0000000
--- a/src/kernel/libs/acpi.c
+++ /dev/null
@@ -1,58 +0,0 @@
-#include <acpi.h>
-#include <stdint.h>
-#include <printf.h>
-
-static int RSDP_verify(void *rsdp_pointer) {
- printf("Verifying potential RSDP at address 0x%p... ", rsdp_pointer);
- union rsdp_t *rsdp = rsdp_pointer;
- uint8_t checksum = 0;
- char *rsdp_csm_ptr = rsdp_pointer;
- int i;
- if(checksum) return 0;
- if(rsdp->v1.version) {
- printf("APCI revision > 2.\n");
- checksum = 0;
- printf("len : %i\n", rsdp->v2.len);
- for(i = 0; i < rsdp->v2.len; i++) {
- checksum += rsdp_csm_ptr[i];
- }
- }
- else {
- printf("APCI revision 1.\n");
- for(i = 0; i <= 20; i++) {
- checksum += rsdp_csm_ptr[i];
- }
- }
- if(checksum) {
- return 0;
- printf("Invalid, searching on.\n");
- }
- printf("RSDP Verified!\n");
- return 1;
-}
-
-rsdp_t *find_RSDP() {
- const char sig[9] = "RSD PTR ";
- uintptr_t *p = (void *)0x040e;
- uintptr_t *ebda_unshifted = (void *)p;
-
- void *ebda = (void *)((uintptr_t)ebda_unshifted << (uintptr_t)4 & (uintptr_t)0xfffff);
-
- for(void *i = ebda; i <= ebda + 64000; i += 16) {
- if(!(memcmp(sig, i, 8))) {
- if(RSDP_verify(i)) {
- return(i);
- }
- }
- }
-
- for(void *i = (void *)0xe0000; i <= (void *)0xfffff; i += 16) {
- if(!(memcmp(sig, i, 8))) {
- if(RSDP_verify(i)) {
- return(i);
- }
- }
- }
-}
-
-