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  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								71a2d0971f 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary reverse from VFS file search  
							
							
							
						 
						
							2024-12-07 01:41:23 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3bf57e0748 
								
							 
						 
						
							
							
								
								Kernel: Add . and .. entries to /proc/<pid> directories  
							
							... 
							
							
							
							This allows to run `cd ..` in one of these directories 
							
						 
						
							2024-12-07 01:37:40 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								51b6329c86 
								
							 
						 
						
							
							
								
								Kernel: Make backspace \b and delete 0x7F  
							
							... 
							
							
							
							This is what `vim` seems to expect and imo makes way more sense. 
							
						 
						
							2024-12-05 17:34:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								72d9e4c1e7 
								
							 
						 
						
							
							
								
								Kernel: Remove accidental debug prints from fcntl syscall  
							
							
							
						 
						
							2024-12-05 17:34:32 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								49133dce48 
								
							 
						 
						
							
							
								
								Kernel: Make pipe check data every 100ms  
							
							... 
							
							
							
							This prevents dead lock if read-end does not detect data before blocking
why write-end already notified. 
							
						 
						
							2024-12-03 21:54:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0a5aacfd87 
								
							 
						 
						
							
							
								
								Kernel: Allow open with O_CREAT bypass file permission checks  
							
							... 
							
							
							
							call to open(path, O_CREAT|O_EXCL|O_RDWR, 0444) should open file as
read-write although file is created as read-only on filesystem. 
							
						 
						
							2024-12-03 16:17:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2dec3a6c95 
								
							 
						 
						
							
							
								
								Kernel: Add some sanity checks for existanse of threads  
							
							
							
						 
						
							2024-12-03 16:16:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fcc2814199 
								
							 
						 
						
							
							
								
								Kernel: Remove process from alarm list after it dies  
							
							
							
						 
						
							2024-12-03 16:16:08 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0fab7ad63b 
								
							 
						 
						
							
							
								
								Kernel: Fix SYS_FCNTL command handling :)  
							
							... 
							
							
							
							I had misunderstood how these work 
							
						 
						
							2024-12-03 16:12:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e6a2f55a59 
								
							 
						 
						
							
							
								
								Kernel: Closing file backed mmap wont expand the file size  
							
							
							
						 
						
							2024-12-03 16:12:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								67e9ca56ac 
								
							 
						 
						
							
							
								
								Kernel: Create /dev/urandom -> /dev/random symlink  
							
							... 
							
							
							
							Most software uses urandom instead of random so this allows it work
normally. 
							
						 
						
							2024-12-03 16:12:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								713daf6cd3 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add support for creating hardlinks  
							
							
							
						 
						
							2024-12-03 16:12:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								415b20f884 
								
							 
						 
						
							
							
								
								LibC: Remove errno EEXISTS  
							
							... 
							
							
							
							I don't know why I had added this. It doesn't seem to be a thing on
either POSIX or linux. This was literally equivalent to EXIST 
							
						 
						
							2024-12-02 20:13:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d58ca5f37a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement symlink{,at}  
							
							
							
						 
						
							2024-12-02 20:13:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a10ca47657 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement {,f}statvfs  
							
							
							
						 
						
							2024-12-02 20:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ad1f175a39 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement getppid  
							
							
							
						 
						
							2024-12-02 20:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6ed1435aeb 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement tcgetpgrp  
							
							
							
						 
						
							2024-12-02 20:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6346e288ad 
								
							 
						 
						
							
							
								
								LibC: Implement getrlimit  
							
							
							
						 
						
							2024-12-02 20:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								747c3b2a4b 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement fsync  
							
							
							
						 
						
							2024-12-02 20:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c02de2580d 
								
							 
						 
						
							
							
								
								Kernel: Add support for SIOCGIFNAME ioctl  
							
							
							
						 
						
							2024-12-02 20:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4149748766 
								
							 
						 
						
							
							
								
								Kernel: Add missing include in ACPI headers  
							
							
							
						 
						
							2024-12-01 21:32:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8dbbbc1a1a 
								
							 
						 
						
							
							
								
								Kernel: Add command line option `readonly`  
							
							... 
							
							
							
							This prevents calls to write_sectors_impl and all dirty pages are always
kept in RAM. 
							
						 
						
							2024-11-27 13:31:55 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a6fc3cf7a6 
								
							 
						 
						
							
							
								
								Kernel: Clear AHCI pending interrupts  
							
							... 
							
							
							
							I have no idea why I did not have this in. All devices were just
constatly spamming interrupts like crazy :D 
							
						 
						
							2024-11-26 01:39:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1941885cfd 
								
							 
						 
						
							
							
								
								Kernel: Disable USB Mass Storage writing until I get it fixed  
							
							... 
							
							
							
							This prevented real hw from running for over 10-20 seconds. When first
disk sync happens after 10 secods, USB storage would enter faulty state
and not allow any io operations.
I have no idea what the problem is. If I don't send Reset command to the
USB device writing seems to work fine. I also don't think its part of
the Reset process either as reading works just fine. 
							
						 
						
							2024-11-26 01:01:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								88a86a9927 
								
							 
						 
						
							
							
								
								Kernel: Fix Thread destruction after sys_exit  
							
							... 
							
							
							
							This had undefined behaviour as Thread's (Processes's) PageTable was
destroyed before Thread had the change to destroy its own stacks that
lived on the PageTable. 
							
						 
						
							2024-11-26 00:59:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								48e030bca3 
								
							 
						 
						
							
							
								
								Kernel: Make PageTable non-copyable and non-movable  
							
							... 
							
							
							
							Also PageTable destructor now verifies that is has allocated something
instead of assuming paddr of 0. 
							
						 
						
							2024-11-26 00:58:35 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								793c0368f2 
								
							 
						 
						
							
							
								
								Kernel: Refactor USB mass storage code  
							
							... 
							
							
							
							Also increment command timeout to 10 seconds so commands don't timeout
when they are not supposted to :) 
							
						 
						
							2024-11-23 01:24:32 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								076001462e 
								
							 
						 
						
							
							
								
								Kernel: Implement AML ConcatOp  
							
							
							
						 
						
							2024-11-22 22:23:07 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d2e1d8ec13 
								
							 
						 
						
							
							
								
								Kernel: Implement AML NotOp  
							
							
							
						 
						
							2024-11-22 22:22:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								30ceaa6bef 
								
							 
						 
						
							
							
								
								Kernel: Implement AML ToHexStringOp  
							
							
							
						 
						
							2024-11-22 22:22:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0247d47a3d 
								
							 
						 
						
							
							
								
								Kernel: Make USBMassStorage send_scsi_command templated  
							
							... 
							
							
							
							This allows passing ConstByteSpan when data will not be modified 
							
						 
						
							2024-11-22 22:21:19 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								480368c878 
								
							 
						 
						
							
							
								
								Kernel: Cleanup and fix xHCI interrupt handling  
							
							... 
							
							
							
							Always clear EventHandlerBusy bit and remove unnecessary nesting 
							
						 
						
							2024-11-22 22:19:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c1d8790623 
								
							 
						 
						
							
							
								
								Kernel: Don't allow sending commands to halted xHCI  
							
							
							
						 
						
							2024-11-22 22:19:29 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fb1ffec5bb 
								
							 
						 
						
							
							
								
								Kernel: Remove unused mutex from xHCI  
							
							... 
							
							
							
							This was preventing multiple xHCI controllers to do parallel device
initialization 
							
						 
						
							2024-11-22 22:18:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1bdabe693f 
								
							 
						 
						
							
							
								
								Kernel: Preserve RsvdP bits in xHCI controller initialization  
							
							
							
						 
						
							2024-11-22 22:18:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ce09f35275 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI 64 bit MSI msg_data offset  
							
							
							
						 
						
							2024-11-22 22:17:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								40c13043b3 
								
							 
						 
						
							
							
								
								Kernel: Add support for scratchpad buffers in xHCI  
							
							
							
						 
						
							2024-11-22 22:16:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e620068416 
								
							 
						 
						
							
							
								
								Kernel: Allow USB devices to handle STALL conditions  
							
							
							
						 
						
							2024-11-22 22:15:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8e624ca85a 
								
							 
						 
						
							
							
								
								Kernel: Don't panic if uninitialized AHCI device gets an interrupt  
							
							
							
						 
						
							2024-11-21 20:41:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c7afd46016 
								
							 
						 
						
							
							
								
								Kernel: Don't log spurious interrupts  
							
							... 
							
							
							
							Some PCs seem to be spamming a lot of int 7 
							
						 
						
							2024-11-21 20:40:29 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3573656244 
								
							 
						 
						
							
							
								
								Kernel: Make PARTUUID matching case insensitive  
							
							... 
							
							
							
							Case sensitivity made it super annoying to work with :) 
							
						 
						
							2024-11-21 20:39:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1de6de975a 
								
							 
						 
						
							
							
								
								Kernel: Rename cmdline UUID= to PARTUUID=  
							
							... 
							
							
							
							This makes more sense and behaves more like existing software. 
							
						 
						
							2024-11-21 20:38:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								865061b492 
								
							 
						 
						
							
							
								
								Kernel: Temporary fix to make tmpfs more stable  
							
							... 
							
							
							
							whole TmpFS will have to be rewritten at some point :) 
							
						 
						
							2024-11-21 18:13:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								70880636f4 
								
							 
						 
						
							
							
								
								Kernel: Implement basic USB Mass Storage support  
							
							... 
							
							
							
							I finally decided to do this :D 
							
						 
						
							2024-11-21 18:08:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8054f6c618 
								
							 
						 
						
							
							
								
								Kernel: Wait 10 seconds to find root device  
							
							... 
							
							
							
							If root device is initialized asynchronously it may not be ready when
