Bananymous 
							
						 
						
							
								cd5b351ce4 
								
							 
						 
						
							
							
								
								Kernel: Fix fchmodat mode handling  
							
							... 
							
							
							
							Ignore file type bits instead of returning EINVAL if they are set 
							
						 
						
							2025-05-29 03:24:31 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4d4fb3b6ec 
								
							 
						 
						
							
							
								
								Kernel: Cleanup and fix pipe  
							
							... 
							
							
							
							pipe now sends SIGPIPE and returns EPIPE when writing and no readers are
open 
							
						 
						
							2025-05-29 01:02:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								89c9bfd052 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `socketpair` for UNIX sockets  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								12b93567f7 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `getpeername`  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2f37776614 
								
							 
						 
						
							
							
								
								Kernel: Notify epoll on new TCP connections  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f778bca3f2 
								
							 
						 
						
							
							
								
								Kernel: Remove accidentally commited debug code :)  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a945d19750 
								
							 
						 
						
							
							
								
								Kernel: Partially fix PCI PIN interrupt routing  
							
							... 
							
							
							
							Don't fail early if the first device is not the one we are looking for 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7f04b2c96c 
								
							 
						 
						
							
							
								
								Kernel: Fix E1000 interrupt handling  
							
							... 
							
							
							
							E1000 does not support MSI-X and thus does not generate RxQ0 interrupts. 
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								79a2b84c81 
								
							 
						 
						
							
							
								
								Kernel: Fix process exit when there are multiple threads  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								44b762f916 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pwrite and make pread non-locking  
							
							
							
						 
						
							2025-05-28 03:10:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6be3b1d7f2 
								
							 
						 
						
							
							
								
								commit from banan-os :D  
							
							
							
						 
						
							2025-05-27 23:57:43 +00:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0e0d7016b3 
								
							 
						 
						
							
							
								
								Kernel: Rename has_hangup -> has_hungup  
							
							
							
						 
						
							2025-05-17 12:39:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								553c76ab0f 
								
							 
						 
						
							
							
								
								Kernel: Add locking to inode's epoll list  
							
							... 
							
							
							
							This was prone to crashing :) 
							
						 
						
							2025-05-17 12:36:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d1bb72f6fb 
								
							 
						 
						
							
							
								
								Kernel: Don't allow CPU load printing underflow  
							
							
							
						 
						
							2025-05-13 10:19:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1bcd1edbf5 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement basic epoll  
							
							... 
							
							
							
							This implementation is on top of inodes instead of fds as linux does it.
If I start finding ports/software that relies on epoll allowing
duplicate inodes, I will do what linux does.
I'm probably missing multiple epoll_notify's which may cause hangs but
the system seems to work fine :dd: 
							
						 
						
							2025-05-13 10:18:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								143a00626b 
								
							 
						 
						
							
							
								
								Kernel: Fix fork cmdline copying and copy environ  
							
							
							
						 
						
							2025-05-13 10:16:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0eb981f51c 
								
							 
						 
						
							
							
								
								Kernel: Fix Random.h includes  
							
							
							
						 
						
							2025-05-13 10:16:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6cc01349f7 
								
							 
						 
						
							
							
								
								Kernel: Fix unblocking recv through read  
							
							
							
						 
						
							2025-05-13 10:16:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a7bd4acd46 
								
							 
						 
						
							
							
								
								Kernel: Remove static variables from virtual tty  
							
							
							
						 
						
							2025-05-13 10:16:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8e0a56b49a 
								
							 
						 
						
							
							
								
								Kernel: Implement loopback network interface  
							
							
							
						 
						
							2025-05-13 10:16:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								96496da0ab 
								
							 
						 
						
							
							
								
								Kernel: Allow USB mouse to send extra2 button events  
							
							
							
						 
						
							2025-05-05 22:32:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								592675022e 
								
							 
						 
						
							
							
								
								Kernel: Allow tcgetpgrp on pseudo terminal masters  
							
							
							
						 
						
							2025-05-05 19:09:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b2e10d7e6e 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary locks  
							
							
							
						 
						
							2025-05-05 19:08:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9ff9d679e9 
								
							 
						 
						
							
							
								
								Kernel: Fix text mode cursor  
							
							... 
							
							
							
							Apparently text mode renders cursor in the *foreground* color. My
