Bananymous 
							
						 
						
							
								eecdad50a6 
								
							 
						 
						
							
							
								
								Kernel: Fix most of mutex + block race conditions  
							
							... 
							
							
							
							All block functions now take an optional mutex parameter that is
atomically unlocked instead of having the user unlock it before hand.
This prevents a ton of race conditions everywhere in the code! 
							
						 
						
							2025-06-06 03:59:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								96d5ed9cc7 
								
							 
						 
						
							
							
								
								Kernel: Fix E1000 driver interrupts  
							
							... 
							
							
							
							I have no idea why, but E1000 seems to be missing interrupts frequently
when clearing ICR only at the end of the interrupt handler 
							
						 
						
							2025-06-06 03:45:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								73090ecb37 
								
							 
						 
						
							
							
								
								Kernel: TTY set EPOLLOUT  
							
							
							
						 
						
							2025-06-05 22:04:51 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8812704601 
								
							 
						 
						
							
							
								
								Kernel: Make sure IPv4 and ARP packets are not missed  
							
							... 
							
							
							
							This is a really hacky solution but will do until i get atomic
unblocking with respect to locks 
							
						 
						
							2025-06-05 22:03:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0f189d410e 
								
							 
						 
						
							
							
								
								Kernel: Fix unix socket recv from  
							
							... 
							
							
							
							If connection on unix socket was closed and other end tries to recvfrom,
the thread would enter a fucked up state where it held the socket's
spinlock when returning to userspace. 
							
						 
						
							2025-06-05 22:02:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cfeabc4580 
								
							 
						 
						
							
							
								
								Kernel/Terminal: Fix ANSI SGR 8 bit color parsing  
							
							
							
						 
						
							2025-06-05 20:43:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f79db874bf 
								
							 
						 
						
							
							
								
								Kernel: Fix ANSI CSI 1J  
							
							... 
							
							
							
							I was accidentally clearing the whole screen when I needed to clear from
cursor to the end of the screen 
							
						 
						
							2025-06-05 02:38:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8de19aff3c 
								
							 
						 
						
							
							
								
								Kernel/Terminal: Fix 24 bit ANSI SGR color parsing  
							
							
							
						 
						
							2025-06-05 02:38:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bf41b448d6 
								
							 
						 
						
							
							
								
								Kernel: Fix TCP sending  
							
							... 
							
							
							
							- Fix race condition when adding packet to send buffer before other end
  has acknowledged it
- Allow sending multiple packets before receiving ACK for previous ones 
							
						 
						
							2025-06-04 22:21:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								448632cf11 
								
							 
						 
						
							
							
								
								Kernel: Add fast path to pselect and ppoll  
							
							... 
							
							
							
							If events are available right away, don't create epoll object to wait
on. Also fix pselect return value to the number of bits set. Previously
return value could've been greater than that if epoll return EPOLLERR or
EPOLLHUP for events that were not listened to 
							
						 
						
							2025-06-04 17:51:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								943069b2a3 
								
							 
						 
						
							
							
								
								Kernel: Socket EPIPE and send SIGPIPE on write after hang up  
							
							
							
						 
						
							2025-06-03 10:24:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e305698e6b 
								
							 
						 
						
							
							
								
								Kernel: Fix epoll EPOLLHUP and EPOLLERR reporting  
							
							
							
						 
						
							2025-06-03 10:23:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4c0b7d44b4 
								
							 
						 
						
							
							
								
								Kernel: Enable ECHOE and ECHOK, support VKILL, fix VEOF  
							
							
							
						 
						
							2025-06-02 16:26:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fb466b5af7 
								
							 
						 
						
							
							
								
								Kernel: use termios c_cc values instead of hardcoded characters  
							
							
							
						 
						
							2025-06-02 15:54:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7a645b8555 
								
							 
						 
						
							
							
								
								Kernel: Add SMP message StackTrace  
							
							... 
							
							
							
							This event is sent when user presses ctrl+{F1-F12} and it will dump the
corresponding processor's stack trace. This is really helpful for
detecting deadlocks in the system 
							
						 
						
							2025-06-02 11:39:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c5b0d0235f 
								
							 
						 
						
							
							
								
								Kenrel: Allow Processor::send_smp_message to send event to current CPU  
							
							
							
						 
						
							2025-06-02 11:39:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e109b5cff6 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary locks from Pipe  
							
							... 
							
							
							
							Inode already locks its own mutex when read/write is called there is no
need to explicitly lock them in read_impl/write_impl 
							
						 
						
							2025-06-02 11:39:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9883fb7bf6 
								
							 
						 
						
							
							
								
								Kernel: Rewrite epoll notifying system  
							
							... 
							
							
							
							This removes the need to lock epoll's mutex when notifying epoll. This
prevents a ton of deadlocks when epoll is notified from an interrupt
handler or otherwise with interrupts disabled 
							
						 
						
							2025-06-02 11:39:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b2e3aefa72 
								
							 
						 
						
							
							
								
								Kernel: Don't crash when terminating process with signal  
							
							
							
						 
						
							2025-06-01 16:59:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								31bcad2535 
								
							 
						 
						
							
							
								
								LibC: Implement truncate  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b75970958e 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement unlinkat  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								91756c057e 
								
							 
						 
						
							
							
								
								LibC: Add all of the missing POSIX definitions in unistd.h and limits.h  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								dbdefa0f4a 
								
							 
						 
						
							
							
								
								LibC: Implement pthread cancelation  
							
							... 
							
							
							
							This code is not tested at all but it looks correct xD 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								56fdf6002c 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pthread_kill  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c957f1ddca 
								
							 
						 
						
							
							
								
								LibC: Cleanup pthread code and add some pthread_attr functions  
							
							... 
							
							
							
							errno, pthread cleanup and pthread id are now stored in uthread. This
allows using these without TLS 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b1065fa01d 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add ppoll syscall and fix poll  
							
							... 
							
							
							
							poll is now using its own syscall instead of wrapping aroung pselect.
This adds less overhead on top of poll and adds support for POLLHUP 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8ff9c030bf 
								
							 
						 
						
							
							
								
								Kernel: Add better termios support  
							
							... 
							
							
							
							I'm not sure if this is correct but at least it's better than before :) 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9b875fb930 
								
							 
						 
						
							
							
								
								Kernel: Make epoll work with different fds pointing to same inode  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								857bac4b78 
								
							 
						 
						
							
							
								
								Kernel: Disable unused interrupt methods in PCI devices  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								30074c290d 
								
							 
						 
						
							
							
								
								Kernel: Add more descriptive names to sockets types  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								60d1c26114 
								
							 
						 
						
							
							
								
								Kernel: Fix race condition in FileBackedRegion creation  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								692ba43182 
								
							 
						 
						
							
							
								
								Kernel: Fix spinlock bugs found by the new spinlock security  
							
							
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6542a037df 
								
							 
						 
						
							
							
								
								Kernel: Make spinlocks more safe  
							
							... 
							
							
							
							Kernel now makes sure thread is not holding any spinlocks when it tries
to lock a mutex or yield. Spinlocks are supposed to be only used for
short times without the possibility of yielding 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9f4b451501 
								
							 
						 
						
							
							
								
								Kernel: Fix epoll deadlock  
							
							... 
							
							
							
							If epoll_wait and epoll_notify were called at the same time, there was a
possible deadlock when epoll was confirming the event from the inode 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1bd454b8fd 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement utime* family functions  
							
							... 
							
							
							
							This patch adds *working*
 - utime
 - utimes
 - utimensat
 - futimens 
							
						 
						
							2025-06-01 13:48:03 +03:00  
				
					
						
							
							
								
								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