Bananymous 
							
						 
						
							
								107b092982 
								
							 
						 
						
							
							
								
								Kernel: Allow arbitrary sized tmpfs files  
							
							... 
							
							
							
							The 2 block limit started to get annoying :D 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bac06e45a4 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpSymlinkInode target getting/setting  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0e8a68831c 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpInode chmod not preserving file type  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5912abd541 
								
							 
						 
						
							
							
								
								Kernel: Add error reporting for readonly mounted filesystems  
							
							
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								13d33995cb 
								
							 
						 
						
							
							
								
								Kernel: Make sure PageTable::fast_page gets passed page aligned addr  
							
							
							
						 
						
							2025-06-30 01:48:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c8c05f62b4 
								
							 
						 
						
							
							
								
								Kernel: Remove unused FileSystem::dev  
							
							
							
						 
						
							2025-06-29 00:29:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ebf2b16d09 
								
							 
						 
						
							
							
								
								Kernel: Implement chown to ext2 and tmpfs  
							
							
							
						 
						
							2025-06-28 21:28:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7314cf708c 
								
							 
						 
						
							
							
								
								Kernel: Only restart certain syscalls with SA_RESTART  
							
							... 
							
							
							
							SA_RESTART is not supposted to restart every function. 
							
						 
						
							2025-06-28 20:25:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								db571b4859 
								
							 
						 
						
							
							
								
								Kernel: Allow relockign mutex even when holding a spinlock  
							
							... 
							
							
							
							Only reason mutex locking is now allowed with spinlocks is to prevent
yield.
Also try_lock can be now safely used while holding a spinlock 
							
						 
						
							2025-06-28 19:40:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e8491b34b8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Rework TIOC{G,S}WINSZ more linux like  
							
							... 
							
							
							
							Userspace can freely set terminal size, kernel just updates it when for
example new font is loaded. Also SIGWINCH is now sent by kernel instead
of userspace. 
							
						 
						
							2025-06-28 19:40:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f73bb242f3 
								
							 
						 
						
							
							
								
								Kernel: Save fpu state and flags in signal handler  
							
							... 
							
							
							
							This was causing some weird crashes :D 
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9e895e5286 
								
							 
						 
						
							
							
								
								Kernel: Use fxsave64 and fxrstor64 on 64 bit target  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5b0e5512a8 
								
							 
						 
						
							
							
								
								Kernel: Don't block in send until full message is sent  
							
							... 
							
							
							
							Only block until some data was sent. This allows select + send to be
actually non blocking if used correctly.
Also fixes a bug with non blocking sockets that could not send the full
message is one try. 
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								05a727979a 
								
							 
						 
						
							
							
								
								Kernel: Make sse initialization thread safe  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fe62ce4bae 
								
							 
						 
						
							
							
								
								Kernel: Fix spurious wakeup from SYS_SLEEP  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4695fa061d 
								
							 
						 
						
							
							
								
								Kernel: Don't panic if UNIX socket is already bound but deleted  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								83c0ef3514 
								
							 
						 
						
							
							
								
								Kernel: Implement CLOCK_{PROCESS,THREAD}_CPUTIME_ID  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								93e5d09a63 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement flock  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6d3d41abe2 
								
							 
						 
						
							
							
								
								Kernel: Fix possible division by zero in scheduler  
							
							
							
						 
						
							2025-06-28 16:55:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3283359ac8 
								
							 
						 
						
							
							
								
								Kernel: Cleanup ANSI DSR  
							
							
							
						 
						
							2025-06-19 19:05:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fff16f6b8c 
								
							 
						 
						
							
							
								
								Kernel: don't directly access user memory in mmap  
							
							
							
						 
						
							2025-06-19 19:04:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a347ceba74 
								
							 
						 
						
							
							
								
								Kernel: Cleanup sys_wait sleep/signal handling  
							
							
							
						 
						
							2025-06-19 19:03:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								05836fab4c 
								
							 
						 
						
							
							
								
								Kernel: Allow accessing fd's inode without having read/search access  
							
							... 
							
							
							
							I have no idea what the point of this was. VFS is already verifying
read and search access 
							
						 
						
							2025-06-19 19:02:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								32c35a822b 
								
							 
						 
						
							
							
								
								BuildSystem: binutils1.39->1.44, gcc12.2.0->15.1.0  
							
							
							
						 
						
							2025-06-19 19:00:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9c86e5e54d 
								
							 
						 
						
							
							
								
								Kernel: Add ANSI SGR 39 and 49  
							
							... 
							
							
							
							Also debug log unimplemented ANSI SRGs, this makes finding missing
commonly used ANSI SGR codes more easy 
							
						 
						
							2025-06-18 20:34:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								125f8b591d 
								
							 
						 
						
							
							
								
								Kernel: Don't crash if socket tries to reconnect  
							
							... 
							
							
							
							:D 
							
						 
						
							2025-06-11 01:54:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e92f039a17 
								
							 
						 
						
							
							
								
								Kernel: Fix tcp sending with already sent unacknowledged bytes  
							
							
							
						 
						
							2025-06-06 11:55:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ef76ffa1c1 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary hack  
							
							... 
							
							
							
							This is no longer needed as thread unlocks its spinlock before calling
Process::exit() on terminating signal 
							
						 
						
							2025-06-06 11:13:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								652eb2346c 
								
							 
						 
						
							
							
								
								Kernel: Fix syscall interrupt disabling  
							
							... 
							
							
							
							If thread had a terminating signal, syscall leaving would try to lock
process's mutex while not having interrupts enabled 
							
						 
						
							2025-06-06 11:12:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								66726090ec 
								
							 
						 
						
							
							
								
								Kenrel: Fix TCP connection closing  
							
							... 
							
							
							
							If TCP socket was connected with connect() instead of accept() it would
never send FIN to other end when it was closed. 
							
						 
						
							2025-06-06 11:10:29 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b668173cba 
								
							 
						 
						
							
							
								
								Kernel: Fix pseudo terminal writability  
							
							
							
						 
						
							2025-06-06 11:09:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c6ded82406 
								
							 
						 
						
							
							
								
								Kernel: Fix a deadlock when thread is executing terminating signal  
							
							
							
						 
						
							2025-06-06 06:52:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a76c6faffc 
								
							 
						 
						
							
							
								
								Kernel: Fix a deadlock when process is exiting  
							
							
							
						 
						
							2025-06-06 06:52:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								81ff71a97f 
								
							 
						 
						
							
							
								
								Kernel: Track the number of recursive spinlocks a thread is holding  
							
							
							
						 
						
							2025-06-06 06:51:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								56db0efe58 
								
							 
						 
						
							
							
								
								Kernel: Add missing file for race condition fixes :)  
							
							
							
						 
						
							2025-06-06 04:03:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5eefd98e1b 
								
							 
						 
						
							
							
								
								Kernel: Add debugging macro to dump syscalls that take a long time  
							
							
							
						 
						
							2025-06-06 04:00:57 +03:00  
				
					
						
							
							
								
								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  
				
					
						
							
							
								
								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