main initialization thread is finished. This patch adds searching for
root device every 500 ms for 10 seconds. 
							
						 
						
							2024-11-21 17:56:58 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								658ea68d04 
								
							 
						 
						
							
							
								
								Kernel: Check max packet size for all USB devices  
							
							... 
							
							
							
							Spec says that this has to be done. Most cases can be probably skipped
as I used to do, but this is less error prone and adds practically no
overhead 
							
						 
						
							2024-11-21 13:46:42 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5750f87396 
								
							 
						 
						
							
							
								
								Kernel: Fix unaligned access in xHCI controller initialization  
							
							
							
						 
						
							2024-11-21 13:46:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1253e2a458 
								
							 
						 
						
							
							
								
								Kernel: Add support for bulk endpoints and update endpoint API  
							
							... 
							
							
							
							USB device now sets its own data buffers for IN/OUT endpoints. This
allows more customization and parallelism as data buffer does not have
to be shared. 
							
						 
						
							2024-11-21 13:44:21 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								857b3e92f8 
								
							 
						 
						
							
							
								
								Kernel: Support initializing USB 3 devices  
							
							
							
						 
						
							2024-11-21 13:40:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8bf14d542e 
								
							 
						 
						
							
							
								
								Kernel: Move SCSI device rdev allocation out of ATA code  
							
							
							
						 
						
							2024-11-21 13:36:59 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								97718b4046 
								
							 
						 
						
							
							
								
								Kernel: Don't launch init process twice  
							
							... 
							
							
							
							I had accidentrally left the old init process launch in when replacing
it with the new one. 
							
						 
						
							2024-11-19 20:43:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c07fd265f0 
								
							 
						 
						
							
							
								
								Kernel: Add support for ATA CHS addressing and cleanup code  
							
							... 
							
							
							
							I thought that I had an PC without LBA support so I implement support
for CHS. Turns out that my ATA device detection was broken and was no
device on that port and initialize data was just garbage.
Now that I added CHS, I guess I should just keep it in :)
Both ATA read and write are now combined into a single function to avoid
code duplication. 
							
						 
						
							2024-11-19 20:39:32 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1de50a2a94 
								
							 
						 
						
							
							
								
								Kernel: Improve ATA device initialization  
							
							... 
							
							
							
							This does better detection of empty ports and fixes floating bus
read-value from 0x00 to 0xFF. 
							
						 
						
							2024-11-19 00:25:42 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								627ca432cc 
								
							 
						 
						
							
							
								
								Kernel: Make PS/2 controller not hang if device keeps sending resend  
							
							
							
						 
						
							2024-11-19 00:18:48 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								71563034a7 
								
							 
						 
						
							
							
								
								Kernel: Remove accidentally left debug prints  
							
							
							
						 
						
							2024-11-18 03:45:07 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								aaff5a65e1 
								
							 
						 
						
							
							
								
								Kernel/init: /dev/tty is now custom symlink to controlling terminal  
							
							... 
							
							
							
							kernel now passes the name of default console to init process so init
knows which file to open as stdio. before /dev/tty was referencing the
system wide current terminal which was inherited from cmdline. This
doesn't work anymore as we have pseudo terminals implemented that can
chage the current terminal during runtime :D 
							
						 
						
							2024-11-17 22:38:52 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								458a362f98 
								
							 
						 
						
							
							
								
								Kernel: Allow kernel to pass arguments to init process  
							
							
							
						 
						
							2024-11-17 22:38:02 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f206e72447 
								
							 
						 
						
							
							
								
								Kernel: Don't require msync addresses to be page aligned  
							
							... 
							
							
							
							Inodes implementing msync can require page aligned addresses, but are
also allowed to not :) This reduces sizes of framebuffer msyncs! 
							
						 
						
							2024-11-17 20:15:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								58e45fb394 
								
							 
						 
						
							
							
								
								Kernel: Print process name on exceptions if it is available  
							
							
							
						 
						
							2024-11-17 20:15:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5e8fdc997a 
								
							 
						 
						
							
							
								
								Kernel: Prevent userspace from overwriting CPU load memory  
							
							
							
						 
						
							2024-11-17 20:15:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0228cd4f31 
								
							 
						 
						
							
							
								
								Kernel: Increase userspace stack size and decrease kernel stack  
							
							... 
							
							
							
							Quake II needs a lot of stack, it was overflowing my 256 KiB stack so
this patch doubles that, so Quake II can run!
Also every thread had 256 KiB kernel stack. This is unnecessarily large
and now dropped to 32 KiB. 
							
						 
						
							2024-11-14 21:03:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								64c52012df 
								
							 
						 
						
							
							
								
								Kernel: Fix MemoryRegion overlap comparison  
							
							... 
							
							
							
							This made some calls to `munmap` unmap extra regions. 
							
						 
						
							2024-11-13 17:26:42 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1838ea5c30 
								
							 
						 
						
							
							
								
								Kernel: Fix pseudo terminal leaks  
							
							
							
						 
						
							2024-11-04 15:35:07 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a3f41fd4d9 
								
							 
						 
						
							
							
								
								Kernel: Cleanup disk cache  
							
							... 
							
							
							
							Add missing include and cleanup code calling automatic disk sync. 
							
						 
						
							2024-11-03 20:28:15 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f4be37700f 
								
							 
						 
						
							
							
								
								Kernel/userspace: rework floating point math  
							
							... 
							
							
							
							SSE is now unconditionally enabled any where and most of math.h is now
actually implemented. using __builtin_<func> lead to many hangs where
the builtin function would just call itself. 
							
						 
						
							2024-11-03 20:28:15 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ed19bb11fe 
								
							 
						 
						
							
							
								
								Kernel: Cleanup thread default sse initialization  
							
							
							
						 
						
							2024-11-03 20:22:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8fd0162393 
								
							 
						 
						
							
							
								
								Kernel: Rewrite x86_64 page tables to use HHDM instead of kmalloc  
							
							... 
							
							
							
							This allows page tables to not crash the kernel once kmalloc runs out of
its (limited) static memory. 
							
						 
						
							2024-10-14 11:40:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f0b18da881 
								
							 
						 
						
							
							
								
								Kernel: Add kmalloc helper APIs  
							
							
							
						 
						
							2024-10-14 11:39:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5f63ea8f8a 
								
							 
						 
						
							
							
								
								Kernel: Add CPUID check for 1 GiB page support  
							
							
							
						 
						
							2024-10-14 11:38:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2b43569927 
								
							 
						 
						
							
							
								
								Kernel: Use enums in boot info instead of magic values  
							
							
							
						 
						
							2024-10-14 11:36:51 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4ba33175cf 
								
							 
						 
						
							
							
								
								Kernel: Don't leak memory when preparing fast page  
							
							... 
							
							
							
							For some reason I was allocating memory for page table entry... 
							
						 
						
							2024-10-14 11:34:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3edc1af560 
								
							 
						 
						
							
							
								
								Kernel: Don't map main bios area in page table initialization  
							
							... 
							
							
							
							This is only needed for RSDP lookup so it can be done with fast pages 
							
						 
						
							2024-10-14 11:32:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								55fbd09e45 
								
							 
						 
						
							
							
								
								Kernel: Rewrite physical memory allocation with PageTable::fast_pages  
							
							
							
						 
						
							2024-10-14 11:32:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								166550fbba 
								
							 
						 
						
							
							
								
								Kernel: Ext2 check if file exists before creating it  
							
							
							
						 
						
							2024-10-07 18:21:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b6e040dfc2 
								
							 
						 
						
							
							
								
								Kernel/Shell: Fix backspace and delete key byte sequences  
							
							
							
						 
						
							2024-10-04 04:14:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2d11ce9669 
								
							 
						 
						
							
							
								
								Kernel: Fix interrupt system  
							
							... 
							
							
							
							I had not understood how MSIs work and I was unnecessarily routing them
through IOAPIC. This is not necessary and should not be done :D
Also MSIs were reserving interrupts that IOAPIC was capable of
generating. Now IOAPIC and MSIs use different set of interrupts so
IOAPIC can use more interrupts if needed. 
							
						 
						
							2024-09-27 15:31:31 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b89fc3fe87 
								
							 
						 
						
							
							
								
								Kernel: Implement ANSI SGR 7 to invert colors  
							
							... 
							
							
							
							This allows vim's visual selection to show up 
							
						 
						
							2024-09-26 15:08:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								39802b56c1 
								
							 
						 
						
							
							
								
								Kernel: Allow SYS_EXEC to fail at any point  
							
							... 
							
							
							
							This patch builds new executable image to another pml4 structure and
only after everything is validated will current context be replaced.
This allows exec to fail "late" where previously it would panic the
kernel or kill the process. This allows graceful handling of exec
failures in userspace! 
							
						 
						
							2024-09-24 16:29:38 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ebb87ccdde 
								
							 
						 
						
							
							
								
								Kernel: Add asserts for overflow checks with ms -> ns conversions  
							
							
							
						 
						
							2024-09-24 16:28:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f0e55938c1 
								
							 
						 
						
							
							
								
								Kernel: Allow initial binding of threads to specific processor  
							
							
							
						 
						
							2024-09-24 16:27:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								348d04f7f5 
								
							 
						 
						
							
							
								
								Kernel: Implement static Process::kill()  
							
							... 
							
							
							
							This allows killing processes even when there does not exist a current
