Skip to content

Commit

Permalink
kern: Initial uACPI integration
Browse files Browse the repository at this point in the history
  • Loading branch information
mintsuki committed Feb 25, 2025
1 parent b87e385 commit 7929d65
Show file tree
Hide file tree
Showing 5 changed files with 379 additions and 1 deletion.
2 changes: 2 additions & 0 deletions kernel/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@
/cc-runtime*
/c/flanterm
/c/printf
/c/uacpi
/uacpi-repository
/bin
/obj
2 changes: 1 addition & 1 deletion kernel/GNUmakefile
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ clean:
# Remove everything built and generated including downloaded dependencies.
.PHONY: distclean
distclean: clean
rm -rf freestnd-c-hdrs cc-runtime c/flanterm c/printf
rm -rf freestnd-c-hdrs cc-runtime c/flanterm c/printf c/uacpi uacpi-repository

# Install the final built executable to its final on-root location.
.PHONY: install
Expand Down
10 changes: 10 additions & 0 deletions kernel/get-deps
Original file line number Diff line number Diff line change
Expand Up @@ -88,3 +88,13 @@ download_by_hash \
https://github.com/eyalroz/printf/raw/2d75fef6c605e699d2643267cbaeaaa49b0a2635/src/printf/printf.h \
c/printf/printf.h \
f63b84650f29394fd1bc6f6dce889d11570fcc152c5d512bfe6b68174c5aed56

# 2.0.0
clone_repo_commit \
https://github.com/uACPI/uACPI.git \
uacpi-repository \
4ab3a78006a930e2cda5a92f33fc84e1ec6b4a3d
rm -rf c/uacpi
mkdir -p c/uacpi
cp -rp uacpi-repository/include/uacpi/* c/uacpi/
cp -rp uacpi-repository/source/* c/uacpi/
12 changes: 12 additions & 0 deletions kernel/modules/acpi/acpi.v
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,18 @@ pub fn initialise() {
}

madt_init()

mut uacpi_status := UACPIStatus.ok

uacpi_status = C.uacpi_initialize(0)
if uacpi_status != UACPIStatus.ok {
panic('uacpi_initialize(): ${C.uacpi_status_to_string(uacpi_status)}')
}

uacpi_status = C.uacpi_namespace_load()
if uacpi_status != UACPIStatus.ok {
panic('uacpi_namespace_load(): ${C.uacpi_status_to_string(uacpi_status)}')
}
}

pub fn find_sdt(signature string, index int) !voidptr {
Expand Down
Loading

0 comments on commit 7929d65

Please sign in to comment.