From ae7f39d0deb990b23a4283188403ab855b3feb48 Mon Sep 17 00:00:00 2001 From: EnderIce2 Date: Fri, 21 Mar 2025 03:22:40 +0000 Subject: [PATCH] feat(kernel/drivers): add trusted drivers list Signed-off-by: EnderIce2 --- Drivers/Makefile | 35 +++++++++++++++++++++-------------- Kernel/drivers/trusted.c | 4 ++++ 2 files changed, 25 insertions(+), 14 deletions(-) create mode 100644 Kernel/drivers/trusted.c diff --git a/Drivers/Makefile b/Drivers/Makefile index 71866464..277aa661 100644 --- a/Drivers/Makefile +++ b/Drivers/Makefile @@ -43,30 +43,37 @@ endif export DRIVER_LDFLAGS export DRIVER_CFLAGS +copy_driver_signatures: + @echo "const char *trusted_drivers[] = {" > $(OUTPUT_DIR)../../Kernel/drivers/trusted.c + @find $(OUTPUT_DIR) -name "*.drv" -exec sha512sum {} \; | awk '{gsub(/.*\//, "", $$2); gsub(/\./, "_", $$2); sub(/_drv$$/, "_drv", $$2); print "\"" $$1 "\"," }' >> $(OUTPUT_DIR)../../Kernel/drivers/trusted.c + @echo "};" >> $(OUTPUT_DIR)../../Kernel/drivers/trusted.c + @echo "const __SIZE_TYPE__ trusted_drivers_count = sizeof(trusted_drivers) / sizeof(trusted_drivers[0]);" >> $(OUTPUT_DIR)../../Kernel/drivers/trusted.c + build: cp -rf ../Kernel/include/interface/* include/ mkdir -p out - make -C library build + $(MAKE) -C library build ifneq ($(filter amd64 i386,$(OSARCH)),) - make -C audio build - make -C input build - make -C misc build - make -C network build - make -C storage build - make -C filesystem build + $(MAKE) -C audio build + $(MAKE) -C input build + $(MAKE) -C misc build + $(MAKE) -C network build + $(MAKE) -C storage build + $(MAKE) -C filesystem build endif + $(MAKE) copy_driver_signatures prepare: $(info Nothing to prepare) clean: rm -rf out - make -C library clean + $(MAKE) -C library clean ifneq ($(filter amd64 i386,$(OSARCH)),) - make -C audio clean - make -C input clean - make -C misc clean - make -C network clean - make -C storage clean - make -C filesystem clean + $(MAKE) -C audio clean + $(MAKE) -C input clean + $(MAKE) -C misc clean + $(MAKE) -C network clean + $(MAKE) -C storage clean + $(MAKE) -C filesystem clean endif diff --git a/Kernel/drivers/trusted.c b/Kernel/drivers/trusted.c new file mode 100644 index 00000000..2fad4ca9 --- /dev/null +++ b/Kernel/drivers/trusted.c @@ -0,0 +1,4 @@ +const char *trusted_drivers[] = { +"ae08d2e120c8370278ca9e17085a6b9e2f4a470ab6cec824c77ab1f8706c7144f5d4e1c9820914ed4fc7a4fd22de4b18bfed7c3b5d9c1e604e82280d7d45a5c7", +}; +const __SIZE_TYPE__ trusted_drivers_count = sizeof(trusted_drivers) / sizeof(trusted_drivers[0]);