thread. 
							
						 
						
							2024-09-24 13:16:43 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d395cf38b7 
								
							 
						 
						
							
							
								
								Kernel: Binding to port 0 will always find unused port  
							
							
							
						 
						
							2024-09-22 17:30:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								57aec2a733 
								
							 
						 
						
							
							
								
								Kernel: Validate pointer's when printing stack trace  
							
							... 
							
							
							
							There was an kernel panic if stack trace contained uncanonical
addresses. 
							
						 
						
							2024-09-22 17:16:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ae89237453 
								
							 
						 
						
							
							
								
								Kernel: Disable warning when calling syscall  
							
							... 
							
							
							
							This warning is only generated when compiling with UBSAN and I don't see
how the value would even be uninitialzed. 
							
						 
						
							2024-09-22 17:15:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								60d5257678 
								
							 
						 
						
							
							
								
								Kenrel: Add __builtin_unreachable support for UBSAN  
							
							
							
						 
						
							2024-09-22 17:14:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d59463d11b 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY reading one keyevent after disabling input handling  
							
							
							
						 
						
							2024-09-22 17:13:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								23d6205659 
								
							 
						 
						
							
							
								
								Kernel: Move DEBUG_* macros to centralized Debug.h  
							
							... 
							
							
							
							This makes toggling debug info much easier 
							
						 
						
							2024-09-20 11:00:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bc0acc6f44 
								
							 
						 
						
							
							
								
								Kernel: Validate network packet sizes before casting  
							
							... 
							
							
							
							This caused a lot of crashes on invalid packets :D 
							
						 
						
							2024-09-20 10:46:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b8622f2b4b 
								
							 
						 
						
							
							
								
								Kernel: Implement simple RTL8169 driver  
							
							... 
							
							
							
							This allows me to use internet when running banan-os on my hardware! 
							
						 
						
							2024-09-19 22:58:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7f0c39fe91 
								
							 
						 
						
							
							
								
								Kernel: Don't crash the kernel if packet is smaller than ethernet hdr  
							
							
							
						 
						
							2024-09-19 22:51:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a489be0e05 
								
							 
						 
						
							
							
								
								Kernel: Allow parallel LAPIC timer initialization with HPET  
							
							... 
							
							
							
							HPET supports reading LAPIC counter without locks, so it can be done in
parallel. This makes booting much faster. Previously initializing every
timer took 100 ms, so 16 CPUs took total of 1.6 seconds. This allows
doing it all in 100 ms. 
							
						 
						
							2024-09-19 14:41:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8e08046519 
								
							 
						 
						
							
							
								
								Kernel: Add asserts about having locked TTY's write lock  
							
							... 
							
							
							
							This for some reason fixes booting on real hardware? :D 
							
						 
						
							2024-09-18 00:56:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								999eb53364 
								
							 
						 
						
							
							
								
								Kernel: Release debug lock if its locked during kernel panic  
							
							... 
							
							
							
							Also kernel panic now prints if it had lock 
							
						 
						
							2024-09-18 00:56:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0620ed3d4f 
								
							 
						 
						
							
							
								
								Kernel: Fix file open permissions for some syscalls  
							
							
							
						 
						
							2024-09-17 19:11:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b779b3cf2d 
								
							 
						 
						
							
							
								
								Kernel: Move file finding code to a helper  
							
							
							
						 
						
							2024-09-17 18:52:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e431e90b20 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement all chown family function with fchownat  
							
							
							
						 
						
							2024-09-17 18:35:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4aa466b948 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement all chmod family functions using fchmodat  
							
							
							
						 
						
							2024-09-17 17:19:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3666525d24 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `readlink` in terms of `readlinkat`  
							
							
							
						 
						
							2024-09-17 16:38:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f1a4bbce53 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement all stat family functions with fstatat  
							
							... 
							
							
							
							This patch gets rid of 2 unnecessary syscalls! 
							
						 
						
							2024-09-17 16:38:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								708a720d9d 
								
							 
						 
						
							
							
								
								Kernel: Remove SYS_OPEN  
							
							... 
							
							
							
							This can be done with SYS_OPENAT with fd set to AT_FDCWD 
							
						 
						
							2024-09-17 16:16:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5e4aa75e03 
								
							 
						 
						
							
							
								
								Kernel: Perform access checks when creating a file or a directory  
							
							... 
							
							
							
							Also SYS_CREATE_DIR now uses correct relative path. It used to always
create files relative to root. And as no permission checks were tested,
file creation succeeded to root as long as path did not contain '/' :D 
							
						 
						
							2024-09-17 15:57:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d88ee5c9ee 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement `creat` with `open`  
							
							... 
							
							
							
							This allows getting rid of unnecessary SYS_CREATE. Directory creation
still has its own syscall, but I could combine it with SYS_OPEN also. 
							
						 
						
							2024-09-17 15:55:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d4ea720239 
								
							 
						 
						
							
							
								
								Kernel: Don't crash the kernel if ext2 encounters disk error  
							
							... 
							
							
							
							This will most likely result in a corrupted filesystem, but crashing the
kernel is too much :D 
							
						 
						
							2024-09-17 15:54:33 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								97ee370ffe 
								
							 
						 
						
							
							
								
								Kernel: Allow listing files even if one of directories blocks are empty  
							
							
							
						 
						
							2024-09-17 15:53:14 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a084f83f4c 
								
							 
						 
						
							
							
								
								Kernel: Rework kernel-side ELF loading  
							
							... 
							
							
							
							ELFs are now loaded as MemoryRegions so they don't need special handling
anywhere. This also allows file backed COW optimizations to work. This
was not the case before.
This patch removes now obsolete LoadableELF and unused ELF files from
LibElf. 
							
						 
						
							2024-09-15 23:57:34 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								54732edff4 
								
							 
						 
						
							
							
								
								Kernel: Fix bugs in memory regions  
							
							... 
							
							
							
							MemoryRegion::initialize() required size to be page aligned, this is not
necessary.
MemoryBackedRegion::copy_data_to_region() required user-write
permissions for underlying data. This did not matter as memory backed
regions dont support COW memory, but it could lead to bugs later on. 
							
						 
						
							2024-09-15 23:18:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7feb4c4ebd 
								
							 
						 
						
							
							
								
								Kernel: VFS::file_from_absolute_path now used root_file() API  
							
							
							
						 
						
							2024-09-15 02:38:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2911d1f018 
								
							 
						 
						
							
							
								
								Kernel: Cleanup and fix pseudo terminals  
							
							
							
						 
						
							2024-09-15 02:38:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d68ad893f0 
								
							 
						 
						
							
							
								
								Kernel/Shell: Add support for delete key  
							
							
							
						 
						
							2024-09-14 22:45:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								39667de662 
								
							 
						 
						
							
							
								
								Kernel: Fix sizeof check for sys_tc{set,get}attr  
							
							
							
						 
						
							2024-09-14 21:17:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8956835d95 
								
							 
						 
						
							
							
								
								Kernel: Make sys_.*at use VFS relative path finding  
							
							
							
						 
						
							2024-09-14 21:15:58 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ea4ec2eafc 
								
							 
						 
						
							
							
								
								Kernel: Make OpenFileDescrptor store VFS::File instead of inode+path  
							
							
							
						 
						
							2024-09-14 20:10:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3a352078de 
								
							 
						 
						
							
							
								
								Kernel: Make VirtualFileSystem::File non copyable  
							
							
							
						 
						
							2024-09-14 20:09:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6060b39548 
								
							 
						 
						
							
							
								
								Kernel: Implement relative file searching in VFS  
							
							
							
						 
						
							2024-09-14 19:44:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2b52ea4c6f 
								
							 
						 
						
							
							
								
								Kernel: Make Inode::can_access const  
							
							
							
						 
						
							2024-09-14 19:39:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b41738b47b 
								
							 
						 
						
							
							
								
								Kernel: Fix ACPI name formatting functions  
							
							
							
						 
						
							2024-09-14 19:39:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								57e76a65a4 
								
							 
						 
						
							
							
								
								Kernel: Null terminate ext2 directory entries  
							
							... 
							
							
							
							This fixes a weird bug with `ls /bin` 
							
						 
						
							2024-09-12 23:55:34 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								467ac6c365 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement SOCK_CLOEXEC and SOCK_NONBLOCK  
							
							... 
							
							
							
							This removes the need for fcntl after creating a socket :) 
							
						 
						
							2024-09-11 21:59:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c77ad5fb34 
								
							 
						 
						
							
							
								
								Kernel: Implement copy-on-write memory for file backed `mmap`s  
							
							
							
						 
						
							2024-09-11 19:33:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								64a3893f6f 
								
							 
						 
						
							
							
								
								Kernel: Add command line option to disable AML parsing  
							
							... 
							
							
							
							This can be handy if my broken AML parser crashes or hangs while parsing
