From 86dcf317ab0d26fb803e23558ec949b0def1b7c2 Mon Sep 17 00:00:00 2001 From: Rafal Kupiec Date: Wed, 7 Feb 2024 17:48:33 +0100 Subject: [PATCH] Add NTOS compatibility driver --- CMakeLists.txt | 1 + drivers/CMakeLists.txt | 1 + drivers/ntosdrv/CMakeLists.txt | 29 +++++++++++++++++++++++++++++ drivers/ntosdrv/ntosdrv.c | 17 +++++++++++++++++ drivers/ntosdrv/ntosdrv.spec | 2 ++ 5 files changed, 50 insertions(+) create mode 100644 drivers/CMakeLists.txt create mode 100644 drivers/ntosdrv/CMakeLists.txt create mode 100644 drivers/ntosdrv/ntosdrv.c create mode 100644 drivers/ntosdrv/ntosdrv.spec diff --git a/CMakeLists.txt b/CMakeLists.txt index adbbd1e..2bcd756 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,5 +70,6 @@ set_disk_image_size(32) # Build all subprojects add_subdirectory(bootdata) +add_subdirectory(drivers) add_subdirectory(xtldr) add_subdirectory(xtoskrnl) diff --git a/drivers/CMakeLists.txt b/drivers/CMakeLists.txt new file mode 100644 index 0000000..092b57b --- /dev/null +++ b/drivers/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(ntosdrv) diff --git a/drivers/ntosdrv/CMakeLists.txt b/drivers/ntosdrv/CMakeLists.txt new file mode 100644 index 0000000..c243389 --- /dev/null +++ b/drivers/ntosdrv/CMakeLists.txt @@ -0,0 +1,29 @@ +# NTOS compatibility driver +PROJECT(NTOSDRV) + +# Specify include directories +include_directories( + ${EXECTOS_SOURCE_DIR}/sdk/xtdk) + +# Specify list of source code files +list(APPEND NTOSDRV_SOURCE + ${NTOSDRV_SOURCE_DIR}/ntosdrv.c) + +# Set module definition SPEC file +set_specfile(ntosdrv.spec ntosdrv.sys) + +# Link bootloader executable +add_executable(ntosdrv ${NTOSDRV_SOURCE} ${CMAKE_CURRENT_BINARY_DIR}/ntosdrv.def) + +# Add linker libraries +target_link_libraries(ntosdrv xtoskrnl) + +# Set proper binary name and install target +set_target_properties(ntosdrv PROPERTIES SUFFIX .sys) +set_install_target(ntosdrv "exectos/drivers") + +# Set loader entrypoint and subsystem +set_entrypoint(ntosdrv "XtDriverEntry") +set_linker_map(ntosdrv TRUE) +set_ordinals(ntosdrv TRUE) +set_subsystem(ntosdrv native xt_native_driver) diff --git a/drivers/ntosdrv/ntosdrv.c b/drivers/ntosdrv/ntosdrv.c new file mode 100644 index 0000000..63bca9d --- /dev/null +++ b/drivers/ntosdrv/ntosdrv.c @@ -0,0 +1,17 @@ +/** + * PROJECT: ExectOS + * COPYRIGHT: See COPYING.md in the top level directory + * FILE: drivers/ntosdrv/ntosdrv.c + * DESCRIPTION: NTOS compatibility driver + * DEVELOPERS: Rafal Kupiec + */ + +#include + +XTAPI +XTSTATUS +XtDriverEntry() +{ + /* Return success */ + return STATUS_SUCCESS; +} diff --git a/drivers/ntosdrv/ntosdrv.spec b/drivers/ntosdrv/ntosdrv.spec new file mode 100644 index 0000000..fb4aaa7 --- /dev/null +++ b/drivers/ntosdrv/ntosdrv.spec @@ -0,0 +1,2 @@ +# NT compatibilty layer exports +@ fastcall ExRundownCompleted(ptr) ExCompleteRundownProtection