Bananymous 
							
						 
						
							
								3aa20a3a32 
								
							 
						 
						
							
							
								
								Kernel: Fix ACPI _GPE calling  
							
							... 
							
							
							
							This adds patch adds support for extended GPEs and the second GPE
register block. 
							
						 
						
							2025-08-07 19:35:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								de7c3d3d29 
								
							 
						 
						
							
							
								
								Kernel: Don't try to create . in USTAR  
							
							... 
							
							
							
							Our build system adds . entry to the tar archive and it should be
handled as an no-op 
							
						 
						
							2025-08-07 19:35:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3f89df338e 
								
							 
						 
						
							
							
								
								IDT: Remove stack OOB check  
							
							... 
							
							
							
							This makes debugging easier when you can see the actual register values
and what is mapped and where 
							
						 
						
							2025-08-07 19:35:13 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7ad3f967db 
								
							 
						 
						
							
							
								
								Kernel: Don't stop audio processing after each entry in AC97  
							
							
							
						 
						
							2025-08-07 16:43:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d1c814cf9d 
								
							 
						 
						
							
							
								
								Kernel: Optimize consecutive absolute mouse move events  
							
							... 
							
							
							
							This is a hack to make window server usable without kvm :D 
							
						 
						
							2025-08-07 16:43:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								72f85dce2b 
								
							 
						 
						
							
							
								
								Kernel: Make userspace stack on-demand allocated  
							
							... 
							
							
							
							Also bump the hardlimit of stack size from 512 KiB->32 MiB. This still
feels quite low but is much better than before :D 
							
						 
						
							2025-08-07 16:43:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f5bbcc017c 
								
							 
						 
						
							
							
								
								Kernel: Only send one smp message when reserving a range  
							
							... 
							
							
							
							This was causing some kernel panic because processors ran out of smp
message storage when reserving large areas.
Also most of the time there is no need to actually send the SMP message.
If process is mapping something to just its own address space, there is
no need for a TLB shootdown. Maybe this should be only limited to kernel
memory and threads across the same process. I'm not sure what the best
approach here and it is better to send too many invalidations that too
few! 
							
						 
						
							2025-08-07 16:43:05 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								647fedfa19 
								
							 
						 
						
							
							
								
								Kernel: Add missing multiboot.h  
							
							
							
						 
						
							2025-08-05 17:12:26 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f27823babe 
								
							 
						 
						
							
							
								
								Kernel: Move stacks to the top of userspace address space  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								95cfac471a 
								
							 
						 
						
							
							
								
								Kernel: Rename loopback adapter lo0 -> lo  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f7c1084c3e 
								
							 
						 
						
							
							
								
								Kernel: Expose boot command line in /proc/cmdline  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cf96bb6cc3 
								
							 
						 
						
							
							
								
								Kernel: Add support for multiboot  
							
							... 
							
							
							
							I don't know why I did it but it works now :D 
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								f1369c8fd6 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement mprotect  
							
							... 
							
							
							
							There may be some race conditions with this but i think this is good
enough to start with 
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								dfdfb7cdaf 
								
							 
						 
						
							
							
								
								Kernel: check all threads in validate_pointer_access  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1cc0fb9c01 
								
							 
						 
						
							
							
								
								Kernel: Reschedule if idle after IPI  
							
							... 
							
							
							
							This allows starting thread execution right after thread is received
from load balancing 
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a51b589bc9 
								
							 
						 
						
							
							
								
								Kernel: Allow any signal flags and support SA_RESETHAND  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5940e912b3 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement simple futex  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								284c9e5f61 
								
							 
						 
						
							
							
								
								Kernel: Don't kill process if stack pointer is OOB  
							
							... 
							
							
							
							This can be valid if process is using green threads or for some other