AML :D 
							
						 
						
							2024-09-10 16:20:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								eabe759ebf 
								
							 
						 
						
							
							
								
								Kernel: Don't require APs that are not started to start :D  
							
							
							
						 
						
							2024-09-10 16:19:43 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a4838386e6 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary branch from uncanonicalizing addresses  
							
							
							
						 
						
							2024-09-10 16:19:16 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c65613901f 
								
							 
						 
						
							
							
								
								Kernel: Fix AML aliases and package elements  
							
							
							
						 
						
							2024-09-10 16:18:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								de35cec2e1 
								
							 
						 
						
							
							
								
								Kernel: Allow private file mappings past file end  
							
							... 
							
							
							
							This is just to make memory mapping ELF files easier :D 
							
						 
						
							2024-09-05 14:48:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2f241e1b61 
								
							 
						 
						
							
							
								
								Kernel: Implement FileBackedRegion::clone  
							
							
							
						 
						
							2024-09-05 13:59:09 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f30947336a 
								
							 
						 
						
							
							
								
								BuildSystem: Cleanup cmake files  
							
							
							
						 
						
							2024-09-05 12:52:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1138ec77ca 
								
							 
						 
						
							
							
								
								Kernel: Fix MemoryBackedRegion cloning for non page aligned size  
							
							
							
						 
						
							2024-09-04 21:14:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ddf1babfe1 
								
							 
						 
						
							
							
								
								Kernel: Cleanup constructor calls  
							
							
							
						 
						
							2024-08-31 02:23:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ef5af384e7 
								
							 
						 
						
							
							
								
								Kernel: Print userspace invalid pointer access address  
							
							
							
						 
						
							2024-08-30 15:34:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a134d16070 
								
							 
						 
						
							
							
								
								Kernel: Fix MemoryRegion test for contains_fully  
							
							
							
						 
						
							2024-08-30 15:33:58 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								827eec6af0 
								
							 
						 
						
							
							
								
								Kernel: Make .rodata read-only and add -orphan-handling=error  
							
							... 
							
							
							
							I don't really know why .rodata was marked writable :D 
							
						 
						
							2024-08-30 15:33:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8da2f12ba6 
								
							 
						 
						
							
							
								
								Kernel: Only load program headers of interpreter if its present  
							
							... 
							
							
							
							I was loading program headers of both executable and interpreter but
that is incorrect. The interpreter will itself load the program headers
of the executable. 
							
						 
						
							2024-08-28 21:19:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2bf65ef512 
								
							 
						 
						
							
							
								
								Kernel: Invoke ELF interpreter instead if it is specified  
							
							
							
						 
						
							2024-08-28 17:06:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d20752c318 
								
							 
						 
						
							
							
								
								Kernel: Make OpenFileDescritorSet::open take rvalue  
							
							... 
							
							
							
							This gets rid of some implicit allocations from copy constructors 
							
						 
						
							2024-08-28 16:36:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5f66ef34dd 
								
							 
						 
						
							
							
								
								Kernel: map userspace arguments after the entry point  
							
							... 
							
							
							
							This allows cleaner memory layout for processes that are not loaded to
default location 
							
						 
						
							2024-08-27 22:46:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								da0b4cd40e 
								
							 
						 
						
							
							
								
								Kernel: Allow MAP_FIXED in mmap  
							
							
							
						 
						
							2024-08-27 22:45:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2c520391eb 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add support for init_array and fini_array  
							
							
							
						 
						
							2024-08-27 00:47:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7c4b9218f2 
								
							 
						 
						
							
							
								
								Kernel: VirtualTTY now resets ansi state before printing anything  
							
							
							
						 
						
							2024-08-25 17:56:06 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								72f8138ca1 
								
							 
						 
						
							
							
								
								Kernel: Disable scheduler load balancing until I get it fixed  
							
							... 
							
							
							
							Scheduler keeps crashing all the time when running on multiple cores.
This patch disabled the load balancer, which seems to get rid of most
scheduler crashes. 
							
						 
						
							2024-08-25 15:37:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								991ae4383a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement fchmod  
							
							
							
						 
						
							2024-08-25 15:07:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2ce7205c80 
								
							 
						 
						
							
							
								
								Kernel: Add command line option to disable debug printing  
							
							... 
							
							
							
							The whole system can crash when debug output and tty output are done at
the same time. This patch is just a hack to prevent the crash :D 
							
						 
						
							2024-08-25 15:02:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fb35f06cf5 
								
							 
						 
						
							
							
								
								Kernel: Add better support for bootloaders loading the kernel  
							
							... 
							
							
							
							Before I assumed that bootloaders loaded the kernel at physical address
0, but this patch kinda allows loading to different addresses. This
still doesn't fully work as kernel bootstrap paging relies on kernel
being loaded at 0 
							
						 
						
							2024-08-22 14:48:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								abc788c756 
								
							 
						 
						
							
							
								
								Kernel: Improve output message when dumping all syscalls  
							
							
							
						 
						
							2024-08-22 14:48:21 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								63b616dc2e 
								
							 
						 
						
							
							
								
								Kernel: Hack non-blocking support for sockets  
							
							... 
							
							
							
							This is not thread safe and can still block if two programs refering to
the same socket try to read data at the same time 
							
						 
						
							2024-08-22 14:48:14 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cba12efeb1 
								
							 
						 
						
							
							
								
								Kernel: Ignore optional_actions in SYS_TCSETATTR  
							
							... 
							
							
							
							Currently all terminals are syncronous, so the actions don't do anything 
							
						 
						
							2024-08-22 14:47:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								37cd4ed504 
								
							 
						 
						
							
							
								
								Kernel: Add support for CSI @, b, d to VirtualTerminal  
							
							
							
						 
						
							2024-08-22 14:04:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								869bba4dad 
								
							 
						 
						
							
							
								
								Kernel: Add check for panic in timer interrupt handler  
							
							... 
							
							
							
							Previously processors would not get notified about kernel panic if they
were idling 
							
						 
						
							2024-08-22 14:03:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								23194d1f53 
								
							 
						 
						
							
							
								
								Kernel: Implement basic random device to /dev/random  
							
							
							
						 
						
							2024-08-22 14:02:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								969563c06a 
								
							 
						 
						
							
							
								
								Kernel: Don't load AP init code to 0xF000, but relocate it later  
							
							... 
							
							
							
							This cleans up the kernel executable as bootloaders don't have to
load AP init code straight to 0xF000, but it will be moved there once
kernel is doing the AP initialization. 
							
						 
						
							2024-08-21 13:37:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								066e8e1cc2 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary debug logging from VFS initialization  
							
							
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5cd7b40165 
								
							 
						 
						
							
							
								
								Kernel: Make BananBootloader info struct header compatible with C  
							
							
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c7b134ba4b 
								
							 
						 
						
							
							
								
								Kernel: Fix NVMe controller namespace numbering  
							
							... 
							
							
							
							namespace numbers were incrementing globally instead of per controller.
This led to two single namespace controllers creating nvme0n1 and
nvme1n2 
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ff62c262fe 
								
							 
						 
						
							
							
								
								Kernel: Fix PS/2 scancode set 2 keycodes for the bottom row keys  
							
							
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42e2c15e0c 
								
							 
						 
						
							
							
								
								Kernel: Add ps2=<scancode set> command line argument  
							
							... 
							
							
							
							This allows forcing specific scancode set on broken PS/2 emulations 
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								40c6989374 
								
							 
						 
						
							
							
								
								Kernel: Implement AML ObjectTypeOp  
							
							
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								71dc373610 
								
							 
						 
						
							
							
								
								Kernel: "Fix" AML _OSI string to return true for windows strings  
							
							... 
							
							
							
							This is the way its supposed to be done as other code paths are
untested... 
							
						 
						
							2024-08-18 20:51:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0fa16cf982 
								
							 
						 
						
							
							
								
								Kernel: Fix and add some AML to_underlying functions  
							
							
							
						 
						
							2024-08-18 20:44:51 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8902032b42 
								
							 
						 
						
							
							
								
								BuildSystem: Cleanup kernel cmake file  
							
							
							
						 
						
							2024-08-18 20:44:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								368f5e9799 
								
							 
						 
						
							
							
								
								Kernel: Add command lineoption `nousb` that will disable usb controller  
							
							
							
						 
						
							2024-08-16 22:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b1fe24bb57 
								
							 
						 
						
							
							
								
								Kernel: Hack AML integers to work better  
							
							... 
							
							
							
							Something is trying to store into a constant integers. Just by copying
not returning any integers as constants fixes it xD 
							
						 
						
							2024-08-16 13:04:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								490a28ee7a 
								
							 
						 
						
							
							
								
								Kernel/AML: General cleanup and compliance improvements  
							
							
							
						 
						
							2024-08-15 23:14:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								75884ca6b8 
								
							 
						 
						
							
							
								
								Kernel/AML: Allow calling method through named objects  
							
							
							
						 
						
							2024-08-15 23:13:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d729d7f570 
								
							 
						 
						
							
							
								
								Kernel: Implement AML storing to Buffer  
							
							
							
						 
						
							2024-08-15 23:12:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6408bb2efa 
								
							 
						 
						
							
							
								
								Kernel: Add AML API for getting underlying value of nodes  
							
							
							
						 
						
							2024-08-15 23:11:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d8dabab4fb 
								
							 
						 
						
							
							
								
								Kernel: Implement AML CopyObjectOp  
							
							
							
						 
						
							2024-08-15 20:55:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4dc107f77a 
								
							 
						 
						
							
							
								
								Kernel: Fix AML Register/Reference accesses  
							
							
							
						 
						
							2024-08-15 20:55:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								eaf06d239c 
								
							 
						 
						
							
							
								
								Kernel: Cleanup and fix AML Method calls  
							
							
							
						 
						
							2024-08-15 20:54:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d9b3a4bf77 
								
							 
						 
						
							
							
								
								Kernel: Add more conversions for AML Integer, Register, String  
							
							
							
						 
						
							2024-08-15 20:51:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cf970d5914 
								
							 
						 
						
							
							
								
								Kernel: Add better conversion for AML Alias, Name and Reference  
							
							
							
						 
						
							2024-08-15 20:48:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1cfe3dd4da 
								
							 
						 
						
							
							
								
								Kernel: Implement AML BreakOp and ContinueOp  
							
							
							
						 
						
							2024-08-15 19:08:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								51d1e47bfe 
								
							 
						 
						
							
							
								
								Kernel: Fix AML CreateFieldOp to take bit index instead of byte index  
							
							
							
						 
						
							2024-08-15 19:05:58 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e0a447bfaf 
								
							 
						 
						
							
							
								
								Kernel: Add _GL to ACPI root namespace  
							
							
							
						 
						
							2024-08-15 02:28:22 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3f5ee6f414 
								
							 
						 
						
							
							
								
								Kernel: Rewrite the AML conversion API  
							
							... 
							
							
							
							This doesn't currently make the interpreter any better, but it will make