current clear function used the same color for foreground and background
making the cursor effectively invisible.
Also cursor hiding is now done by moving the cursor off bounds (0, height)
some website I read said this to be valid even on VGA compatible cards
without disable bit.
http://www.osdever.net/FreeVGA/vga/textcur.htm  
							
						 
						
							2025-04-25 02:31:33 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9f3f8f950a 
								
							 
						 
						
							
							
								
								Kernel: Add better panic message for failed shutdown  
							
							... 
							
							
							
							ACPI shutdown does not work on the web emulator and running `poweroff`
crashes on `ASSERT_NOT_REACHED()`. 
							
						 
						
							2025-04-25 01:52:33 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								418678466c 
								
							 
						 
						
							
							
								
								Kernel: Fix text mode palette  
							
							... 
							
							
							
							ANSI and text mode color indices are not in the same order 
							
						 
						
							2025-04-23 23:07:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9f4cb5c4dd 
								
							 
						 
						
							
							
								
								Kernel: Make pseudo terminals not overwrite old data  
							
							... 
							
							
							
							If pseudo terminal buffer was filled, old implementation would overwrite
old data. This is bad if producer is capable of producing more data than
consumer can handle. 
							
						 
						
							2025-04-23 22:03:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a8edb8870e 
								
							 
						 
						
							
							
								
								Kernel: Add support for 8bit and 24bit ANSI SGR  
							
							
							
						 
						
							2025-04-23 22:03:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								dabc3c6cc4 
								
							 
						 
						
							
							
								
								Kernel: Don't wrap cursor immediatly at cols()  
							
							... 
							
							
							
							This prevents unwanted scrolling when writing to bottom right cell 
							
						 
						
							2025-04-23 22:03:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cc7c1ad30d 
								
							 
						 
						
							
							
								
								Kernel: Add per terminal palette for TerminalDriver  
							
							... 
							
							
							
							This allows better color approximation on text mode and in future will
allow user to possibly change the palette 
							
						 
						
							2025-04-23 18:44:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								35b3c3c98c 
								
							 
						 
						
							
							
								
								Kernel: Fix scheduler load balancing  
							
							... 
							
							
							
							I was not updating the current queue of the thread which lead to blocked
threads think they were in run queue 
							
						 
						
							2025-04-23 08:09:51 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								20e17a28cf 
								
							 
						 
						
							
							
								
								Kernel: Fix \b handling  
							
							... 
							
							
							
							Don't clear the character, only move cursor backwards 
							
						 
						
							2025-04-23 06:33:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								28bf2d6374 
								
							 
						 
						
							
							
								
								Kernel/Terminal: Add support for ANSI DSR  
							
							
							
						 
						
							2025-04-23 06:14:56 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8a00b53050 
								
							 
						 
						
							
							
								
								Kernel/Terminal: Fix ANSI SGR m for multiple values  
							
							
							
						 
						
							2025-04-23 05:29:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b853d29992 
								
							 
						 
						
							
							
								
								Kernel: Fix unix domain socket close detection  
							
							
							
						 
						
							2025-04-22 08:36:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f8e3ae0525 
								
							 
						 
						
							
							
								
								Kernel: Fix deadlock caused by multithreading  
							
							... 
							
							
							
							This allows multiple threads to concurrently call the most common
blocking syscalls:
- read
- write
- accept
- connect
- sendto
- recv
- pselect
This prevents a dead lock when for example process is waiting on a pipe,
but unable to write to it since process is locked.
This is the beginning of starting to remove processes own lock from
syscall and locking only necessary parts. 
							
						 
						
							2025-04-22 04:51:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c790bad667 
								
							 
						 
						
							
							
								
								Kernel: Make OpenFileDescriptorSet thread safe  
							
							... 
							
							
							
							Also this allows concurrent calling of read/write/send/recv 
							
						 
						
							2025-04-22 04:31:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d54489bbcb 
								
							 
						 
						
							
							
								
								Kernel: Implement MemoryRegion pinning  
							
							... 
							
							
							
							This allows process to pin a MemoryRegion into users memory space for