reason using its own stack 
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								927fbda1e8 
								
							 
						 
						
							
							
								
								Kernel: Make on-demand paging thread safe  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d8a695a88d 
								
							 
						 
						
							
							
								
								Kernel: Don't fail ustar unpack when creation fails  
							
							
							
						 
						
							2025-08-05 03:09:24 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8c29036fbf 
								
							 
						 
						
							
							
								
								Kernel: Fix EAGAIN on hungup pipe  
							
							
							
						 
						
							2025-07-31 22:47:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cc04bd0f06 
								
							 
						 
						
							
							
								
								LibC/Kernel: Implement ttyname_r  
							
							
							
						 
						
							2025-07-31 22:47:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e72e1e4e43 
								
							 
						 
						
							
							
								
								LibC: Add _SC_NPROCESSORS_{CONF,ONLN)  
							
							
							
						 
						
							2025-07-31 22:47:40 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9b18bda9c8 
								
							 
						 
						
							
							
								
								Kernel: Make epoll always check for HUP and ERR  
							
							
							
						 
						
							2025-07-31 22:47:29 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								2c65590134 
								
							 
						 
						
							
							
								
								Kernel: Add support for absolute position mouse  
							
							
							
						 
						
							2025-07-19 18:00:39 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a0d1a9ad67 
								
							 
						 
						
							
							
								
								Kernel: Fix PIT::prescheduler_sleep_ns  
							
							... 
							
							
							
							I don't even know what I was doing here :D 
							
						 
						
							2025-07-19 01:25:46 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5df6270e32 
								
							 
						 
						
							
							
								
								Kernel: Clobber flags in `rdrand`  
							
							
							
						 
						
							2025-07-18 19:36:37 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7af6e1cd34 
								
							 
						 
						
							
							
								
								Kernel: Ignore HID main item tag 0  
							
							... 
							
							
							
							This for some reason exists in vmware's usb devices 
							
						 
						
							2025-07-18 19:11:12 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cceb066284 
								
							 
						 
						
							
							
								
								Kernel: Don't use IST on 32 bit target  
							
							... 
							
							
							
							This only exists in 64 bit 
							
						 
						
							2025-07-18 19:10:48 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7a054787ca 
								
							 
						 
						
							
							
								
								Kernel: Don't print error if `root` is empty  
							
							... 
							
							
							
							This is used when loading filesystem from initrd 
							
						 
						
							2025-07-18 19:09:43 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d27891c79f 
								
							 
						 
						
							
							
								
								Kernel: Fix correct IOAPIC lookup based on gsi  
							
							
							
						 
						
							2025-07-18 19:09:20 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								5874fd640e 
								
							 
						 
						
							
							
								
								Kernel: Fix TmpFS for 32 bit target  
							
							... 
							
							
							
							There was a problem when sizeof(size_t) != sizeof(PageInfo) 
							
						 
						
							2025-07-18 19:07:32 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e16fb6a8e9 
								
							 
						 
						
							
							
								
								Kernel: Don't validate allowed null pointers on syscalls  
							
							
							
						 
						
							2025-07-17 22:14:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d5301508ec 
								
							 
						 
						
							
							
								
								Kernel: Increase kernel thread stack size  
							
							... 
							
							
							
							HACK HACK HACK
This is just to make banan-os boot on one razer laptop where AML
triggers a stack overflow :) 
							
						 
						
							2025-07-17 21:21:14 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								793cca423b 
								
							 
						 
						
							
							
								
								Kernel: Fix system timer disabling  
							
							... 
							
							
							
							I was actually not disabling system timer (HPET, PIT) when using lapic
timers for scheduling. This made BSB get too many timer interrupts :D 
							
						 
						
							2025-07-16 20:02:04 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3960687f9d 
								
							 
						 
						
							
							
								
								Kernel: Parse PCIConfig opregion address on read/write  
							
							... 
							
							
							
							I was testing on some hardware and _ADR does not have to exist in the