further implementation easier to be spec (or hardware...) compliant 
							
						 
						
							2024-08-15 02:25:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								44d5c8c4b4 
								
							 
						 
						
							
							
								
								Kernel: Implement AML To{Buffer,Integer,String}Op  
							
							
							
						 
						
							2024-08-14 20:28:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								17b7e9e772 
								
							 
						 
						
							
							
								
								Kernel: Allow all named objects to fail cleanly if name exists  
							
							
							
						 
						
							2024-08-14 20:28:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								957df08932 
								
							 
						 
						
							
							
								
								Kernel: root command line option can be specified as an UUID  
							
							... 
							
							
							
							Format is the same as in linux
root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
This makes it easier to boot when computer has multiple disks installed 
							
						 
						
							2024-08-14 13:23:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bb40069773 
								
							 
						 
						
							
							
								
								Kernel: Add nice debug prints for device addition/removal  
							
							
							
						 
						
							2024-08-14 13:23:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								37d5b60f5c 
								
							 
						 
						
							
							
								
								Kernel: Implement AML {Event,Reset,Signal,Wait}Op  
							
							
							
						 
						
							2024-08-14 11:59:34 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								feadea0e91 
								
							 
						 
						
							
							
								
								Kernel: Fix AML unaligned integer reads and buffer shifts over 32  
							
							
							
						 
						
							2024-08-13 23:44:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f71a29b6c4 
								
							 
						 
						
							
							
								
								Kernel: Implement AliasOp for AML interpreter  
							
							
							
						 
						
							2024-08-13 22:42:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ec4cfdee23 
								
							 
						 
						
							
							
								
								Kernel: Fix and cleanup a lot of AML code  
							
							... 
							
							
							
							Node now have APIs to convert them to buffer, integer and string. This
allows possibility to handle methods that need explicitly use one of the
overloads instead of integer.
This patch also adds handling of DebugOp. This is used quite heavily in
uACPIs test suite. 
							
						 
						
							2024-08-13 22:42:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								dd79db6383 
								
							 
						 
						
							
							
								
								Kernel: AML implement CreateFieldOp  
							
							
							
						 
						
							2024-08-13 18:52:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								723e458bd7 
								
							 
						 
						
							
							
								
								Kernel/Terminal: Update terminal color themes and fix TTY bright/dark  
							
							
							
						 
						
							2024-08-12 21:15:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								39be57424c 
								
							 
						 
						
							
							
								
								Kernel: Fix SYS_SEEK with SEEK_END  
							
							... 
							
							
							
							I was subtracting the offset from file end when I should have added it. 
							
						 
						
							2024-08-12 19:13:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f37e1c2229 
								
							 
						 
						
							
							
								
								Kernel: Map .rodata as read only instead of read-write  
							
							
							
						 
						
							2024-08-12 14:28:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4d1b32f770 
								
							 
						 
						
							
							
								
								Kernel: open does not need TTY_INIT to set the controlling terminal  
							
							
							
						 
						
							2024-08-11 01:02:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a5a097fa4a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add initial pseudo terminal support  
							
							... 
							
							
							
							This patch implements posix_openpt() and ptsname()
grantpt() and unlockpt() are left in LibC as stubs, as posix_openpt
currently does all of the needed work. 
							
						 
						
							2024-08-11 01:02:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ad645f31d0 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add setsid()  
							
							
							
						 
						
							2024-08-11 00:58:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bac3219a01 
								
							 
						 
						
							
							
								
								Kernel: Fix `Pipe::can_read_impl()`  
							
							... 
							
							
							
							The logic was inversed, which made all select calls report incorrectly
for pipes. This made terminal emulator just freeze. 
							
						 
						
							2024-08-10 18:18:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								09a527fb12 
								
							 
						 
						
							
							
								
								Kernel: Fix scheduler thread counter  
							
							... 
							
							
							
							I was actually never incrementing the counter :D 
							
						 
						
							2024-08-10 18:18:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ed325b4a45 
								
							 
						 
						
							
							
								
								Kernel: Fix typo in userspace address validation  
							
							
							
						 
						
							2024-08-09 16:52:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c67b5e812 
								
							 
						 
						
							
							
								
								Kernel: Fix wait syscall to report status of exited children  
							
							
							
						 
						
							2024-08-09 16:52:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b6c964c444 
								
							 
						 
						
							
							
								
								Kernel: Rewrite pipes  
							
							... 
							
							
							
							Pipes have now a fixed size buffer and pipe clone and close is working
again. 
							
						 
						
							2024-08-09 16:50:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								44f0ec601f 
								
							 
						 
						
							
							
								
								Kernel: Expose /proc/meminfo and fix /proc/<pid>/meminfo  
							
							... 
							
							
							
							Thread was unconditionally calling <stack>->size() without validating
that the stack actually exists 
							
						 
						
							2024-08-09 15:58:56 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2a659a9d03 
								
							 
						 
						
							
							
								
								BuildSystem: Fix enable sse definition  
							
							... 
							
							
							
							__enable_sse was never actually defined for any targets. This also adds
__arch definition for libc (so `utsname` works). 
							
						 
						
							2024-08-09 15:52:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7e7c3a1bb3 
								
							 
						 
						
							
							
								
								Kernel: VirtualTTY now handles dark colors  
							
							... 
							
							
							
							I have seemingly forgot to add these before 
							
						 
						
							2024-08-09 15:52:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7afdfb150f 
								
							 
						 
						
							
							
								
								LibC: Rewrite sigprocmask in terms of pthread_sigmask  
							
							... 
							
							
							
							Also don't fail SYS_SIGPROCMASK if how is invalid and set is NULL. 
							
						 
						
							2024-08-07 17:01:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0a7c316ffb 
								
							 
						 
						
							
							
								
								Kernel: Fix race condition when blocking threads  
							
							... 
							
							
							
							If thread was blocked, but had not reached block queue, you might
already get an unblock request which would fail on an assertion.
If blocked thread was load balanced to another processor and unblocked
simultaneously, there was a race condition. 
							
						 
						
							2024-08-05 20:14:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e72424e01a 
								
							 
						 
						
							
							
								
								Kernel: Implement ANSI CSI M and fix ANSI CSI L  
							
							... 
							
							
							
							There are not maybe not correct, but work much better than the old ones 
							
						 
						
							2024-08-05 15:53:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a578527012 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement ioctl(TIOCGWINSZ)  
							
							... 
							
							
							
							This allows ncurses to get the window size! 
							
						 
						
							2024-08-01 22:56:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								af78a2d080 
								
							 
						 
						
							
							
								
								Kernel: Implement ANSI CSI L for TTY  
							
							... 
							
							
							
							vim seems to be using this, so I decided its needed 
							
						 
						
							2024-08-01 22:08:46 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								840000d02b 
								
							 
						 
						
							
							
								
								Kernel: Make sure null signal is not send with kill()  
							
							
							
						 
						
							2024-08-01 21:41:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9ea4c777ad 
								
							 
						 
						
							
							
								
								Kernel: TTY now handles ESC key presses  
							
							... 
							
							
							
							This allows exiting vim :D 
							
						 
						
							2024-08-01 21:41:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a33b63d066 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement alarm() and setitimer()  
							
							... 
							
							
							
							This makes vim able to start! 
							
						 
						
							2024-08-01 21:09:56 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								da3b30cd94 
								
							 
						 
						
							
							
								
								Kernel: Add macro to dump all syscalls and their return values  
							
							
							
						 
						
							2024-08-01 18:21:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4599e1dec5 
								
							 
						 
						
							
							
								
								Kernel: Make schedler not crash when unblocking active thread  
							
							... 
							
							
							
							This was happening when sending signals to processes that were currently
running. 
							
						 
						
							2024-08-01 18:21:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6de350ce9d 
								
							 
						 
						
							
							
								
								Kernel/LibC: Cleanup, fix and implement a lot of signal code  
							
							... 
							
							
							
							This patch implements sigsets and some of their usages 
							
						 
						
							2024-08-01 17:01:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								838d31fa41 
								
							 
						 
						
							
							
								
								Kernel: Implement more POSIX compliant open() and openat() syscalls  
							
							
							
						 
						
							2024-08-01 15:35:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7c3b6307d9 
								
							 
						 
						
							
							
								
								Kernel: Cleanup USB initialization code  
							
							
							
						 
						
							2024-07-31 23:23:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f0be4f86a6 
								
							 
						 
						
							
							
								
								LibC/Kernel: Implement access  
							
							
							
						 
						
							2024-07-30 11:51:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e5bb843059 
								
							 
						 
						
							
							
								
								LibC/Kernel: Implement ttyname  
							
							
							
						 
						
							2024-07-30 11:41:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								681d8327f5 
								
							 
						 
						
							
							
								
								LibC/Kernel: Cleanup termios code  
							
							... 
							
							
							
							This is still not correct, but much better than it used to be 
							
						 
						
							2024-07-30 11:10:43 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9bc02c81f8 
								
							 
						 
						
							
							
								
								Kernel: Map DMA and PCI MMIO as uncached  
							
							
							
						 
						
							2024-07-30 11:10:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bb1738db8c 
								
							 
						 
						
							
							
								
								Kernel: Make thread unblocking O(1)  
							
							... 
							
							
							
							This is still bit broken. VirtualBox seems to freeze sometimes, but I