syscall duration without allowing user to munmap the region. 
							
						 
						
							2025-04-22 04:30:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								808c97020a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement SA_RESTART  
							
							... 
							
							
							
							I have been thinking how to do this for a long time but I finally
figured out a semi-clean way 
							
						 
						
							2025-04-22 02:42:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								107b31a0b5 
								
							 
						 
						
							
							
								
								Kernel: Fix E1000{,E} driver for older qemu versions  
							
							... 
							
							
							
							This patch adds clearing of *Interrupt Cause Registers*, which allows
older qemu versions to send new interrupts. Apparently this is not
needed on newer releases. 
							
						 
						
							2025-04-22 00:31:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c44d24b76 
								
							 
						 
						
							
							
								
								Kernel: Fix TCP closing state machine  
							
							
							
						 
						
							2025-04-21 20:02:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								99fc7817c6 
								
							 
						 
						
							
							
								
								Kernel: Cleanup stack alignment assembly  
							
							
							
						 
						
							2025-04-20 16:55:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								252784ff5b 
								
							 
						 
						
							
							
								
								Kernel: Preserve kernel command line on fork  
							
							
							
						 
						
							2025-04-19 21:29:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6f9dc2a9b8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `fchdir`, cleanup `chdir` and `getcwd`  
							
							
							
						 
						
							2025-04-19 21:28:31 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								201d752850 
								
							 
						 
						
							
							
								
								Kernel: Allow pipe to write partial data  
							
							... 
							
							
							
							This allows potential blocking 
							
						 
						
							2025-04-19 00:39:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								63b3d9875d 
								
							 
						 
						
							
							
								
								Kernel: Fix `Thread::block_with_eintr*` functions  
							
							... 
							
							
							
							I was using wrong block function, `block_with_timeout` instead of
`block_with_wake_time`. This caused functions to block way too long and
caused a lot of hangs. 
							
						 
						
							2025-04-19 00:39:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								85505b0482 
								
							 
						 
						
							
							
								
								Kernel: Fix ANSI SGR color invert  
							
							
							
						 
						
							2025-04-18 17:31:46 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								703c1a485c 
								
							 
						 
						
							
							
								
								Kernel: Fix Ext2 bug for big files  
							
							... 
							
							
							
							My ext2 implementation was reading wrong blocks for very big block
indices. 
							
						 
						
							2025-04-18 04:17:31 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9258c73484 
								
							 
						 
						
							
							
								
								Kernel: Optimize VTTY cursor rendering  
							
							... 
							
							
							
							cursor is now only updated once after all consecutive `putchar`s are
handled. 
							
						 
						
							2025-04-18 03:55:56 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6858546ce9 
								
							 
						 
						
							
							
								
								Kernel: Fix rendering bugs with framebuffer cursor  
							
							
							
						 
						
							2025-04-18 03:54:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7c6966a9c4 
								
							 
						 
						
							
							
								
								Kernel: Add support for text mode terminal  
							
							... 
							
							
							
							This probably won't be used at all but it was so simple and made me do
really nice refactorings so i decided to add it :) 
							
						 
						
							2025-04-18 02:45:06 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								40d1d20cd6 
								
							 
						 
						
							
							
								
								Kernel: Move cursor handling from TTY -> TerminalDriver  
							
							
							
						 
						
							2025-04-18 02:43:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c0942d78cb 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY ANSI ? handling  
							
							
							
						 
						
							2025-04-18 02:42:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cef8779bf7 
								
							 
						 
						
							
							
								
								Kernel: Improve error handling when setting TTY font  
							
							
							
						 
						
							2025-04-18 02:42:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d6667844de 
								
							 
						 
						
							
							
								
								Kernel: Fix fcntl F_SETFL and masking  
							
							
							
						 
						
							2025-04-18 02:37:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4cdf218145 
								
							 
						 
						
							
							
								
								Kernel: Don't allow opening file with path ""  
							
							
							
						 
						
							2025-04-18 02:37:16 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								994713d04c 
								
							 
						 
						
							
							
								
								Kernel: Implement  FramebufferDevice::get_pixel()  
							
							
							
						 
						
							2025-04-18 02:35:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								554b13ac50 
								
							 
						 
						
							
							
								
								Kernel: Restructure terminal initialization  
							
							... 
							
							
							
							This is still very ugly and will be rewritten in the future :D 
							
						 
						
							2025-04-18 01:19:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								439fb57d88 
								
							 
						 
						
							
							
								
								Kernel: Fix ANSI CSI @ and b for VirtualTTY  
							
							
							
						 
						
							2025-04-17 23:24:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ac90800c3c 
								
							 
						 
						
							
							
								
								Kernel/LibC/DynamicLoader: Implement thread local storage  
							
							... 
							
							
							
							For some reason this does not work on 32 bit version, so it is disabled
