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 
							
						 
						
							
								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 
							
						 
						
							
								44b762f916 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pwrite and make pread non-locking  
							
							
							
						 
						
							2025-05-28 03:10:01 +03: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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								6f9dc2a9b8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `fchdir`, cleanup `chdir` and `getcwd`  
							
							
							
						 
						
							2025-04-19 21:28:31 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								85505b0482 
								
							 
						 
						
							
							
								
								Kernel: Fix ANSI SGR color invert  
							
							
							
						 
						
							2025-04-18 17:31:46 +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 
							
						 
						
							
								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 
							
						 
						
							
								cef8779bf7 
								
							 
						 
						
							
							
								
								Kernel: Improve error handling when setting TTY font  
							
							
							
						 
						
							2025-04-18 02:42:24 +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 
							
						 
						
							
								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 
							
						 
						
							
								00015285ab 
								
							 
						 
						
							
							
								
								Kernel: Add vaddr->paddr getter to VirtualRange  
							
							
							
						 
						
							2025-04-15 21:25:15 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								27613da5ea 
								
							 
						 
						
							
							
								
								Kernel: Route PCI Interrupt Link Device interrupts  
							
							
							
						 
						
							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 
							
						 
						
							
								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 
							
						 
						
							
								0e085b30cc 
								
							 
						 
						
							
							
								
								Kernel: ACPI add easier API for calling methods with arguments  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00