could not recreate this on qemu (with and without kvm) or real hardware. 
							
						 
						
							2024-07-24 00:31:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9548c592a3 
								
							 
						 
						
							
							
								
								Kernel: Always print basic info about xHCI controller  
							
							... 
							
							
							
							Its nice to see that the controller is getting initalized 
							
						 
						
							2024-07-23 09:09:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cda0276d39 
								
							 
						 
						
							
							
								
								Kernel: Force PCI irq line usage when not using APIC  
							
							... 
							
							
							
							afaik PIC does not support MSI 
							
						 
						
							2024-07-23 09:08:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								539afb329a 
								
							 
						 
						
							
							
								
								Kernel: All processors use LAPIC timer when running with APIC  
							
							... 
							
							
							
							This makes scheduler preemption much cleaner as bsb does not have to
send smp messages to notify other processes about timer interrupt.
Also PIT percision is now "full" 0.8 us instead of 1 ms that I was using
before. 
							
						 
						
							2024-07-23 02:28:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3e0150f847 
								
							 
						 
						
							
							
								
								Kernel: Pressing F1 now toggles rendering of CPU loads to the terminal  
							
							... 
							
							
							
							This can be nice for seeing the performance and problems on the load
balancing algorithm. 
							
						 
						
							2024-07-22 00:43:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f8261c60c0 
								
							 
						 
						
							
							
								
								Kernel: Rewrite the whole scheduler and re-architecture SMP handling  
							
							... 
							
							
							
							Change Semaphore -> ThreadBlocker
  This was not a semaphore, I just named it one because I didn't know
  what semaphore was. I have meant to change this sooner, but it was in
  no way urgent :D
Implement SMP events. Processors can now be sent SMP events through
IPIs. SMP events can be sent either to a single processor or broadcasted
to every processor.
PageTable::{map_page,map_range,unmap_page,unmap_range}() now send SMP
event to invalidate TLB caches for the changed pages.
Scheduler no longer uses a global run queue. Each processor has its own
scheduler that keeps track of the load on the processor. Once every
second schedulers do load balancing. Schedulers have no access to other
processors' schedulers, they just see approximate loads. If scheduler
decides that it has too much load, it will send a thread to another
processor through a SMP event.
Schedulers are currently run using the timer interrupt on BSB. This
should be not the case, and each processor should use its LAPIC timer
for interrupts. There is no reason to broadcast SMP event to all
processors when BSB gets timer interrupt.
Old scheduler only achieved 20% idle load on qemu. That was probably a
very inefficient implementation. This new scheduler seems to average
around 1% idle load. This is much closer to what I would expect. On my
own laptop idle load seems to be only around 0.5% on each processor. 
							
						 
						
							2024-07-22 00:33:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9f90eeab05 
								
							 
						 
						
							
							
								
								Kernel: Fix stack pointer OOB check  
							
							... 
							
							
							
							i686 does not push the stack pointer on interrupt when no CPL change
happens. 
							
						 
						
							2024-07-22 00:27:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1ee37cb671 
								
							 
						 
						
							
							
								
								Kernel: Make sure stack is aligned on interrupts for i686 target  
							
							... 
							
							
							
							I just realized that only x86_64 aligns stack pointer when interrupt is
triggered. 
							
						 
						
							2024-07-22 00:10:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8fe798de6d 
								
							 
						 
						
							
							
								
								Kernel: Make PIT counter atomic with spinlock  
							
							
							
						 
						
							2024-07-21 18:56:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								86b6714777 
								
							 
						 
						
							
							
								
								Kernel: Add command line option to boot without smp  
							
							
							
						 
						
							2024-07-21 17:40:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								77b5e6d44a 
								
							 
						 
						
							
							
								
								Kernel: Make ATABus use BAN::Atomic<> instead of gcc builtin atomics  
							
							
							
						 
						
							2024-07-21 17:39:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ffe73165f9 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI typo serail -> serial  
							
							
							
						 
						
							2024-07-21 17:36:29 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								96c7e9e29d 
								
							 
						 
						
							
							
								
								Kernel: Cleanup VirtualRange code  
							
							... 
							
							
							
							Virtual range does not need to look into the page table for mapped
physcial pages. It can (and should) just keep track of them itself. 
							
						 
						
							2024-07-21 17:35:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								02051ed60f 
								
							 
						 
						
							
							
								
								Kernel: Move keyboard kernel panic to the general input device  
							
							... 
							
							
							
							This will allow command to work without requiring it per keyboard driver 
							
						 
						
							2024-07-21 17:33:38 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f49689caac 
								
							 
						 
						
							
							
								
								Kernel: Implement API for sending IPIs for only one processor  
							
							... 
							
							
							
							Also move the spin wait to check for pending IPI sends to the start of
ipi sending function. There is no need to wait for IPI send succeeding
right after it. It is enough to make sure there are not multiple IPIs
being sent at the same time. 
							
						 
						
							2024-07-21 17:30:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								974b9b992d 
								
							 
						 
						
							
							
								
								Kernel: Fix process exiting infinite loop  
							
							... 
							
							
							
							If process was exiting and had a process waiting for it and that waiting
process got interrupted, the exiting process could never exit. 
							
						 
						
							2024-07-18 21:40:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4b917390ac 
								
							 
						 
						
							
							
								
								Kernel: Fix sse state saving  
							
							... 
							
							
							
							This was broken when I added SMP support. This patch makes sse kind of
dumb as it is saved and restored on every interrupt, but now it at least
works properly... I'll have to look into how sse can get optimized
nicely with SMP. Simple way would be pinning each thread to a specific
processor and doing pretty much what I had before, but sse thread saved
in processor rather than static global. 
							
						 
						
							2024-07-16 23:15:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7a0fb9a57f 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY scroll clearing first and/or last characters from line  
							
							
							
						 
						
							2024-07-16 22:49:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								58fcd2b2fe 
								
							 
						 
						
							
							
								
								Kernel: Fix multi-interface USB device initialization  
							
							
							
						 
						
							2024-07-16 22:29:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e30952efee 
								
							 
						 
						
							
							
								
								Kernel: Implement key repeating for USB keyboard  
							
							... 
							
							
							
							USB keyboards don't send repeating keys automatically, so it has to be
emulated in software. 
							
						 
						
							2024-07-16 11:54:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1337758660 
								
							 
						 
						
							
							
								
								Kernel: Make USB HID interfaces configure all endpoints  
							
							
							
						 
						
							2024-07-16 00:23:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								339e8a7910 
								
							 
						 
						
							
							
								
								Kernel: Fix USB keyboard state updating with variable reports  
							
							
							
						 
						
							2024-07-16 00:03:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a60b460701 
								
							 
						 
						
							
							
								
								Kernel: Update USB HID code to support multiple top-level collections  
							
							... 
							
							
							
							This allows me to use my laptops own keyboard! 
							
						 
						
							2024-07-16 00:01:53 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a5cb4057f9 
								
							 
						 
						
							
							
								
								Kernel: Implement unified input files for device hot-plugging support  
							
							... 
							
							
							
							/dev/keyboard and /dev/mouse can be read for events from any attached
keyboard or mouse respectively. This makes device hot-plugging support
pretty much automatic for TTY, GUI, and whatever takes input. 
							
						 
						
							2024-07-15 22:11:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9d7f97ccd5 
								
							 
						 
						
							
							
								
								Kernel: Implement DevFileSystem::remove_device  
							
							... 
							
							
							
							This function cleanly removes the devices from the whole filesystem.
USB devices are now removed from the filesystem as soon as they are
destroyed. 
							
						 
						
							2024-07-15 22:10:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0578d41500 
								
							 
						 
						
							
							
								
								Kernel: Implement WriteCombining memory  
							
							... 
							
							
							
							This makes framebuffer much faster on real hardware 
							
						 
						
							2024-07-15 22:09:09 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42c3fa24f0 
								
							 
						 
						
							
							
								
								Kernel: Add support for HID Report ID and parsing all collections  
							
							... 
							
							
							
							Only the first top-level collection is used for the device, but that
seems to generally be what keyboard and mouse use for input. 
							
						 
						
							2024-07-15 15:51:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								60b396fee5 
								
							 
						 
						
							
							
								
								Kernel: Add mouse move and scroll event merging back  
							
							... 
							
							
							
							This makes mouse work much faster when reading can't keep up with the
amount of events. 
							
						 
						
							2024-07-15 15:45:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4cd9252ff6 
								
							 
						 
						
							
							
								
								Kernel: Fix USB code  
							
							... 
							
							
							
							Fix USB Keyboard scan code table for bottom row of keyboard
Support multiple interfaces on a single USB device
Add usb mouse to default qemu settings 
							
						 
						
							2024-07-15 11:48:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								75875d3a8f 
								
							 
						 
						
							
							
								
								Kernel: Set interval and average trb length on configure endpoint  
							
							... 
							
							
							
							Real controllers seem to require this while spec 4.8.2.4 says that they
should be left as zero. 
							
						 
						
							2024-07-15 11:46:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								86e9d92ecb 
								
							 
						 
						
							
							
								
								Kernel: Take ownership of xHCI controller from bios  
							
							
							
						 
						
							2024-07-14 03:31:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								baa4e6475a 
								
							 
						 
						
							
							
								
								Kernel: Implement basic USB Mouse  
							
							... 
							
							
							
							This has the same problem I described in previous commit for keyboard 
							
						 
						
							2024-07-14 02:11:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ac5c77ee2c 
								
							 
						 
						
							
							
								
								Kernel: Implement USB Keyboard  
							
							... 
							
							
							
							This is kinda hacky, as I had disable the PS/2 initialization so that
