Zerosharp integration.

This commit is contained in:
Curle 2021-06-19 18:53:59 +01:00
parent 752f44852b
commit b8deb0e477
Signed by: TheCurle
GPG Key ID: 5942F13718443F79
4 changed files with 8 additions and 6 deletions

View File

@ -10,8 +10,6 @@ SET(CMAKE_CROSSCOMPILING 1)
project(chroma)
SET(src_files
${CMAKE_SOURCE_DIR}/src/kernel.c
${CMAKE_SOURCE_DIR}/src/video/draw.c
@ -53,6 +51,8 @@ SET(src_preamble
set(src_epilogue
${CMAKE_SOURCE_DIR}/src/global/crtend.o
${CMAKE_SOURCE_DIR}/src/global/crtn.o
${CMAKE_SOURCE_DIR}/src/assets/font.o
${CMAKE_SOURCE_DIR}/src/assets/zerosharp.o
)
set_property(SOURCE ${src_no_sse} PROPERTY COMPILE_FLAGS -mgeneral-regs-only)
@ -61,6 +61,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
add_executable(kernel)
target_sources(kernel PUBLIC ${src_preamble} PUBLIC ${src_files} PUBLIC ${src_no_sse} PUBLIC ${lib_files} PUBLIC ${CMAKE_SOURCE_DIR}/src/assets/font.o PUBLIC ${src_epilogue})
target_compile_options(kernel PRIVATE -ffreestanding -O0 -Wall -Wextra -Wall -Werror -pedantic -fPIC -fno-exceptions -fno-omit-frame-pointer -mno-red-zone -fno-stack-protector -ggdb3)
target_sources(kernel PUBLIC ${src_preamble} PUBLIC ${src_files} PUBLIC ${src_no_sse} PUBLIC ${lib_files} PUBLIC ${src_epilogue})
target_compile_options(kernel PRIVATE -ffreestanding -O0 -Wall -Wextra -Wall -Werror -fPIC -fno-exceptions -fno-omit-frame-pointer -mno-red-zone -fno-stack-protector -ggdb3)
target_link_options(kernel PRIVATE -T linker.ld -ffreestanding -O2 -nostdlib -nostartfiles -lgcc)

View File

@ -35,6 +35,8 @@ extern uint8_t fb;
extern volatile unsigned char _binary_src_assets_font_psf_start;
extern volatile size_t* _kernel_text_start;
extern int sharp_entryPoint();
extern address_space_t KernelAddressSpace;
extern e1000_device_t* E1000NIC;

BIN
src/assets/zerosharp.o Normal file

Binary file not shown.

View File

@ -125,8 +125,8 @@ void TrackInternalBuffer(KeyboardData data) {
UninstallKBCallback(InternalBufferID);
StartEditor(CharPrinterCallbackID);
} else if(strcmp(InternalBuffer, "zero")) {
/*entry entryPoint = (entry) ((size_t) _binary_zerosharp_obj_start + 0x20);
entryPoint();*/ // TODO: Zerosharp integration, maybe?
int returnVal = sharp_entryPoint();
SerialPrintf("Sharp returned %d\r\n", returnVal);
} else {
SerialPrintf("[ Kbd] No match for %s\r\n", InternalBuffer);
memset(InternalBuffer, 0, 4098);