Integrate xtklib with the kernel
All checks were successful
ci/woodpecker/push/build Pipeline was successful
All checks were successful
ci/woodpecker/push/build Pipeline was successful
This commit is contained in:
parent
6ef36cbd26
commit
a7d07e7ecb
@ -62,6 +62,6 @@ add_compiler_flags(-D__RELFILE__="&__FILE__[__FILE__[0] == '.' ? sizeof \\\"${_P
|
||||
set_disk_image_size(128)
|
||||
|
||||
# Build subprojects
|
||||
add_subdirectory(sdk/xtklib)
|
||||
add_subdirectory(bootdata)
|
||||
add_subdirectory(xtldr)
|
||||
add_subdirectory(xtoskrnl)
|
||||
|
@ -51,7 +51,6 @@ design, it requires a modern EFI enabled hardware. It is not possible currently
|
||||
| drivers | XT native drivers source code |
|
||||
| sdk/cmake | Host toolchain configuration and build-related functions |
|
||||
| sdk/xtdk | XT Software Development Kit headers |
|
||||
| sdk/xtklib | XT Base kernel-mode library source code |
|
||||
| services | integral subsystems services source code |
|
||||
| subsystems | environment subsystems source code |
|
||||
| xtoskrnl | XTOS kernel source code |
|
||||
|
@ -1,13 +1,13 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/includes/libhl.h
|
||||
* DESCRIPTION: Hardware Abstraction Layer library
|
||||
* FILE: sdk/xtdk/hlfuncs.h
|
||||
* DESCRIPTION: XT hardware abstraction layer routines
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTKLIB_LIBHL_H
|
||||
#define __XTKLIB_LIBHL_H
|
||||
#ifndef __XTDK_HLFUNCS_H
|
||||
#define __XTDK_HLFUNCS_H
|
||||
|
||||
#include "xtdefs.h"
|
||||
#include "xtstruct.h"
|
||||
@ -46,4 +46,4 @@ VOID
|
||||
HlIoPortOutByte(IN USHORT Port,
|
||||
IN UCHAR Data);
|
||||
|
||||
#endif /* __XTKLIB_LIBHL_H */
|
||||
#endif /* __XTDK_HLFUNCS_H */
|
@ -1,13 +1,13 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/includes/librtl.h
|
||||
* DESCRIPTION: Kernel mode runtime library
|
||||
* FILE: sdk/xtdk/rtlfuncs.h
|
||||
* DESCRIPTION: XT runtime library routines
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#ifndef __XTKLIB_LIBRTL_H
|
||||
#define __XTKLIB_LIBRTL_H
|
||||
#ifndef __XTDK_RTLFUNCS_H
|
||||
#define __XTDK_RTLFUNCS_H
|
||||
|
||||
#include "xtdefs.h"
|
||||
#include "xtstruct.h"
|
||||
@ -53,4 +53,4 @@ RtlWideStringTokenize(IN PWCHAR String,
|
||||
IN CONST PWCHAR Delimiter,
|
||||
IN OUT PWCHAR *SavePtr);
|
||||
|
||||
#endif /* __XTKLIB_LIBRTL_H */
|
||||
#endif /* __XTDK_RTLFUNCS_H */
|
@ -25,3 +25,7 @@
|
||||
/* Low level data types headers */
|
||||
#include "rtltypes.h"
|
||||
#include "hltypes.h"
|
||||
|
||||
/* XT routines */
|
||||
#include "hlfuncs.h"
|
||||
#include "rtlfuncs.h"
|
||||
|
@ -1,18 +0,0 @@
|
||||
# XT kernel-mode library
|
||||
PROJECT(XTKLIB)
|
||||
|
||||
# Specify include directories
|
||||
include_directories(
|
||||
${EXECTOS_SOURCE_DIR}/sdk/xtdk
|
||||
${XTKLIB_SOURCE_DIR}/includes)
|
||||
|
||||
# Specify list of source code files
|
||||
list(APPEND XTKLIB_SOURCE
|
||||
${XTKLIB_SOURCE_DIR}/hl/cport.c
|
||||
${XTKLIB_SOURCE_DIR}/hl/${ARCH}/cpufunc.c
|
||||
${XTKLIB_SOURCE_DIR}/rtl/memory.c
|
||||
${XTKLIB_SOURCE_DIR}/rtl/plist.c
|
||||
${XTKLIB_SOURCE_DIR}/rtl/widestr.c)
|
||||
|
||||
# Add library
|
||||
add_library(xtklib ${XTKLIB_SOURCE})
|
@ -1,10 +0,0 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/includes/xtklib.h
|
||||
* DESCRIPTION: XT kernel-mode library
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#include "libhl.h"
|
||||
#include "librtl.h"
|
@ -4,7 +4,6 @@ PROJECT(XTLDR)
|
||||
# Specify include directories
|
||||
include_directories(
|
||||
${EXECTOS_SOURCE_DIR}/sdk/xtdk
|
||||
${EXECTOS_SOURCE_DIR}/sdk/xtklib/includes
|
||||
${XTLDR_SOURCE_DIR}/includes)
|
||||
|
||||
# Specify list of source code files
|
||||
@ -15,11 +14,11 @@ list(APPEND XTLDR_SOURCE
|
||||
${XTLDR_SOURCE_DIR}/volume.c
|
||||
${XTLDR_SOURCE_DIR}/xtldr.c)
|
||||
|
||||
# Add executable
|
||||
# Link bootloader executable
|
||||
add_executable(xtldr ${XTLDR_SOURCE})
|
||||
|
||||
# Add linker libraries
|
||||
target_link_libraries(xtldr xtklib)
|
||||
target_link_libraries(xtldr xtoslib)
|
||||
|
||||
# Set proper binary name and install target
|
||||
if(ARCH STREQUAL "i686")
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define __XTLDR_XTBL_H
|
||||
|
||||
#include <xtkmapi.h>
|
||||
#include <xtklib.h>
|
||||
|
||||
|
||||
#define XT_BOOT_DEVICE_UNKNOWN 0x00
|
||||
|
38
xtoskrnl/CMakeLists.txt
Normal file
38
xtoskrnl/CMakeLists.txt
Normal file
@ -0,0 +1,38 @@
|
||||
# XT Kernel
|
||||
PROJECT(XTOSKRNL)
|
||||
|
||||
# Specify include directories
|
||||
include_directories(
|
||||
${EXECTOS_SOURCE_DIR}/sdk/xtdk)
|
||||
|
||||
# Specify list of source code files
|
||||
list(APPEND XTOSKRNL_SOURCE
|
||||
${XTOSKRNL_SOURCE_DIR}/hl/cport.c
|
||||
${XTOSKRNL_SOURCE_DIR}/hl/${ARCH}/cpufunc.c
|
||||
${XTOSKRNL_SOURCE_DIR}/ke/krnlinit.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/memory.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/plist.c
|
||||
${XTOSKRNL_SOURCE_DIR}/rtl/widestr.c)
|
||||
|
||||
# Set module definition SPEC file
|
||||
set_specfile(xtoskrnl.spec)
|
||||
|
||||
# Link static XTOS library
|
||||
add_library(xtoslib ${XTOSKRNL_SOURCE})
|
||||
|
||||
# Link kernel executable
|
||||
add_executable(xtoskrnl
|
||||
${XTOSKRNL_SOURCE}
|
||||
${CMAKE_CURRENT_BINARY_DIR}/xtoskrnl.def)
|
||||
|
||||
# Add linker libraries
|
||||
target_link_libraries(xtoskrnl)
|
||||
|
||||
# Set instal target
|
||||
set_install_target(xtoskrnl "exectos/system")
|
||||
|
||||
# Set kernel entrypoint, imagebase address, ordinals and subsystem
|
||||
set_entrypoint(xtoskrnl "KeStartXtSystem")
|
||||
set_imagebase(xtoskrnl ${BASEADDRESS_XTOSKRNL})
|
||||
set_ordinals(xtoskrnl TRUE)
|
||||
set_subsystem(xtoskrnl native)
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/hl/cpufunc.c
|
||||
* FILE: xtoskrnl/hl/amd64/cpufunc.c
|
||||
* DESCRIPTION: Routines to provide access to special AMD64 CPU instructions
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
@ -1,13 +1,12 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/hl/cport.c
|
||||
* FILE: xtoskrnl/hl/cport.c
|
||||
* DESCRIPTION: Serial (COM) port support
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#include "xtkmapi.h"
|
||||
#include "xtklib.h"
|
||||
|
||||
|
||||
/* I/O port addresses for COM1 - COM8 (valid only for ia32 and amd64) */
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/hl/cpufunc.c
|
||||
* FILE: xtoskrnl/hl/i686/cpufunc.c
|
||||
* DESCRIPTION: Routines to provide access to special i686 CPU instructions
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
25
xtoskrnl/ke/krnlinit.c
Normal file
25
xtoskrnl/ke/krnlinit.c
Normal file
@ -0,0 +1,25 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: xtoskrnl/ke/krnlinit.c
|
||||
* DESCRIPTION: XT kernel initialization
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
||||
|
||||
#include <xtkmapi.h>
|
||||
|
||||
|
||||
/**
|
||||
* This routine starts up the XT kernel. It is called by boot loader.
|
||||
*
|
||||
* @return This routine does not return any value.
|
||||
*
|
||||
* @since XT 1.0
|
||||
*/
|
||||
XTAPI
|
||||
VOID
|
||||
KeStartXtSystem()
|
||||
{
|
||||
/* Enter infinite kernel thread loop */
|
||||
for(;;);
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/rtl/memory.c
|
||||
* FILE: xtoskrnl/rtl/memory.c
|
||||
* DESCRIPTION: Memory related routines
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtklib/rtl/plist.c
|
||||
* FILE: xtoskrnl/rtl/plist.c
|
||||
* DESCRIPTION: Linked list manipulation routines
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
@ -1,7 +1,7 @@
|
||||
/**
|
||||
* PROJECT: ExectOS
|
||||
* COPYRIGHT: See COPYING.md in the top level directory
|
||||
* FILE: sdk/xtrtlib/widestr.c
|
||||
* FILE: xtoskrnl/rtl/widestr.c
|
||||
* DESCRIPTION: Wide string support
|
||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||
*/
|
2
xtoskrnl/xtoskrnl.spec
Normal file
2
xtoskrnl/xtoskrnl.spec
Normal file
@ -0,0 +1,2 @@
|
||||
@ stdcall HlIoPortInByte(ptr)
|
||||
@ stdcall HlIoPortOutByte(ptr long)
|
Loading…
Reference in New Issue
Block a user