usb keyboard gets /dev/keyboard0. I should add device hot plugging
support for TTY and GUI... 
							
						 
						
							2024-07-14 02:09:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1efc6a1385 
								
							 
						 
						
							
							
								
								Kernel: Implement simple USB HID driver  
							
							... 
							
							
							
							This should be easily expandable to add HID devices 
							
						 
						
							2024-07-14 02:04:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								749be67df3 
								
							 
						 
						
							
							
								
								Kernel: Fix cxxabi for function static variable guards  
							
							
							
						 
						
							2024-07-14 01:53:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a97a574718 
								
							 
						 
						
							
							
								
								Kernel: Rewrite the whole input system  
							
							... 
							
							
							
							PS/2 code is now kind of messed up, but it works. Keyboards and mice are
now an abstract class that is automatically exposed to userspace. This
will make adding USB input much nicer. 
							
						 
						
							2024-07-14 01:53:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f120da3aca 
								
							 
						 
						
							
							
								
								Kernel: USB device now sets the current configuration  
							
							
							
						 
						
							2024-07-12 11:26:06 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								240684bc1f 
								
							 
						 
						
							
							
								
								Kernel: Refactor some xHCI code and add new definitions  
							
							
							
						 
						
							2024-07-12 11:25:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e905634343 
								
							 
						 
						
							
							
								
								Kernel: Fix bugs and cleanup USB and xHCI code and API  
							
							
							
						 
						
							2024-07-11 14:10:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								14dce1abac 
								
							 
						 
						
							
							
								
								Kernel: Start work on USB stack  
							
							... 
							
							
							
							Current code can enumerate all xHCI devices and detect their type based
on the class code on device or interface descriptors. 
							
						 
						
							2024-07-10 12:06:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5dc441c4af 
								
							 
						 
						
							
							
								
								Kernel/userspace: Implement KD_LOADFONT and loadfont program  
							
							
							
						 
						
							2024-07-03 09:02:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f18c33563d 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI MSI-X allocation  
							
							
							
						 
						
							2024-06-30 20:36:43 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								08cbd009ac 
								
							 
						 
						
							
							
								
								Kernel: PCI don't report multi function bit with header_type()  
							
							
							
						 
						
							2024-06-29 22:11:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3d4219bfee 
								
							 
						 
						
							
							
								
								Kernel: Don't panic if nvme initialization fails  
							
							
							
						 
						
							2024-06-29 22:07:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1a844426c3 
								
							 
						 
						
							
							
								
								Kernel: Add fast path for framembuffer sync if bpp == 32  
							
							
							
						 
						
							2024-06-28 23:34:11 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42237a3bc8 
								
							 
						 
						
							
							
								
								Kernel: Implement fast scrolling for TTY  
							
							
							
						 
						
							2024-06-28 23:15:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								48a76426e7 
								
							 
						 
						
							
							
								
								BAN: Add more APIs for Atomic and make compare_exchage take a reference  
							
							
							
						 
						
							2024-06-28 21:47:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								31568fc5a1 
								
							 
						 
						
							
							
								
								Kernel: Rewrite Sockets to not be TmpInodes  
							
							... 
							
							
							
							TmpInodes just caused issues because TmpFS kept them alive. There was
really no reason for sockets to even be stored inside a TmpFS... 
							
						 
						
							2024-06-27 00:35:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cb07142832 
								
							 
						 
						
							
							
								
								Kernel: ACPI allow more calling or \_S5  
							
							... 
							
							
							
							Spec says that \_Sx must have 4 fields, but virtual box seems to only
have the two defined once. This patch allows shutodown on virtual box 
							
						 
						
							2024-06-25 23:25:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								60a05412c9 
								
							 
						 
						
							
							
								
								Kernel: ACPI implement SizeOf  
							
							
							
						 
						
							2024-06-25 23:24:51 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0179f5ea09 
								
							 
						 
						
							
							
								
								Kernel: ACPI add \_OS string  
							
							
							
						 
						
							2024-06-25 23:24:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f671ed7e3f 
								
							 
						 
						
							
							
								
								Kernel: ACPI implement integer stores to registers as copies  
							
							... 
							
							
							
							Before storing const integer and then modifying the register it would
error. 
							
						 
						
							2024-06-25 23:23:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2fccff5a35 
								
							 
						 
						
							
							
								
								Kernel: Implement ACPI IndexOp into Strings  
							
							
							
						 
						
							2024-06-25 23:23:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								af4b138094 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement realpath  
							
							... 
							
							
							
							realpath is implemented as a syscall. This is not really required but it
was the easiest way to get it working as there is already path
canonicalization at kernel level. 
							
						 
						
							2024-06-25 19:32:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								25099b4c98 
								
							 
						 
						
							
							
								
								Kernel: Don't validate O_SEARCH for non-directories  
							
							
							
						 
						
							2024-06-25 19:27:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d7b8458a56 
								
							 
						 
						
							
							
								
								Kernel: Fix TCP sending  
							
							... 
							
							
							
							TCP send was effectively always waiting for connection to close and then
return a value of 0. 
							
						 
						
							2024-06-25 11:04:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								67dfe0bcf3 
								
							 
						 
						
							
							
								
								BAN: Allow String::formatted to fail  
							
							
							
						 
						
							2024-06-25 11:04:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9e1b5cbaab 
								
							 
						 
						
							
							
								
								BuildSystem: Cleanup CMake code to allow libc only installation  
							
							... 
							
							
							
							There was no way to just install libc which is required for stdlibc++ 
							
						 
						
							2024-06-21 01:45:14 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4f0457a268 
								
							 
						 
						
							
							
								
								Kernel: Rewrite a lot of TCP code and implement TCP server sockets  
							
							... 
							
							
							
							TCP stack is now implemented much closer to spec 
							
						 
						
							2024-06-20 13:26:50 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bce16cdd6e 
								
							 
						 
						
							
							
								
								Kernel: Fix how socket closing works  
							
							... 
							
							
							
							Sockets are now closed only when they are not referenced any more. This
allows child process to close socket and still keep it open for the
parent. 
							
						 
						
							2024-06-19 10:39:44 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ad6d95ba52 
								
							 
						 
						
							
							
								
								BuildSystem: Rework the whole cmake build system  
							
							... 
							
							
							
							Now files are installed using the install() command instead of manually
copying files to their destinations. This allows automatic recompilation
of headers that did not work previously 
							
						 
						
							2024-06-19 09:40:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								318ce5dec8 
								
							 
						 
						
							
							
								
								All: Fix a lot of compiler warnings from header files  
							
							... 
							
							
							
							While reworking build system, header files started to report warnings. 
							
						 
						
							2024-06-18 23:02:10 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c69919738b 
								
							 
						 
						
							
							
								
								BuildSystem: Move all userpace libraries under the userspace directory  
							
							... 
							
							
							
							As the number of libraries is increasing, root directory starts to
expand. This adds better organization for libraries 
							
						 
						
							2024-06-18 13:14:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f1e366d36f 
								
							 
						 
						
							
							
								
								Kernel: Free keyboard mutex while waiting for data to read  
							
							... 
							
							
							
							This was making select hang if one thread was trying to read from
keyboard. 
							
						 
						
							2024-06-17 23:04:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								be7ed8e74a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement {get,set}sockopt()  
							
							... 
							
							
							
							These are pretty much dummy functions in the kernel side. Only case that
is handled is SOL_SOCKET with SO_ERROR. This is hard coded to return no
error. Network stack is currently synchronous, so all errors are already
reported through synchronous network functions. 
							
						 
						
							2024-06-17 20:56:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cad55a4da5 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement getsockname for ipv4 sockets  
							
							
							
						 
						
							2024-06-17 20:54:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								511fc870a1 
								
							 
						 
						
							
							
								
								BAN: Mark RefPtr and WeakPtr operator bool() as explicit  
							
							
							
						 
						
							2024-06-17 20:19:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ea7fc7f6c4 
								
							 
						 
						
							
							
								
								Kernel: Implement read-only FAT12/16/32 driver with long name support  
							
							... 
							
							
							
							You can now mount FAT filesystems! This code might not work perfectly
but my quick testing seemed to work on all (FAT12/16/32) variants. 
							
						 
						
							2024-06-14 01:04:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6b1d5d28be 
								
							 
						 
						
							
							
								
								Kernel: VFS root now has to be block device instead of partition  
							
							
							
						 
						
							2024-06-14 00:19:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								766439db6d 
								
							 
						 
						
							
							
								
								Kernel: Start work on adding support for new filesystems  
							
							... 
							
							
							
							Old code tried to create ext2 filesystem from all devices. 
							
						 
						
							2024-06-11 10:50:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d4903caafa 
								
							 
						 
						
							
							
								
								Kernel: Combine consecutive mouse move and scroll events  
							
							... 
							
							
							
							This makes mouse work much smoother when running without kvm. 
							
						 
						
							2024-06-11 00:07:31 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ffacff67cf 
								
							 
						 
						
							
							
								
								LibFont: Move PSF code to separate file  
							
							
							
						 
						
							2024-06-10 16:10:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								530c259e71 
								
							 
						 
						
							
							
								
								Kernel: Close unix domain socket when it gets destoyed  
							
							... 
							
							
							
							Inode closing is something that needs a complete rework. Currently all