on that platform. I'll have to look into it later to find the bug :) 
							
						 
						
							2025-04-15 23:33:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								08f5833ca8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pthread_attr_init  
							
							
							
						 
						
							2025-04-15 23:31:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4bcd3ed86f 
								
							 
						 
						
							
							
								
								Kernel: Start working on TLS, add SYS_{SET,GET}_TLS  
							
							
							
						 
						
							2025-04-15 23:31:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a933fabb86 
								
							 
						 
						
							
							
								
								Kernel: Define constant USERSPACE_END  
							
							... 
							
							
							
							This should be used for userspace generic allocations. Currently I used
KERNEL_OFFSET, but I want to limit userspace to the actual lower half of
the address space 
							
						 
						
							2025-04-15 23:31:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								36baf7b0af 
								
							 
						 
						
							
							
								
								Kernel/LibC/DynamicLoader: Update process start ABI  
							
							... 
							
							
							
							We now use SysV abi for process startup 
							
						 
						
							2025-04-15 23:05:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4b1c20fa36 
								
							 
						 
						
							
							
								
								Kernel: Make SYS_{,P}READ work with count == 0  
							
							
							
						 
						
							2025-04-15 21:36:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								00015285ab 
								
							 
						 
						
							
							
								
								Kernel: Add vaddr->paddr getter to VirtualRange  
							
							
							
						 
						
							2025-04-15 21:25:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0f936fc163 
								
							 
						 
						
							
							
								
								Kernel: Cleanup 32 bit interrupt stack alignment  
							
							
							
						 
						
							2025-04-15 21:21:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								15045cc486 
								
							 
						 
						
							
							
								
								Kernel: Make nonblocking sockets unblocking :)  
							
							
							
						 
						
							2025-04-05 18:42:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c9132d984b 
								
							 
						 
						
							
							
								
								Kernel: Fix TCP window scaling  
							
							
							
						 
						
							2025-04-05 18:40:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a0123e7c2d 
								
							 
						 
						
							
							
								
								Kernel: save and load sse context in more spaces  
							
							
							
						 
						
							2025-04-02 12:58:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								be786be67d 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pthread_join  
							
							
							
						 
						
							2025-04-02 12:58:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9066e62a97 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement sched_yield  
							
							
							
						 
						
							2025-04-02 12:58:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5549696c3a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pthread_self  
							
							
							
						 
						
							2025-04-02 02:39:29 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9fb161c320 
								
							 
						 
						
							
							
								
								Kernel: Move thread stacks 1 MiB back  
							
							
							
						 
						
							2025-04-01 23:26:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c1618e2b5d 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add basic support for pthread_{create,exit}  
							
							
							
						 
						
							2025-04-01 23:26:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								36026d4ec6 
								
							 
						 
						
							
							
								
								Kernel: Cleanup TCP and add basic window scaling support  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								96767f5ca8 
								
							 
						 
						
							
							
								
								Kernel: Implement PCI interrupt routing  
							
							... 
							
							
							
							This does not really work but I have no idea what I'm doing wrong 
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								76bad31dd5 
								
							 
						 
						
							
							
								
								Kernel: Reorder locking with VirtualRange  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2e3b917192 
								
							 
						 
						
							
							
								
								Kernel: Cleanup PS2 mouse button event generation  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								95f262b3e6 
								
							 
						 
						
							
							
								
								Kernel: Print process pid through /dev/debug  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								aebacb6b6a 
								
							 
						 
						
							
							
								
								Kernel: Bypass PS2 detection if scancode set is forced  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								27613da5ea 
								
							 
						 
						
							
							
								
								Kernel: Route PCI Interrupt Link Device interrupts  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								28ac6c2267 
								
							 
						 
						
							
							
								
								Kernel: Implement AML FindSet{Left,Right}Bit  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c1fc65c7c 
								
							 
						 
						
							
							
								
								Kernel: Add API to reserve GSI instead of irq  
							
							... 
							
							
							
							This also fixes a bug with IOAPIC gsi_base != 0 
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ba74b352bd 
								
							 
						 
						
							
							
								
								Kernel: Make BufferField actually access the buffer and not copy  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0474ac4262 
								
							 
						 
						
							
							
								
								Kernel: Expose ACPI resolve_package_element to outside  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								aba49cc93f 
								
							 
						 
						
							
							
								
								Kernel: Add API to get ACPI reference paths  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b3b5b40163 
								
							 
						 
						
							
							
								
								Kernel: Add _OS an _REV to ACPI namespace  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0e085b30cc 
								
							 
						 
						
							
							
								
								Kernel: ACPI add easier API for calling methods with arguments  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								35149b6960 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions to create AML String and Buffer  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3800d5420e 
								
							 
						 
						
							
							
								
								Kernel: Collect created AML nodes in add_{named,alias}...  
							
							... 
							
							
							
							This makes it harder to miss adding scoped objects. Before I was not
