1109 Commits

Author SHA1 Message Date
EnderIce2
19f2a78d35
linux: Move everything to ./subsystem/linux/* 2024-11-20 03:49:15 +02:00
EnderIce2
a96086c432
exec: Correctly align memory using .p_align 2024-11-19 05:10:38 +02:00
EnderIce2
7b054050c7
tasking: Do not free tty
It took only 2 months to figure it out that this was causing unexpected crashes... lol
2024-11-19 05:05:41 +02:00
EnderIce2
4d192732cc
tasking: Check for null pointer first 2024-11-19 04:33:47 +02:00
EnderIce2
3709683af8
linux: Add stub madvise() syscall 2024-11-18 04:10:27 +02:00
EnderIce2
3a68b28c13
memory: Add more debug messages for CoW related functions 2024-11-18 04:07:08 +02:00
EnderIce2
9f34bd0192
linux: Fix debug messages for syscalls 2024-11-18 04:06:41 +02:00
EnderIce2
4012a5d9e5
memory: Remove annoying and useless messages in Unmap() 2024-11-18 04:06:03 +02:00
EnderIce2
9c61c71c57
memory: Fix memory mapping in KernelPageTable
The MapFromZero() function didn't actually mapped the entire available memory.
This function now uses memory entries as hints of what and where to map.
2024-11-18 03:49:11 +02:00
EnderIce2
21faaf6ea1
interrupts: Switch page table in MainInterruptHandler() 2024-11-18 03:38:24 +02:00
EnderIce2
23301b8c1b
memory: Kernel threads require more memory for stack
Threads will now use 128 KiB
2024-11-18 03:27:06 +02:00
EnderIce2
86a119ea51
scheduler: Fix page table switch for scheduler
The userspace process may map pages where the kernel has allocated data and cause a crash.

This patch fixes this issue by having a separate IRQ handler which sets the kernel page table at the start of SchedulerInterruptHandler() and restores it in SchedulerHandlerStub() function.
2024-11-17 03:11:20 +02:00
EnderIce2
079055082a
panic: Check if CurrentProcess & CurrentThread are valid before showing info 2024-11-16 04:42:20 +02:00
EnderIce2
4bc4e9b76f
stl: Implement coroutines 2024-11-15 01:54:21 +02:00
EnderIce2
1ab4ace23c
stl: Update headers
type_traits: Add is_integral
optional: Add stub optional class
iterator: Add default_sentinel_t & default_sentinel
concepts: Add concepts header + integral concept
2024-11-15 01:34:34 +02:00
EnderIce2
ef1c5bb39e
panic: Add stub code for UHCI, EHCI & XHCI controllers 2024-11-10 16:30:43 +02:00
EnderIce2
a211280891
chore: Update vscode debug configurations 2024-11-08 02:31:36 +02:00
EnderIce2
393c8ba4cb
chore: Update vscode boilerplates 2024-11-08 02:30:57 +02:00
EnderIce2
6dc734bb0b
interrupts: Update MainInterruptHandler 2024-10-30 03:07:47 +02:00
EnderIce2
ab6529f6e6
memory: Add kernel stack manager 2024-10-30 02:28:49 +02:00
EnderIce2
99292467ed
task: Remove redundant code
NewLock(SchedulerLock);
2024-10-26 03:54:46 +03:00
EnderIce2
29896bb0a4
memory: Refactor SwapPT class 2024-10-26 03:25:36 +03:00
EnderIce2
b6006e379d
panic: Refactor PS/2 keyboard initialization code 2024-10-26 03:24:29 +03:00
EnderIce2
462907828d
linux: Remove redundant SwapPT in linux_getrandom() 2024-10-25 01:00:58 +03:00
EnderIce2
c0df0291eb
kshell: Check for absolute path 2024-10-22 05:27:43 +03:00
EnderIce2
032b8acca0
kshell: Fix search for binaries in /usr/bin/ 2024-10-21 02:59:55 +03:00
EnderIce2
8b442d14e3
linux: Implement vfork() syscall 2024-10-20 03:02:09 +03:00
EnderIce2
0edd84c8a8
linux: Disable stack protector for __LinuxForkReturn() 2024-10-20 03:01:30 +03:00
EnderIce2
f57ad7fc81
task: Implement new process state
Added "Frozen" for vfork implementation.
2024-10-20 03:00:34 +03:00
EnderIce2
53360c10e2
linux: Fix code style in linux_execve() function 2024-10-19 01:52:25 +03:00
EnderIce2
d9517a5cab
api: Add documentation to RingBuffer class 2024-10-19 01:44:48 +03:00
EnderIce2
88c87172ba
vt: Fix incorrect buffer read size in VirtualTerminal
Resolved an issue in VirtualTerminal::Read where the size of the report buffer was incorrectly set to sizeof(report), causing multiple unintended reads.
2024-10-19 01:31:42 +03:00
EnderIce2
6657a90739
core: Simplified interrupt event check logic in MainInterruptHandler 2024-10-19 01:29:27 +03:00
EnderIce2
5054243bc6
linux: Implement sched_setaffinity() and sched_getaffinity() syscalls 2024-10-16 16:50:15 +03:00
EnderIce2
8dc6edac4a
linux: Implement getdents64() syscall 2024-10-16 02:12:15 +03:00
EnderIce2
547ae94f80
linux: Add more debug messages for newfstatat syscall 2024-10-16 02:11:36 +03:00
EnderIce2
acabadaaab
linux: Correct struct linux_dirent64 variables 2024-10-16 02:10:34 +03:00
EnderIce2
f624339dff
fs: Fix ustar ReadDir() wrong d_type 2024-10-16 01:50:49 +03:00
EnderIce2
fa31ade889
linux: Fix newfstatat() syscall 2024-10-16 00:12:24 +03:00
EnderIce2
beca151fa6
std: Remove pragma "STDC FENV_ACCESS"
This pragma was ignored anyway
2024-10-15 04:05:07 +03:00
EnderIce2
d23ab8f476
kshell: Add more debug messages 2024-10-15 04:02:36 +03:00
EnderIce2
b13fe4a28f
std: Fix potential Use-After-Free vulnerability in std::string 2024-10-15 03:59:26 +03:00
EnderIce2
b31d49be15
std: Fix std::string push_back()
Allocate 2 bytes if cap == 0, not 1.
2024-10-15 03:58:17 +03:00
EnderIce2
ccb2cdde55
linux: Implement fchdir() syscall 2024-10-13 15:48:57 +03:00
EnderIce2
ea9aa8c674
kshell: Update error messages 2024-10-13 15:15:32 +03:00
EnderIce2
a2e9747ee8
driver: Check if process has an associated terminal
Return ENOTTY if thisProcess->tty is null for any operation.
2024-10-13 14:58:29 +03:00
EnderIce2
396ad681ba
tty: Fix kcon & tty implementation; Add stub ptmx 2024-10-13 13:00:22 +03:00
EnderIce2
f48032658f
vfs: Fix GetRoot(), CacheRecursiveSearch() and root identifier 2024-10-13 02:33:46 +03:00
EnderIce2
850b8ec490
std: Add TIOCGSID macro 2024-10-13 02:30:38 +03:00
EnderIce2
7cf35ec984
api: Add "KernelData" variable inside Inode structure 2024-10-13 02:30:13 +03:00