sockets are closed when close() is called, which leads to connection
closing if you fork()/exec() with socket being marked as CLOEXEC.
Inodes should probably only be closed once they are not referenced
anywhere. 
							
						 
						
							2024-06-03 18:06:01 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								765ccfa18c 
								
							 
						 
						
							
							
								
								Kernel: Deliver SIGCHLD on process exit and ignore it properly  
							
							
							
						 
						
							2024-06-03 17:58:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bd1290706a 
								
							 
						 
						
							
							
								
								Kernel: Implement SharedMemoryObject cloning  
							
							
							
						 
						
							2024-06-03 03:41:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								aec5a09caf 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement SYS_ISATTY and isatty()  
							
							
							
						 
						
							2024-06-03 03:36:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								446220494e 
								
							 
						 
						
							
							
								
								Kernel: Unix domain sockets close can now be detected  
							
							... 
							
							
							
							When a unix domain socket is closed and it has a connection to another
socket, it will make the other socket readable and recv will return 0.
This allows detection of socket closing 
							
						 
						
							2024-06-02 16:48:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8bfacb0091 
								
							 
						 
						
							
							
								
								Kernel: Implement deletion of SMO objects  
							
							
							
						 
						
							2024-05-31 13:04:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0501f3bd99 
								
							 
						 
						
							
							
								
								Kernel: Move font code to its own library LibFont  
							
							
							
						 
						
							2024-05-31 10:47:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								84b3289a2a 
								
							 
						 
						
							
							
								
								Kernel: Move Scheduler::yield() lock check after interrupts disabled  
							
							... 
							
							
							
							I have no idea why this solves a bug where current processor has
scheduler lock at the beginning of yield. 
							
						 
						
							2024-05-31 02:56:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b760892de2 
								
							 
						 
						
							
							
								
								Kernel: Make pselect use nanosecods instead of milliseconds  
							
							
							
						 
						
							2024-05-31 02:56:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6840a8983c 
								
							 
						 
						
							
							
								
								Kernel: Make sure MSB is not set on SMO keys  
							
							
							
						 
						
							2024-05-29 20:01:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a1b3490764 
								
							 
						 
						
							
							
								
								Kernel: Improve random number generation for unsigned types  
							
							
							
						 
						
							2024-05-29 20:00:47 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								076f1efecb 
								
							 
						 
						
							
							
								
								Kernel: Fix 32 bit fast page locking  
							
							... 
							
							
							
							I forgot to change this when changing the lock type. 32 bit boots again
fine :D 
							
						 
						
							2024-05-29 19:44:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								53e572f072 
								
							 
						 
						
							
							
								
								Kernel: Fix s_fast_page_lock type on 32 bit target  
							
							
							
						 
						
							2024-05-29 18:04:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d4d530e6c8 
								
							 
						 
						
							
							
								
								Kernel: Implement basic shared memory objects  
							
							... 
							
							
							
							These can allocate memory that can be shared between processes using
a global key. There is currenly no safety checks meaning anyone can
map any shared memory object just by trying to map every possible key. 
							
						 
						
							2024-05-29 15:58:46 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								99270e96a9 
								
							 
						 
						
							
							
								
								Kernel: Lock debug lock while printing fault details  
							
							... 
							
							
							
							This allows multiprocessor to dump clean output on concurrent faults 
							
						 
						
							2024-05-29 15:49:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4bf7a08c80 
								
							 
						 
						
							
							
								
								Kernel: Allow SYS_PSELECT to work with timeout of zero  
							
							
							
						 
						
							2024-05-29 15:32:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3823de6552 
								
							 
						 
						
							
							
								
								Kernel: Add templated get function for Random  
							
							
							
						 
						
							2024-05-29 15:32:00 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8bc6c2eb20 
								
							 
						 
						
							
							
								
								Kernel: Move KeyEvent/MouseEvent from kernel to LibInput  
							
							
							
						 
						
							2024-05-28 23:30:08 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								87d52e5ebe 
								
							 
						 
						
							
							
								
								Kernel: Fix timer early wake message  
							
							... 
							
							
							
							When printing early return message, current time was read twice. This
could lead to early return check failing, but when printing and reading
the time again subtraction overflow would happen. 
							
						 
						
							2024-05-28 16:04:18 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								598a09c13d 
								
							 
						 
						
							
							
								
								Kernel: Allow select to work on any type of inode  
							
							
							
						 
						
							2024-05-28 16:03:54 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								18e2559b1e 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add SYS_TRUNCATE  
							
							
							
						 
						
							2024-05-28 01:08:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a1ab44d39f 
								
							 
						 
						
							
							
								
								Kernel: Optimize disk reads to read multiple sectors at once  
							
							... 
							
							
							
							Old StorageDevice::read_sectors() read each sector separately if the
underlying disk had a disk cache. This patch allows multiple sectors to
be read even if the disk cache exists and contains some of the sectors.
Only sectors that could not be found from the disk cache are actually
read from the disk. This optimization is not done for writing, which
still will write each sector separately, if disk cache has no memory to
store new sectors. It would feel kind of unnecessary optimization as you
have greater problems if disk cache cannot allocate a single page. 
							
						 
						
							2024-05-27 15:52:34 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8b1514e575 
								
							 
						 
						
							
							
								
								Kernel: Make all storage devices readable and writable  
							
							... 
							
							
							
							I only had a {read,write}_impl defined for ATABaseDevice. This patch
moves that implmentation to general storage device. 
							
						 
						
							2024-05-27 13:41:55 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2d3810874d 
								
							 
						 
						
							
							
								
								Kernel: Fix thread signal handling  
							
							... 
							
							
							
							Threads will now only handle signals once they are not holding any
mutexes. This removes some dead locks. 
							
						 
						
							2024-05-26 20:08:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2a4d986da5 
								
							 
						 
						
							
							
								
								Kernel: Add preliminary support for PCIe  
							
							... 
							
							
							
							Only segment 0 is supported, but devices can now be accessed through
mmio.
Adding more segments would require adding argument to every PCI API so
it is left for later. 
							
						 
						
							2024-05-25 20:50:07 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								df260fe0e8 
								
							 
						 
						
							
							
								
								Kernel: Process::validate_pointer_access now maps the whole range  
							
							... 
							
							
							
							This fixes a bug where userspace provided address is not fully mapped
and the kernel tries to read/write it while using PageTable fast page.
In the future userspace input should be copied on syscall entry, so
userspace could not modify the input during syscall. Currently there
is change that userspace input passes kernel syscall validation and
after that userspace could modify the input before the value is
actually used. 
							
						 
						
							2024-05-24 14:14:17 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2be4fe8404 
								
							 
						 
						
							
							
								
								Kernel: Make PageTable::s_fast_page_lock non-recursive  
							
							... 
							
							
							
							This lock is only used in wrapper of PageTable. There is no possiblity
of taking the lock outside of these wrappers. 
							
						 
						
							2024-05-24 14:12:35 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								06f4b0b29a 
								
							 
						 
						
							
							
								
								BAN: Make String and StringView header only  
							
							... 
							
							
							
							This allows linking with libc without having to link ban 
							
						 
						
							2024-05-23 15:43:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								83e3409bd8 
								
							 
						 
						
							
							
								
								Kernel/LibC: Update SYS_SEEK to return new offset and implement lseek  
							
							
							
						 
						
							2024-05-23 14:49:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0af74fccda 
								
							 
						 
						
							
							
								
								Kernel/LibC: Rework dirent structure  
							
							... 
							
							
							
							dirent now contains statically sized d_name. This allows using
sizeof on the name and dirent properly, which some programs seem
to be using. 
							
						 
						
							2024-05-22 20:19:59 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e77de1804f 
								
							 
						 
						
							
							
								
								Kernel: Fix some race conditions in TCP stack  
							
							... 
							
							
							
							Remove race condition if two acks are to be sent one after another.
Always unblock semaphore once TCP thread has done something. This
allows better chance of TCP sending to succeed.
There are multiple places in the networking code that would require
thread-safe entering to blocking mode. I should add some API for this
so that a lot of race conditions could be removed. 
							
						 
						
							2024-05-21 01:53:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e00b92225d 
								
							 
						 
						
							
							
								
								Kernel: Fix E1000 interrupt handling condition  
							
							... 
							
							
							
							I had written the ICR register check backwards which lead to interrupt
handling only when it was not needed, and no handling when it was
needed. This somehow still worked, just much slower often requiring tcp
resends from the server. 
							
						 
						
							2024-05-21 01:52:19 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e7e1dd91c7 
								
							 
						 
						
							
							
								
								Kernel: Implement ACPI reset  
							
							
							
						 
						
							2024-04-22 21:12:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								195c5e92a4 
								
							 
						 
						
							
							
								
								Kernel: Add floating bus detection for ATA Bus  
							
							
							
						 
						
							2024-04-22 21:12:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								26922ebb51 
								
							 
						 
						
							
							
								
								Kernel: Remove stack size check for keyboard layout initialization  
							
							... 
							
							
							
							Keyboard layout loading can take around 1 KB of stack for i686 target 
							
						 
						
							2024-04-22 21:11:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								693f90449f 
								
							 
						 
						
							
							
								
								Kernel: Rework AML package and implement indexing in to packages  
							
							
							
						 
						
							2024-04-19 11:26:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								34b10f61ce 
								
							 
						 
						
							
							
								
								Kernel: Make PIT reserve its IRQ  
							
							... 
							
							
							
							PIT did not reserve IRQ leading to kernel panic if it was being
initialized. 
							
						 
						
							2024-04-18 13:34:28 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1479b42112 
								
							 
						 
						
							
							
								
								Kernel: Don't even loop over processor when system has only BSP  
							
							
							
						 
						
							2024-04-18 13:33:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								bb061d2a0a 
								
							 
						 
						
							
							
								
								Kernel: Make 32bit not use large pages during boot  
							
							... 
							
							
							
							There is no guarantee that they are supported 
							
						 
						
							2024-04-18 13:33:15 +03:00