Commit Graph

1291 Commits

Author SHA1 Message Date
Bananymous 7feb4c4ebd Kernel: VFS::file_from_absolute_path now used root_file() API 2024-09-15 02:38:25 +03:00
Bananymous 2911d1f018 Kernel: Cleanup and fix pseudo terminals 2024-09-15 02:38:07 +03:00
Bananymous d68ad893f0 Kernel/Shell: Add support for delete key 2024-09-14 22:45:48 +03:00
Bananymous 39667de662 Kernel: Fix sizeof check for sys_tc{set,get}attr 2024-09-14 21:17:03 +03:00
Bananymous 8956835d95 Kernel: Make sys_.*at use VFS relative path finding 2024-09-14 21:15:58 +03:00
Bananymous ea4ec2eafc Kernel: Make OpenFileDescrptor store VFS::File instead of inode+path 2024-09-14 20:10:21 +03:00
Bananymous 3a352078de Kernel: Make VirtualFileSystem::File non copyable 2024-09-14 20:09:28 +03:00
Bananymous 6060b39548 Kernel: Implement relative file searching in VFS 2024-09-14 19:44:20 +03:00
Bananymous 2b52ea4c6f Kernel: Make Inode::can_access const 2024-09-14 19:39:41 +03:00
Bananymous b41738b47b Kernel: Fix ACPI name formatting functions 2024-09-14 19:39:13 +03:00
Bananymous 57e76a65a4 Kernel: Null terminate ext2 directory entries
This fixes a weird bug with `ls /bin`
2024-09-12 23:55:34 +03:00
Bananymous 467ac6c365 Kernel/LibC: Implement SOCK_CLOEXEC and SOCK_NONBLOCK
This removes the need for fcntl after creating a socket :)
2024-09-11 21:59:11 +03:00
Bananymous c77ad5fb34 Kernel: Implement copy-on-write memory for file backed `mmap`s 2024-09-11 19:33:50 +03:00
Bananymous 64a3893f6f Kernel: Add command line option to disable AML parsing
This can be handy if my broken AML parser crashes or hangs while parsing
AML :D
2024-09-10 16:20:24 +03:00
Bananymous eabe759ebf Kernel: Don't require APs that are not started to start :D 2024-09-10 16:19:43 +03:00
Bananymous a4838386e6 Kernel: Remove unnecessary branch from uncanonicalizing addresses 2024-09-10 16:19:16 +03:00
Bananymous c65613901f Kernel: Fix AML aliases and package elements 2024-09-10 16:18:42 +03:00
Bananymous de35cec2e1 Kernel: Allow private file mappings past file end
This is just to make memory mapping ELF files easier :D
2024-09-05 14:48:42 +03:00
Bananymous 2f241e1b61 Kernel: Implement FileBackedRegion::clone 2024-09-05 13:59:09 +03:00
Bananymous f30947336a BuildSystem: Cleanup cmake files 2024-09-05 12:52:25 +03:00
Bananymous 1138ec77ca Kernel: Fix MemoryBackedRegion cloning for non page aligned size 2024-09-04 21:14:26 +03:00
Bananymous ddf1babfe1 Kernel: Cleanup constructor calls 2024-08-31 02:23:08 +03:00
Bananymous ef5af384e7 Kernel: Print userspace invalid pointer access address 2024-08-30 15:34:37 +03:00
Bananymous a134d16070 Kernel: Fix MemoryRegion test for contains_fully 2024-08-30 15:33:58 +03:00
Bananymous 827eec6af0 Kernel: Make .rodata read-only and add -orphan-handling=error
I don't really know why .rodata was marked writable :D
2024-08-30 15:33:02 +03:00
Bananymous 8da2f12ba6 Kernel: Only load program headers of interpreter if its present
I was loading program headers of both executable and interpreter but
that is incorrect. The interpreter will itself load the program headers
of the executable.
2024-08-28 21:19:37 +03:00
Bananymous 2bf65ef512 Kernel: Invoke ELF interpreter instead if it is specified 2024-08-28 17:06:32 +03:00
Bananymous d20752c318 Kernel: Make OpenFileDescritorSet::open take rvalue
This gets rid of some implicit allocations from copy constructors
2024-08-28 16:36:10 +03:00
Bananymous 5f66ef34dd Kernel: map userspace arguments after the entry point
This allows cleaner memory layout for processes that are not loaded to
default location
2024-08-27 22:46:08 +03:00
Bananymous da0b4cd40e Kernel: Allow MAP_FIXED in mmap 2024-08-27 22:45:49 +03:00
Bananymous 2c520391eb Kernel/LibC: Add support for init_array and fini_array 2024-08-27 00:47:03 +03:00
Bananymous 7c4b9218f2 Kernel: VirtualTTY now resets ansi state before printing anything 2024-08-25 17:56:06 +03:00
Bananymous 72f8138ca1 Kernel: Disable scheduler load balancing until I get it fixed
Scheduler keeps crashing all the time when running on multiple cores.
This patch disabled the load balancer, which seems to get rid of most
scheduler crashes.
2024-08-25 15:37:17 +03:00
Bananymous 991ae4383a Kernel/LibC: Implement fchmod 2024-08-25 15:07:42 +03:00
Bananymous 2ce7205c80 Kernel: Add command line option to disable debug printing
The whole system can crash when debug output and tty output are done at
the same time. This patch is just a hack to prevent the crash :D
2024-08-25 15:02:15 +03:00
Bananymous fb35f06cf5 Kernel: Add better support for bootloaders loading the kernel
Before I assumed that bootloaders loaded the kernel at physical address
0, but this patch kinda allows loading to different addresses. This
still doesn't fully work as kernel bootstrap paging relies on kernel
being loaded at 0
2024-08-22 14:48:21 +03:00
Bananymous abc788c756 Kernel: Improve output message when dumping all syscalls 2024-08-22 14:48:21 +03:00
Bananymous 63b616dc2e Kernel: Hack non-blocking support for sockets
This is not thread safe and can still block if two programs refering to
the same socket try to read data at the same time
2024-08-22 14:48:14 +03:00
Bananymous cba12efeb1 Kernel: Ignore optional_actions in SYS_TCSETATTR
Currently all terminals are syncronous, so the actions don't do anything
2024-08-22 14:47:54 +03:00
Bananymous 37cd4ed504 Kernel: Add support for CSI @, b, d to VirtualTerminal 2024-08-22 14:04:45 +03:00
Bananymous 869bba4dad Kernel: Add check for panic in timer interrupt handler
Previously processors would not get notified about kernel panic if they
were idling
2024-08-22 14:03:03 +03:00
Bananymous 23194d1f53 Kernel: Implement basic random device to /dev/random 2024-08-22 14:02:26 +03:00
Bananymous 969563c06a Kernel: Don't load AP init code to 0xF000, but relocate it later
This cleans up the kernel executable as bootloaders don't have to
load AP init code straight to 0xF000, but it will be moved there once
kernel is doing the AP initialization.
2024-08-21 13:37:50 +03:00
Bananymous 066e8e1cc2 Kernel: Remove unnecessary debug logging from VFS initialization 2024-08-18 20:51:10 +03:00
Bananymous 5cd7b40165 Kernel: Make BananBootloader info struct header compatible with C 2024-08-18 20:51:10 +03:00
Bananymous c7b134ba4b Kernel: Fix NVMe controller namespace numbering
namespace numbers were incrementing globally instead of per controller.
This led to two single namespace controllers creating nvme0n1 and
nvme1n2
2024-08-18 20:51:10 +03:00
Bananymous ff62c262fe Kernel: Fix PS/2 scancode set 2 keycodes for the bottom row keys 2024-08-18 20:51:10 +03:00
Bananymous 42e2c15e0c Kernel: Add ps2=<scancode set> command line argument
This allows forcing specific scancode set on broken PS/2 emulations
2024-08-18 20:51:10 +03:00
Bananymous 40c6989374 Kernel: Implement AML ObjectTypeOp 2024-08-18 20:51:10 +03:00
Bananymous 71dc373610 Kernel: "Fix" AML _OSI string to return true for windows strings
This is the way its supposed to be done as other code paths are
untested...
2024-08-18 20:51:10 +03:00