deleting all types of nodes on method return 
							
						 
						
							2025-04-01 23:09:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b145c1ab64 
								
							 
						 
						
							
							
								
								Kernel: Add easier api for evaluating ACPI nodes  
							
							
							
						 
						
							2025-04-01 23:09:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b8a3439219 
								
							 
						 
						
							
							
								
								Kernel: Add getter for ACPI namespace  
							
							
							
						 
						
							2025-04-01 23:09:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								83c66901f8 
								
							 
						 
						
							
							
								
								Kernel: Fix reboot when ACPI is disabled  
							
							... 
							
							
							
							If ACPI was disabled ACPI::reset() would page fault when accessing
namespace instead of checking wheter namespace is initialized :D 
							
						 
						
							2025-02-11 21:53:20 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								088f77a226 
								
							 
						 
						
							
							
								
								Kernel: Add super basic support for USB keyboard LEDs  
							
							... 
							
							
							
							This is very hacky but it seems to mostly work. Also for some reason
this fixed my Razer Mamba mouse???? 
							
						 
						
							2025-02-11 02:18:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4dd6c85df2 
								
							 
						 
						
							
							
								
								Kernel: Fix USB keyboard Scroll lock  
							
							... 
							
							
							
							I was using 8 bit modifier and ScrollLock bit does not fit this. Also I
was not generating ScrollLock keypresses 
							
						 
						
							2025-02-11 02:16:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d0452a3510 
								
							 
						 
						
							
							
								
								Kernel: Fix xHCI controller destruction  
							
							... 
							
							
							
							Port updater task was not actually able to exit without a kernel panic.
This patch makes controller wait until port updater exits itself :D 
							
						 
						
							2025-02-10 22:58:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								11310e7615 
								
							 
						 
						
							
							
								
								Kernel: Don't manually clear xHCI interrupt flag if using MSI  
							
							
							
						 
						
							2025-02-10 22:58:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								22b32a0fe5 
								
							 
						 
						
							
							
								
								Kernel: Expose PCI interrupt mechanism from PCIDevice  
							
							
							
						 
						
							2025-02-10 22:57:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ad143c184f 
								
							 
						 
						
							
							
								
								Kernel: Add basic support for USB hubs  
							
							... 
							
							
							
							This is still buggy and some hubs lead to usb transaction errors. I'll
