Compare commits

...

4 Commits

Author SHA1 Message Date
Bananymous 2188dc2e1c Userspace: Prepare aoc2023 environment :) 2023-12-01 01:22:53 +02:00
Bananymous ff83c52c89 init: set default termios on every username prompt
Before if e.g. Shell crashed init would have broken termios
2023-12-01 01:22:53 +02:00
Bananymous 1cfab4ae04 BuildSystem/Kernel: Enable -Wextra and -Werror in kernel
Only needed to fix some unused variable bugs
2023-12-01 01:22:53 +02:00
Bananymous 2ac28cba6e BuildSystem: Don't build lai with -Wstack-usage
Lai has two functions that trigger warnings on gcc. There isn't
really anything I can do about it, so just disable the warning
2023-12-01 01:22:53 +02:00
10 changed files with 66 additions and 5 deletions

View File

@ -148,7 +148,7 @@ target_compile_definitions(kernel PUBLIC __arch=${BANAN_ARCH})
target_compile_options(kernel PUBLIC -O2 -g)
target_compile_options(kernel PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-Wno-literal-suffix -fno-rtti -fno-exceptions>)
target_compile_options(kernel PUBLIC -fmacro-prefix-map=${CMAKE_CURRENT_SOURCE_DIR}=.)
target_compile_options(kernel PUBLIC -fstack-protector -ffreestanding -Wall -Werror=return-type -Wstack-usage=1024 -fno-omit-frame-pointer -mgeneral-regs-only)
target_compile_options(kernel PUBLIC -fstack-protector -ffreestanding -Wall -Wextra -Werror -Wstack-usage=1024 -fno-omit-frame-pointer -mgeneral-regs-only)
# This might not work with other toolchains
target_compile_options(kernel PUBLIC $<$<COMPILE_LANGUAGE:CXX>:-Wno-invalid-offsetof>)
@ -167,6 +167,8 @@ endif()
target_link_options(kernel PUBLIC -ffreestanding -nostdlib)
set_source_files_properties(${LAI_SOURCES} PROPERTIES COMPILE_FLAGS -Wno-stack-usage)
add_custom_target(kernel-headers
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/lai/include/ ${BANAN_INCLUDE}/

View File

@ -233,6 +233,7 @@ namespace Kernel
virtual BAN::ErrorOr<BAN::UniqPtr<MemoryRegion>> clone(PageTable& new_page_table) override
{
(void)new_page_table;
return BAN::Error::from_errno(ENOTSUP);
}
@ -275,4 +276,4 @@ namespace Kernel
return BAN::UniqPtr<MemoryRegion>(BAN::move(region));
}
}
}

View File

@ -197,7 +197,7 @@ namespace Kernel
LockGuard _(m_lock);
size_t result = first_data_page;
TRY(for_each_indirect_paddr_allocating(m_data_pages, [&] (paddr_t paddr, bool allocated) {
TRY(for_each_indirect_paddr_allocating(m_data_pages, [&] (paddr_t, bool allocated) {
if (allocated)
return BAN::Iteration::Break;
result++;

View File

@ -194,7 +194,7 @@ namespace Kernel
return true;
}
BAN::ErrorOr<BAN::UniqPtr<MemoryRegion>> FileBackedRegion::clone(PageTable& new_page_table)
BAN::ErrorOr<BAN::UniqPtr<MemoryRegion>> FileBackedRegion::clone(PageTable&)
{
ASSERT_NOT_REACHED();
}

View File

@ -289,8 +289,11 @@ static constexpr bool is_power_of_two(size_t value)
return (value & (value - 1)) == 0;
}
void* kmalloc(size_t size, size_t align, bool force_indentity_map)
void* kmalloc(size_t size, size_t align, bool force_identity_map)
{
// currently kmalloc is always identity mapped
(void)force_identity_map;
const kmalloc_info& info = s_kmalloc_info;
ASSERT(is_power_of_two(align));

View File

@ -39,6 +39,8 @@ endforeach()
add_custom_target(userspace)
add_custom_target(userspace-install DEPENDS userspace)
add_subdirectory(aoc2023)
foreach(USERSPACE_PROJECT ${USERSPACE_PROJECTS})
target_compile_options(${USERSPACE_PROJECT} PRIVATE -g)
add_dependencies(${USERSPACE_PROJECT} libc-install ban-install)

View File

@ -0,0 +1,24 @@
cmake_minimum_required(VERSION 3.26)
project(aoc2023 CXX)
set(AOC2023_PROJECTS
day1
)
foreach(AOC2023_PROJECT ${AOC2023_PROJECTS})
add_subdirectory(${AOC2023_PROJECT})
endforeach()
add_custom_target(aoc2023)
add_custom_target(aoc2023-install DEPENDS aoc2023)
foreach(AOC2023_PROJECT ${AOC2023_PROJECTS})
target_compile_options(${AOC2023_PROJECT} PRIVATE -g)
add_dependencies(${AOC2023_PROJECT} libc-install ban-install )
add_dependencies(aoc2023 ${AOC2023_PROJECT})
add_dependencies(aoc2023-install ${AOC2023_PROJECT}-install)
endforeach()
add_dependencies(userspace aoc2023)
add_dependencies(userspace-install aoc2023-install)

View File

@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 3.26)
project(day1 CXX)
set(SOURCES
main.cpp
)
add_executable(day1 ${SOURCES})
target_compile_options(day1 PUBLIC -O2 -g)
target_link_libraries(day1 PUBLIC libc)
add_custom_target(day1-install
COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_BIN}/aoc2023
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/day1 ${BANAN_BIN}/aoc2023/
DEPENDS day1
)

View File

@ -0,0 +1,6 @@
#include <stdio.h>
int main()
{
printf("hello world\n");
}

View File

@ -8,6 +8,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <termios.h>
void initialize_stdio()
{
@ -26,8 +27,13 @@ int main()
bool first = true;
termios termios;
tcgetattr(STDIN_FILENO, &termios);
while (true)
{
tcsetattr(STDIN_FILENO, TCSANOW, &termios);
char name_buffer[128];
while (!first)