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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								c65613901f 
								
							 
						 
						
							
							
								
								Kernel: Fix AML aliases and package elements  
							
							
							
						 
						
							2024-09-10 16:18:42 +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 
							
						 
						
							
								991ae4383a 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement fchmod  
							
							
							
						 
						
							2024-08-25 15:07:42 +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 
							
						 
						
							
								37cd4ed504 
								
							 
						 
						
							
							
								
								Kernel: Add support for CSI @, b, d to VirtualTerminal  
							
							
							
						 
						
							2024-08-22 14:04:45 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								23194d1f53 
								
							 
						 
						
							
							
								
								Kernel: Implement basic random device to /dev/random  
							
							
							
						 
						
							2024-08-22 14:02:26 +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 
							
						 
						
							
								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 
							
						 
						
							
								0fa16cf982 
								
							 
						 
						
							
							
								
								Kernel: Fix and add some AML to_underlying functions  
							
							
							
						 
						
							2024-08-18 20:44:51 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								368f5e9799 
								
							 
						 
						
							
							
								
								Kernel: Add command lineoption `nousb` that will disable usb controller  
							
							
							
						 
						
							2024-08-16 22:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								490a28ee7a 
								
							 
						 
						
							
							
								
								Kernel/AML: General cleanup and compliance improvements  
							
							
							
						 
						
							2024-08-15 23:14:13 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								a33b63d066 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement alarm() and setitimer()  
							
							... 
							
							
							
							This makes vim able to start! 
							
						 
						
							2024-08-01 21:09:56 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								8fe798de6d 
								
							 
						 
						
							
							
								
								Kernel: Make PIT counter atomic with spinlock  
							
							
							
						 
						
							2024-07-21 18:56:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								77b5e6d44a 
								
							 
						 
						
							
							
								
								Kernel: Make ATABus use BAN::Atomic<> instead of gcc builtin atomics  
							
							
							
						 
						
							2024-07-21 17:39:26 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								60a05412c9 
								
							 
						 
						
							
							
								
								Kernel: ACPI implement SizeOf  
							
							
							
						 
						
							2024-06-25 23:24:51 +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