namespace when opregion is parsed :) 
							
						 
						
							2025-07-16 15:34:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3ec7aad432 
								
							 
						 
						
							
							
								
								Kernel: Increase PS/2 timeout and detect more keyboards  
							
							... 
							
							
							
							I was testing on a old T61 
							
						 
						
							2025-07-16 15:29:27 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8a663cb94f 
								
							 
						 
						
							
							
								
								Kernel: Implement basic AC97 driver  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								674e194a91 
								
							 
						 
						
							
							
								
								Kernel: Don't fail PCI interrupt allocation with PCIe and no PCI  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c57f0abb56 
								
							 
						 
						
							
							
								
								BuildSystem: Order source list alphabetically  
							
							
							
						 
						
							2025-07-15 14:17:49 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								995dfa1455 
								
							 
						 
						
							
							
								
								Kernel: Fix AML PCIConfig OpRegion accesses  
							
							... 
							
							
							
							Apparently I'm not supposted to calculate device/function from the
offset, but parse them from the acpi namespace :)
This allows PCI PIN interrupt routing actually work 
							
						 
						
							2025-07-04 13:21:02 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								544c8dbc13 
								
							 
						 
						
							
							
								
								Kernel: Optimize AML interpreter stack usage  
							
							... 
							
							
							
							There is a very hacky no-inline hack that I am not proud of but it drops
the stack usage of few functions A LOT.
Previously Virtual Box could not boot with our 8 page stack, but these
changes allow it to boot on 5! 
							
						 
						
							2025-07-03 00:49:23 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8da4f80453 
								
							 
						 
						
							
							
								
								Kernel: Add custom stack to double fault handler  
							
							... 
							
							
							
							This prevents triple faults! 
							
						 
						
							2025-07-02 23:14:52 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6084aae603 
								
							 
						 
						
							
							
								
								Kernel: Add guard pages to kernel and userspace stacks  
							
							
							
						 
						
							2025-07-02 23:12:36 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								e1319a06f2 
								
							 
						 
						
							
							
								
								Kernel: Remove accidentally commited debug prints  
							
							
							
						 
						
							2025-07-02 23:09:57 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								51fd7a607d 
								
							 
						 
						
							
							
								
								Kernel: Fix IDE controller waiting  
							
							... 
							
							
							
							We did not correctly wait until controller is ready to receive data on
write command. Also remove possible kernel panic if controller sends
unexpected interrupts 
							
						 
						
							2025-07-02 22:04:41 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8a0269d29e 
								
							 
						 
						
							
							
								
								Kernel: Remove kernel processes  
							
							... 
							
							
							
							Kernel can just use raw threads, pretty muchs the only thing that
process provides is syscalls which kernel threads of course don't
need.
Also this makes init process have pid 1 :D 
							
						 
						
							2025-07-02 01:54:03 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								892e16dfb1 
								
							 
						 
						
							
							
								
								Kernel: Increase PS2 timeout to 300 ms, load PS2 in separate thread  
							
							... 
							
							
							
							PS/2 seems to hit command timeout sometimes on slow emulation so
increase the timeouts.
Also move PS/2 device initialization to a different thread because
device indentification waits for timeouts. 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								92e4078287 
								
							 
						 
						
							
							
								
								Kernel: Rewrite ThreadBlocker  
							
							... 
							
							
							
							This gets rid of a very old bug where kernel panics when thread is being
woken up and unblocked at the same time on different cores. This
required adding a new lock to SchedulerQueue::Node and adding a cap to
how many threads a threadblocker can simultaneously block. I don't think
I ever block more than five threads on the same ThreadBlocker so this
should be fine. 
							
						 
						
							2025-07-02 00:17:42 +03:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								41e1819072 
								
							 
						 
						
							
							
								
								Kernel: Align argv and envp to pointer boundary  
							
							... 
							
							
							
							This bug was found with ubsan 
							
						 
						
							2025-07-02 00:17:42 +03:00