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