diff --git a/CMakeLists.txt b/CMakeLists.txt index adbbd1e3..2bcd7568 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 00000000..092b57b9 --- /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 00000000..c2433897 --- /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 00000000..63bca9d6 --- /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 00000000..fb4aaa73 --- /dev/null +++ b/drivers/ntosdrv/ntosdrv.spec @@ -0,0 +1,2 @@ +# NT compatibilty layer exports +@ fastcall ExRundownCompleted(ptr) ExCompleteRundownProtection