have to debug this but this shouldn't prevent any already working device
from working 
							
						 
						
							2025-02-10 22:56:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								803a4cd163 
								
							 
						 
						
							
							
								
								Kernel: Don't enable ACPI devices when ACPI is disabled  
							
							... 
							
							
							
							This really didn't make any sense. There are no ACPI device to be
initialized when AML is not parsed :D 
							
						 
						
							2025-02-07 21:35:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								267fdf9fa1 
								
							 
						 
						
							
							
								
								Kernel: Remove storage devices after unplugging them  
							
							
							
						 
						
							2025-02-07 18:04:54 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								26d2a4420e 
								
							 
						 
						
							
							
								
								Kernel: Don't limit xHCI TRB transfer length to max packet size  
							
							... 
							
							
							
							This made no sense and just used a ton of TRBs.
This patch also fixes some incorrectly set flags in data/status stage
TRBs. 
							
						 
						
							2025-02-06 23:18:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c623ad7da0 
								
							 
						 
						
							
							
								
								Kernel: Use correct USB endpoint field to determine interval  
							
							... 
							
							
							
							I was using the wrong endpoint descriptor field which caused intervals
to be messed up. 
							
						 
						
							2025-02-06 23:18:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7de689055c 
								
							 
						 
						
							
							
								
								Kernel: Pass xHCI device information in structs  
							
							... 
							
							
							
							This makes code more readable and extendable 
							
						 
						
							2025-02-06 23:18:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								63b15a8855 
								
							 
						 
						
							
							
								
								Kernel: Rename USB initialize_endpoint -> configure_endpoint  
							
							... 
							
							
							
							This makes more sense as the USB command is CONFIGURE_ENDPOINT
Also configure_endpoint can be called multiple times on the same
endpoint. There was no reason to limit this to only one call. 
							
						 
						
							2025-02-06 22:10:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a2a7302964 
								
							 
						 
						
							
							
								
								Kernel: Make sure USB class driver is deinitialized before xhci device  
							
							
							
						 
						
							2025-02-06 22:00:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6a5367dbe3 
								
							 
						 
						
							
							
								
								Kernel: Don't initialize USB alternate interfaces  
							
							
							
						 
						
							2025-02-06 21:43:15 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6768a18475 
								
							 
						 
						
							
							
								
								Kernel: Don't parse xHCI custom slot_types  
							
							... 
							
							
							
							xHCI spec mandates that slot_type for USB protocol is 0. 
							
						 
						
							2025-02-06 21:41:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								242ed4a3c2 
								
							 
						 
						
							
							
								
								Kernel: Remove support for custom xHCI speed_ids  
							
							... 
							
							
							
							This gets really weird with hubs and I don't think even linux handles
them. 
							
						 
						
							2025-02-06 21:38:30 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f9b70d1b5b 
								
							 
						 
						
							
							
								
								Kernel: Don't enter infinite loop on unexpected serial behaviour  
							
							
							
						 
						
							2025-02-06 20:59:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								faa5252191 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY ANSI CSI m and prevent crash :)  
							
							
							
						 
						
							2025-02-06 20:58:03 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b30a79c7fe 
								
							 
						 
						
							
							
								
								Kernel: Temporary hack to "fix" munmap  
							
							... 
							
							
							
							My current munmap implementation does not support partial unmaps and
GCC relies on this behaviour. This patch removes unmapping if the
address and len does not fully contain the mmap region. 
							
						 
						
							2025-02-01 22:25:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d1c3d3d5aa 
								
							 
						 
						
							
							
								
								Kernel: Fix ANSI CSI L  
							
							... 
							
							
							
							With my new memcpy implementation this crashed. I have no idea how this
was not crashing before :D 
							
						 
						
							2025-01-28 18:41:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5938cc4086 
								
							 
						 
						
							
							
								
								Kernel: Support pselect sigmask  
							
							
							
						 
						
							2025-01-28 17:17:59 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7c57d736c6 
								
							 
						 
						
							
							
								
								Kernel/LibC: Fix dirent functions  
							
							... 
							
							
							
							dirent functions used to fail if a directory contained more than 128
