Bananymous 
							
						 
						
							
								36026d4ec6 
								
							 
						 
						
							
							
								
								Kernel: Cleanup TCP and add basic window scaling support  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								96767f5ca8 
								
							 
						 
						
							
							
								
								Kernel: Implement PCI interrupt routing  
							
							... 
							
							
							
							This does not really work but I have no idea what I'm doing wrong 
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								27613da5ea 
								
							 
						 
						
							
							
								
								Kernel: Route PCI Interrupt Link Device interrupts  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c1fc65c7c 
								
							 
						 
						
							
							
								
								Kernel: Add API to reserve GSI instead of irq  
							
							... 
							
							
							
							This also fixes a bug with IOAPIC gsi_base != 0 
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0474ac4262 
								
							 
						 
						
							
							
								
								Kernel: Expose ACPI resolve_package_element to outside  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								aba49cc93f 
								
							 
						 
						
							
							
								
								Kernel: Add API to get ACPI reference paths  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0e085b30cc 
								
							 
						 
						
							
							
								
								Kernel: ACPI add easier API for calling methods with arguments  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								35149b6960 
								
							 
						 
						
							
							
								
								Kernel: Add helper functions to create AML String and Buffer  
							
							
							
						 
						
							2025-04-01 23:09:30 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3800d5420e 
								
							 
						 
						
							
							
								
								Kernel: Collect created AML nodes in add_{named,alias}...  
							
							... 
							
							
							
							This makes it harder to miss adding scoped objects. Before I was not
deleting all types of nodes on method return 
							
						 
						
							2025-04-01 23:09:25 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b145c1ab64 
								
							 
						 
						
							
							
								
								Kernel: Add easier api for evaluating ACPI nodes  
							
							
							
						 
						
							2025-04-01 23:09:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								b8a3439219 
								
							 
						 
						
							
							
								
								Kernel: Add getter for ACPI namespace  
							
							
							
						 
						
							2025-04-01 23:09:15 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								088f77a226 
								
							 
						 
						
							
							
								
								Kernel: Add super basic support for USB keyboard LEDs  
							
							... 
							
							
							
							This is very hacky but it seems to mostly work. Also for some reason
this fixed my Razer Mamba mouse???? 
							
						 
						
							2025-02-11 02:18:50 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4dd6c85df2 
								
							 
						 
						
							
							
								
								Kernel: Fix USB keyboard Scroll lock  
							
							... 
							
							
							
							I was using 8 bit modifier and ScrollLock bit does not fit this. Also I
was not generating ScrollLock keypresses 
							
						 
						
							2025-02-11 02:16:38 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d0452a3510 
								
							 
						 
						
							
							
								
								Kernel: Fix xHCI controller destruction  
							
							... 
							
							
							
							Port updater task was not actually able to exit without a kernel panic.
This patch makes controller wait until port updater exits itself :D 
							
						 
						
							2025-02-10 22:58:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								22b32a0fe5 
								
							 
						 
						
							
							
								
								Kernel: Expose PCI interrupt mechanism from PCIDevice  
							
							
							
						 
						
							2025-02-10 22:57:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ad143c184f 
								
							 
						 
						
							
							
								
								Kernel: Add basic support for USB hubs  
							
							... 
							
							
							
							This is still buggy and some hubs lead to usb transaction errors. I'll
have to debug this but this shouldn't prevent any already working device
from working 
							
						 
						
							2025-02-10 22:56:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								267fdf9fa1 
								
							 
						 
						
							
							
								
								Kernel: Remove storage devices after unplugging them  
							
							
							
						 
						
							2025-02-07 18:04:54 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7de689055c 
								
							 
						 
						
							
							
								
								Kernel: Pass xHCI device information in structs  
							
							... 
							
							
							
							This makes code more readable and extendable 
							
						 
						
							2025-02-06 23:18:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								63b15a8855 
								
							 
						 
						
							
							
								
								Kernel: Rename USB initialize_endpoint -> configure_endpoint  
							
							... 
							
							
							
							This makes more sense as the USB command is CONFIGURE_ENDPOINT
Also configure_endpoint can be called multiple times on the same
endpoint. There was no reason to limit this to only one call. 
							
						 
						
							2025-02-06 22:10:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a2a7302964 
								
							 
						 
						
							
							
								
								Kernel: Make sure USB class driver is deinitialized before xhci device  
							
							
							
						 
						
							2025-02-06 22:00:26 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6768a18475 
								
							 
						 
						
							
							
								
								Kernel: Don't parse xHCI custom slot_types  
							
							... 
							
							
							
							xHCI spec mandates that slot_type for USB protocol is 0. 
							
						 
						
							2025-02-06 21:41:44 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								242ed4a3c2 
								
							 
						 
						
							
							
								
								Kernel: Remove support for custom xHCI speed_ids  
							
							... 
							
							
							
							This gets really weird with hubs and I don't think even linux handles
them. 
							
						 
						
							2025-02-06 21:38:30 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f9b70d1b5b 
								
							 
						 
						
							
							
								
								Kernel: Don't enter infinite loop on unexpected serial behaviour  
							
							
							
						 
						
							2025-02-06 20:59:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								faa5252191 
								
							 
						 
						
							
							
								
								Kernel: Fix TTY ANSI CSI m and prevent crash :)  
							
							
							
						 
						
							2025-02-06 20:58:03 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ee078fc638 
								
							 
						 
						
							
							
								
								Kernel: Fix fd status/descriptor flag handling  
							
							... 
							
							
							
							I was not sharing status and offset on fork and I was sharing descriptor
flags on dup/dup2 
							
						 
						
							2025-01-17 20:12:04 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9893c90e74 
								
							 
						 
						
							
							
								
								Kernel: Remove SYS_DUP and implement it using fcntl F_DUPFD  
							
							
							
						 
						
							2025-01-17 19:29:47 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								437fa45ca2 
								
							 
						 
						
							
							
								
								Kernel: Add helper to find ACPI devices with EISA id  
							
							
							
						 
						
							2024-12-18 01:45:00 +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 
							
						 
						
							
								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 
							
						 
						
							
								713daf6cd3 
								
							 
						 
						
							
							
								
								Kernel/LibC: Add support for creating hardlinks  
							
							
							
						 
						
							2024-12-03 16:12:26 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								8bf14d542e 
								
							 
						 
						
							
							
								
								Kernel: Move SCSI device rdev allocation out of ATA code  
							
							
							
						 
						
							2024-11-21 13:36:59 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								55fbd09e45 
								
							 
						 
						
							
							
								
								Kernel: Rewrite physical memory allocation with PageTable::fast_pages  
							
							
							
						 
						
							2024-10-14 11:32:54 +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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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 
							
						 
						
							
								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