Commit Graph

1725 Commits

Author SHA1 Message Date
Bananymous 391fc0c4c2 Kernel: Don't crash if Ext2 filesystem doing too many fileops
I had a hardlimit of 10 block buffers and if they ran out, the kernel
would crash. this patchs increases the number of buffers to 16 and
removes the crash condition when they run out :D
2025-08-28 15:55:40 +03:00
Bananymous 948ef2c820 Kernel: Fix race condition when destroying threads 2025-08-28 15:55:40 +03:00
Bananymous c1b6b6b76a Kernel: Fix string validation in unlink syscall 2025-08-28 15:55:40 +03:00
Bananymous a8bb07052e Kernel: Rewrite SMP message code
Remove locks and map smp buffer as uncached
2025-08-28 15:55:40 +03:00
Bananymous 6976a2dae7 Kernel: Add hardlink support to USTAR
Also handle file types L and K for long file names and link names
2025-08-28 15:55:40 +03:00
Bananymous 51cd951b4c Kernel: Add hardlink support to tmpfs 2025-08-28 15:55:40 +03:00
Bananymous 16a5a234c1 Kernel: Cleanup hardlink creation 2025-08-28 15:55:40 +03:00
Bananymous aaa8760d09 Kernel: Don't wait for ps2 timeout when flushing buffer
This speeds up boot time by a second :dd:
2025-08-28 15:55:40 +03:00
Bananymous cea19ecc31 Kernel: Fix possible crash during exec 2025-08-28 15:55:40 +03:00
Bananymous 706cfeb443 Kernel: Allow file backed mapping be larger than inode size
This is only allowed if the mapping does **not** exceed a page boundary.
Some port was doing an exactly two-page-mapping on a file that was one
and a half page long
2025-08-28 15:55:40 +03:00
Bananymous d9c91589f0 Kernel: Don't limit /tmp max size 2025-08-28 15:55:40 +03:00
Bananymous abbe7b79d6 Kernel: Add /proc/<pid>/exe 2025-08-28 15:55:40 +03:00
Bananymous e4abe75043 Kernel: Add /proc/self 2025-08-28 15:55:40 +03:00
Bananymous 10bd24e585 Kernel: Fix signal delivery without an alternate stack
I had only tested that sigaltstack worked, so I didn't notice my normal
signals broke :D
2025-08-25 22:16:23 +03:00
Bananymous f926e599fa Kernel: Zero initialize Processors
This moves processor array to .bss reducing data size by 8192 bytes :)

This needed GCC updated to 15.2.0 because of an internal compiler error
I found :)
2025-08-25 18:29:14 +03:00
Bananymous a4698f0bde Kernel: Fix IOAPIC max redirection entry fetching
Also max redirection entry is an index, not count so comparisons should
check for equality :)
2025-08-25 17:15:55 +03:00
Bananymous 9a6eae69ba Kernel: Replace all occurances of BSB with BSP 2025-08-25 17:11:32 +03:00
Bananymous 2f3fd6867d Kernel: Add VERY HACKY MAP_FIXED fix
This definitely will break stuff but I don't think anything depends on
this (except maybe dynamic loader)

This WILL get fixed soon (I hope :D)
2025-08-21 03:11:16 +03:00
Bananymous 350ae90bb6 Kernel: Make all futexes shared
Some stuff tries to use shared futexes so make them all shared. Private
futexes would be faster as they are process specific but supporting both
would need some reworks
2025-08-21 02:56:17 +03:00
Bananymous 0dfe0b7023 Kernel/LibC: Implement sigaltstack 2025-08-21 02:52:49 +03:00
Bananymous def236b7cd Kernel/LibC: Implement sigwait 2025-08-20 20:16:19 +03:00
Bananymous 247743ef9c Kernel/LibC: Implement sigsuspend 2025-08-20 20:14:54 +03:00
Bananymous 49122cf729 Kernel: Allow adding signals to thread that are blocked 2025-08-20 18:35:18 +03:00
Bananymous 34bdcb12e5 Kernel: Fix termios and enter key handling
Enter key now produces expected \r which gets converted to \n by default
by the ICRNL input flag.