files :D 
							
						 
						
							2025-01-28 17:15:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cbe3f2a4ac 
								
							 
						 
						
							
							
								
								BuildSystem: Cleanup and fix cmake files  
							
							... 
							
							
							
							I now set library SONAME so i don't have to build them in build root.
Creating font now makes sure the install directory exists. This allows
building using make files.
LibC now links agains ligcc 
							
						 
						
							2025-01-28 17:11:21 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7a10e0e347 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpFS inode linking  
							
							... 
							
							
							
							TmpFS now looks for empty entries in directories instead of always
appending files to the end of directories. This makes kernel not crash
after process pid 126 is created :D 
							
						 
						
							2025-01-28 17:06:35 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cbcb9f9044 
								
							 
						 
						
							
							
								
								Kernel: Warn on unsupport `clock_gettime` `clock_id`s  
							
							
							
						 
						
							2025-01-25 17:31:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2a16a67aed 
								
							 
						 
						
							
							
								
								Kernel: Ignore SA_RESTART flag on sigaction  
							
							... 
							
							
							
							This is a big hack but a lot of ports set this flag. This seems really
annoying to implement properly 
							
						 
						
							2025-01-24 19:34:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ee078fc638 
								
							 
						 
						
							
							
								
								Kernel: Fix fd status/descriptor flag handling  
							
							... 
							
							
							
							I was not sharing status and offset on fork and I was sharing descriptor
flags on dup/dup2 
							
						 
						
							2025-01-17 20:12:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9893c90e74 
								
							 
						 
						
							
							
								
								Kernel: Remove SYS_DUP and implement it using fcntl F_DUPFD  
							
							
							
						 
						
							2025-01-17 19:29:47 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								82978da5e3 
								
							 
						 
						
							
							
								
								Kernel: Cleanup AML code  
							
							
							
						 
						
							2025-01-17 16:20:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								80ce9d546a 
								
							 
						 
						
							
							
								
								Kernel: Don't error out on SYS_WAIT with W{CONTINUED,UNTRACED}  
							
							... 
							
							
							
							As I don't support stopping and continuing processes these flags are
effecively no-ops 
							
						 
						
							2025-01-17 16:14:52 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								34775633b2 
								
							 
						 
						
							
							
								
								Kernel: Clear DF on every interrupt handler  
							
							... 
							
							
							
							I was missing this and it lead to UB with my new mem* functions that
were implemented with `rep` 
							
						 
						
							2025-01-17 16:11:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								03b5c8e76e 
								
							 
						 
						
							
							
								
								Kernel: Fix disk caching when `readonly` is specified  
							
							
							
						 
						
							2025-01-16 16:16:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								609067cefa 
								
							 
						 
						
							
							
								
								Kernel: Cleanup internal CPUID functions declarations  
							
							
							
						 
						
							2025-01-14 22:57:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9d497ad311 
								
							 
						 
						
							
							
								
								Kernel: Cleanup interrupt stub definitions  
							
							
							
						 
						
							2025-01-14 22:55:06 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ebecbb69ec 
								
							 
						 
						
							
							
								
								LibC: Implement some mem* and str* functions in assembly  
							
							... 
							
							
							
							This made them a lot faster on modern cpus with optimized rep stos and
rep movs 
							
						 
						
							2025-01-14 22:50:46 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b129bab81a 
								
							 
						 
						
							
							
								
								Kernel: Make mem* and str* functions weak symbols  
							
							
							
						 
						
							2025-01-14 19:08:03 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d189f00f38 
								
							 
						 
						
							
							
								
								Kernel: Null terminate tmpfs directory entries  
							
							
							
						 
						
							2025-01-12 16:03:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a5cf92b2ff 
								
							 
						 
						
							
							
								
								Kernel: Use uint64_t instead of size_t for AML node conversion  
							
							... 
							
							
							
							This allows 32 bit to compile again :) 
							
						 
						
							2024-12-30 06:27:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								69137cddab 
								
							 
						 
						
							
							
								
								Kernel: Implement TIOCSWINSZ for pseudo terminals  
							
							... 
							
							
							
							I have no idea how I had forgotten this 
							
						 
						
							2024-12-21 03:22:48 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d7b4f54983 
								
							 
						 
						
							
							
								
								Kernel: Check Control Method Battery _STA bit 4  
							
							... 
							
							
							
							This bit indicates wheter the battery is actually present. 
							
						 
						
							2024-12-19 02:35:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								00b0dcd306 
								
							 
						 
						
							
							
								
								Kernel: Reorder ACPI initialization method calls  
							
							
							
						 
						
							2024-12-19 02:35:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								53c356a940 
								
							 
						 
						
							
							
								
								Kernel: Implement AML MatchOp  
							
							
							
						 
						
							2024-12-18 19:26:19 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3a6cdfff45 
								
							 
						 
						
							
							
								
								Kernel: Fix ACPI namespace initialization  
							
							... 
							
							
							
							Now _REG, _STA, _INI are called in the order my laptop expects them to
