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)
|
set_disk_image_size(128)
|
||||||
|
|
||||||
# Build subprojects
|
# Build subprojects
|
||||||
add_subdirectory(sdk/xtklib)
|
|
||||||
add_subdirectory(bootdata)
|
add_subdirectory(bootdata)
|
||||||
add_subdirectory(xtldr)
|
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 |
|
| drivers | XT native drivers source code |
|
||||||
| sdk/cmake | Host toolchain configuration and build-related functions |
|
| sdk/cmake | Host toolchain configuration and build-related functions |
|
||||||
| sdk/xtdk | XT Software Development Kit headers |
|
| sdk/xtdk | XT Software Development Kit headers |
|
||||||
| sdk/xtklib | XT Base kernel-mode library source code |
|
|
||||||
| services | integral subsystems services source code |
|
| services | integral subsystems services source code |
|
||||||
| subsystems | environment subsystems source code |
|
| subsystems | environment subsystems source code |
|
||||||
| xtoskrnl | XTOS kernel source code |
|
| xtoskrnl | XTOS kernel source code |
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
* FILE: sdk/xtklib/includes/libhl.h
|
* FILE: sdk/xtdk/hlfuncs.h
|
||||||
* DESCRIPTION: Hardware Abstraction Layer library
|
* DESCRIPTION: XT hardware abstraction layer routines
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __XTKLIB_LIBHL_H
|
#ifndef __XTDK_HLFUNCS_H
|
||||||
#define __XTKLIB_LIBHL_H
|
#define __XTDK_HLFUNCS_H
|
||||||
|
|
||||||
#include "xtdefs.h"
|
#include "xtdefs.h"
|
||||||
#include "xtstruct.h"
|
#include "xtstruct.h"
|
||||||
@ -46,4 +46,4 @@ VOID
|
|||||||
HlIoPortOutByte(IN USHORT Port,
|
HlIoPortOutByte(IN USHORT Port,
|
||||||
IN UCHAR Data);
|
IN UCHAR Data);
|
||||||
|
|
||||||
#endif /* __XTKLIB_LIBHL_H */
|
#endif /* __XTDK_HLFUNCS_H */
|
@ -1,13 +1,13 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
* FILE: sdk/xtklib/includes/librtl.h
|
* FILE: sdk/xtdk/rtlfuncs.h
|
||||||
* DESCRIPTION: Kernel mode runtime library
|
* DESCRIPTION: XT runtime library routines
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __XTKLIB_LIBRTL_H
|
#ifndef __XTDK_RTLFUNCS_H
|
||||||
#define __XTKLIB_LIBRTL_H
|
#define __XTDK_RTLFUNCS_H
|
||||||
|
|
||||||
#include "xtdefs.h"
|
#include "xtdefs.h"
|
||||||
#include "xtstruct.h"
|
#include "xtstruct.h"
|
||||||
@ -53,4 +53,4 @@ RtlWideStringTokenize(IN PWCHAR String,
|
|||||||
IN CONST PWCHAR Delimiter,
|
IN CONST PWCHAR Delimiter,
|
||||||
IN OUT PWCHAR *SavePtr);
|
IN OUT PWCHAR *SavePtr);
|
||||||
|
|
||||||
#endif /* __XTKLIB_LIBRTL_H */
|
#endif /* __XTDK_RTLFUNCS_H */
|
@ -25,3 +25,7 @@
|
|||||||
/* Low level data types headers */
|
/* Low level data types headers */
|
||||||
#include "rtltypes.h"
|
#include "rtltypes.h"
|
||||||
#include "hltypes.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
|
# Specify include directories
|
||||||
include_directories(
|
include_directories(
|
||||||
${EXECTOS_SOURCE_DIR}/sdk/xtdk
|
${EXECTOS_SOURCE_DIR}/sdk/xtdk
|
||||||
${EXECTOS_SOURCE_DIR}/sdk/xtklib/includes
|
|
||||||
${XTLDR_SOURCE_DIR}/includes)
|
${XTLDR_SOURCE_DIR}/includes)
|
||||||
|
|
||||||
# Specify list of source code files
|
# Specify list of source code files
|
||||||
@ -15,11 +14,11 @@ list(APPEND XTLDR_SOURCE
|
|||||||
${XTLDR_SOURCE_DIR}/volume.c
|
${XTLDR_SOURCE_DIR}/volume.c
|
||||||
${XTLDR_SOURCE_DIR}/xtldr.c)
|
${XTLDR_SOURCE_DIR}/xtldr.c)
|
||||||
|
|
||||||
# Add executable
|
# Link bootloader executable
|
||||||
add_executable(xtldr ${XTLDR_SOURCE})
|
add_executable(xtldr ${XTLDR_SOURCE})
|
||||||
|
|
||||||
# Add linker libraries
|
# Add linker libraries
|
||||||
target_link_libraries(xtldr xtklib)
|
target_link_libraries(xtldr xtoslib)
|
||||||
|
|
||||||
# Set proper binary name and install target
|
# Set proper binary name and install target
|
||||||
if(ARCH STREQUAL "i686")
|
if(ARCH STREQUAL "i686")
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
#define __XTLDR_XTBL_H
|
#define __XTLDR_XTBL_H
|
||||||
|
|
||||||
#include <xtkmapi.h>
|
#include <xtkmapi.h>
|
||||||
#include <xtklib.h>
|
|
||||||
|
|
||||||
|
|
||||||
#define XT_BOOT_DEVICE_UNKNOWN 0x00
|
#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
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* 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
|
* DESCRIPTION: Routines to provide access to special AMD64 CPU instructions
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
*/
|
*/
|
@ -1,13 +1,12 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* 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
|
* DESCRIPTION: Serial (COM) port support
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "xtkmapi.h"
|
#include "xtkmapi.h"
|
||||||
#include "xtklib.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* I/O port addresses for COM1 - COM8 (valid only for ia32 and amd64) */
|
/* I/O port addresses for COM1 - COM8 (valid only for ia32 and amd64) */
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* 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
|
* DESCRIPTION: Routines to provide access to special i686 CPU instructions
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* 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
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
* FILE: sdk/xtklib/rtl/memory.c
|
* FILE: xtoskrnl/rtl/memory.c
|
||||||
* DESCRIPTION: Memory related routines
|
* DESCRIPTION: Memory related routines
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
*/
|
*/
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* 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
|
* DESCRIPTION: Linked list manipulation routines
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
||||||
*/
|
*/
|
@ -1,7 +1,7 @@
|
|||||||
/**
|
/**
|
||||||
* PROJECT: ExectOS
|
* PROJECT: ExectOS
|
||||||
* COPYRIGHT: See COPYING.md in the top level directory
|
* COPYRIGHT: See COPYING.md in the top level directory
|
||||||
* FILE: sdk/xtrtlib/widestr.c
|
* FILE: xtoskrnl/rtl/widestr.c
|
||||||
* DESCRIPTION: Wide string support
|
* DESCRIPTION: Wide string support
|
||||||
* DEVELOPERS: Rafal Kupiec <belliash@codingworkshop.eu.org>
|
* 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