Also input flags are now handled always, not just when ICANON is set.
I don't know why I though ICANON should disable input handling
2025-08-19 16:23:30 +03:00
Bananymous 6560f229b1 Kernel: Fix PS/2 scancode set 3 numpad keys 2025-08-19 16:23:30 +03:00
Bananymous 32d7f429f8 Kernel: Fix default ignored signals
SIGWINCH and SIGCANCEL ended up interrupting functions even when they
were marked as SIG_DFL. Now resizing the userspace terminal emulator
does not get interrupted!
2025-08-19 16:23:30 +03:00
Bananymous 8b7790ded2 Kernel: Fix userspace pointer checks
Some syscalls were unconditionally validating optional paramenters which
were allowed to be null pointers
2025-08-19 16:23:30 +03:00
Bananymous 3e97a82af0 Kernel: Allow getgroups with size
This can be used to query the number of groups
2025-08-19 16:23:30 +03:00
Bananymous 0066b20413 Kernel: Fix spinlock leaks with unix sockets 2025-08-19 16:23:30 +03:00
Bananymous 9d6656451a LibC: Make time_t signed integer
Some port like python3 assumes this is the case
2025-08-19 16:23:30 +03:00
Bananymous 32f980e259 Kernel: Fix ACPI namespace lookup for multi segment names 2025-08-19 16:23:30 +03:00
Bananymous 0bece8a54c Kernel: Add missing ACPI resource header 2025-08-19 16:23:30 +03:00
Bananymous b6793cc6f2 Kernel: Add AML ConcatResOp 2025-08-15 18:54:17 +03:00
Bananymous 809d07546a Kernel: Remove minimum timeout of 100 ms from epoll
This is not actually needed and was just temporary code to make sure i
notified the epoll everywhere
2025-08-15 18:28:11 +03:00
Bananymous 804cbeb1a7 Kernel: Increment kmalloc storage size to 64 MiB
I really don't want to do this, but rewriting kmalloc to be dynamic
would require me to rewrite 32 bit paging and I really don't want to.
2025-08-15 17:02:15 +03:00
Bananymous c07188a60e Kernel: Look for PS/2 devices in the ACPI namespace
This allows finding the PS/2 controller on newer machines that don't
have the 8042 bit set in FADT.
2025-08-15 17:02:15 +03:00
Bananymous 3804d4332b Kernel: Make _SEG, _BBN and _ADR lookup absolute 2025-08-15 17:02:15 +03:00
Bananymous 064aaef6c3 Kernel: Don't fail on creating reserved opregion 2025-08-15 17:02:15 +03:00
Bananymous ce262a5d2d Kernel: Allow ReturnOp in global scope 2025-08-15 17:02:15 +03:00
Bananymous d128f4d70b Kernel: Fix AML CreateField debug print 2025-08-15 17:02:15 +03:00
Bananymous 46d1ada708 Kernel: Allow AML package->package conversion 2025-08-15 17:02:15 +03:00
Bananymous 2819e5f647 Kernel: Make _STA and _INI lookup absolute 2025-08-15 17:02:15 +03:00
Bananymous c2017a5181 Kernel: Allow looking up devices with multiple eisa ids
Also match against _CIDs in addition to _HID
2025-08-15 17:02:15 +03:00
Bananymous 58ad839136 Kernel: Add support for ACPI Embedded Controllers 2025-08-15 17:02:15 +03:00
Bananymous 8ed5a71c45 Kernel: Register IDT handlers from a vector
This drops code size by a lot :D
2025-08-13 18:27:46 +03:00
Bananymous ef6ee78fd1 Kernel/LibC: Implement chroot 2025-08-11 14:07:37 +03:00
Bananymous 695262624d Kernel: Fix potential UB in AML OpRegion initialization 2025-08-11 03:45:38 +03:00
Bananymous af0bca74e4 Kernel/LibC: Implement {get,set,init}groups
This allows dropping /etc/group parsing from the kernel :D
2025-08-10 19:57:31 +03:00
Bananymous f41e254e35 Kernel: Fix dead lock on process exit 2025-08-10 19:57:31 +03:00
Bananymous 7e472a9c1d Kernel: Fix USB FS device default max packet size
Apparently this is a common non spec compliant issue on many
controllers/devices.

thanks @sasdallas
2025-08-10 19:57:31 +03:00