be called. This was kinda weird because what uACPI was doing did not
work.
\_SB_.PCI0.LPC0.EC0_.BAT0._STA required \_SB_.PCI0.LPC0.EC0_._REG to be
called
\_SB_.PCI0.LPC0.EC0_._REG required \_SB_.PCI0._STA to be called
Now I call all the _REG methods of a device after calling _STA/_INI and
after performing the whole _STA/_INI sequence i call rest of missing
_REG functions 
							
						 
						
							2024-12-18 18:30:45 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c26e347e91 
								
							 
						 
						
							
							
								
								Kernel: Fix AML FieldUnit conversion and NameString construction  
							
							
							
						 
						
							2024-12-18 18:29:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1b94957b07 
								
							 
						 
						
							
							
								
								Kernel: Copy AML NameString base when moving it :)  
							
							
							
						 
						
							2024-12-18 18:28:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4e364bd2f6 
								
							 
						 
						
							
							
								
								Kernel: Add support for ACPI Control Method Batteries  
							
							... 
							
							
							
							The implementation is kinda weird but it exposes some battery
information to userspace! 
							
						 
						
							2024-12-18 14:06:32 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b9fe564d78 
								
							 
						 
						
							
							
								
								Kernel: Check for GCC when ignoring Wmaybe-uninitialized  
							
							
							
						 
						
							2024-12-18 01:45:36 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								437fa45ca2 
								
							 
						 
						
							
							
								
								Kernel: Add helper to find ACPI devices with EISA id  
							
							
							
						 
						
							2024-12-18 01:45:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								85e215650c 
								
							 
						 
						
							
							
								
								Kernel: Implement AML ToStringOp  
							
							
							
						 
						
							2024-12-18 01:44:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7eb186dad4 
								
							 
						 
						
							
							
								
								Kernel: Add to_sv() helper for AML String  
							
							
							
						 
						
							2024-12-18 01:43:46 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2259614640 
								
							 
						 
						
							
							
								
								Kernel: Remove unused function from ACPI namespace  
							
							
							
						 
						
							2024-12-18 01:43:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								869f4011a1 
								
							 
						 
						
							
							
								
								Kernel: Replace the old AML interpreter by a new, better one  
							
							... 
							
							
							
							The old AML interpreter was trash and did not follow value/reference
semantics at all. It was also super slow, one of my machines taking over
7 seconds to parse ACPI namespace and call _INI and _STA. 
							
						 
						
							2024-12-17 03:36:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								46d4e32510 
								
							 
						 
						
							
							
								
								Kenrel: Validate inode open mode on read/write syscalls  
							
							
							
						 
						
							2024-12-15 20:49:12 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1815a913c3 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary hash map lookups  
							
							
							
						 
						
							2024-12-15 20:47:40 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								12a37500b0 
								
							 
						 
						
							
							
								
								Kernel: Fix triple-fault in vitual tty  
							
							... 
							
							
							
							This was happening when printing non-utf8 data while having virtual tty
as the debug console. 
							
						 
						
							2024-12-09 03:35:51 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2d0690ae2d 
								
							 
						 
						
							
							
								
								Kernel: Cleanup most of syscalls dealing with files  
							
							
							
						 
						
							2024-12-07 05:33:04 +02:00