Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								781c950af6 
								
							 
						 
						
							
							
								
								BAN: add helper to cast Span<T> to Span<const T>  
							
							 
							
							
							
						 
						
							2023-10-20 04:59:08 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								e2e5c31d54 
								
							 
						 
						
							
							
								
								Kernel: Map multiboot2 memory in PageTable initialization  
							
							 
							
							... 
							
							
							
							It cannot be assumed that multiboot data lies between kernel_end
and 2 GiB mark, so I properly allocate virtual address space for it. 
							
						 
						
							2023-10-17 01:15:08 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								be3efb0b92 
								
							 
						 
						
							
							
								
								Kernel: Start using multiboot2 instead of multiboot  
							
							 
							
							... 
							
							
							
							This allows better compatibility with (U)EFI and gives RSDP location
instead of me having to scan ram to find it. 
							
						 
						
							2023-10-17 01:06:24 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								792bb2df1c 
								
							 
						 
						
							
							
								
								Kernel: TTY doesn't panic if it doesn't find input device  
							
							 
							
							
							
						 
						
							2023-10-16 16:58:39 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								e01928d186 
								
							 
						 
						
							
							
								
								Kernel: Fix device identification with all bits as ones  
							
							 
							
							... 
							
							
							
							If device identification sends all ones, don't initialize the device. 
							
						 
						
							2023-10-16 16:57:07 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								48980b56ab 
								
							 
						 
						
							
							
								
								Kernel: ATABuses are but to compatibility mode if possible  
							
							 
							
							... 
							
							
							
							I don't support native mode ata bus (irq sharing) so ata buses are
but to compatibility mode if possible. 
							
						 
						
							2023-10-16 16:56:12 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								b767317a7a 
								
							 
						 
						
							
							
								
								Kernel: Fix ATADevice naming  
							
							 
							
							... 
							
							
							
							ATADevice now stores its name instead of using static buffer. Old
static buffer was changing on every name query. I just hadn't noticed
since virtual machine disks were always sda. 
							
						 
						
							2023-10-16 16:52:15 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								6f8fce94a0 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI bugs  
							
							 
							
							... 
							
							
							
							IO BarRegion used vaddr instead of the correct paddr. Add API for
memory region iobase query. 
							
						 
						
							2023-10-16 16:50:49 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								31aa157201 
								
							 
						 
						
							
							
								
								Kernel: Don't require framebuffer  
							
							 
							
							... 
							
							
							
							Initializes virtual tty only if framebuffer is initialized 
							
						 
						
							2023-10-16 01:44:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								5977341610 
								
							 
						 
						
							
							
								
								Kernel: PCI checks if ethernet device is E1000 before initialization  
							
							 
							
							... 
							
							
							
							I used to treat all ethernet deivices as E1000 but now it is actually
verified before initialization 
							
						 
						
							2023-10-16 01:44:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								76f17bd569 
								
							 
						 
						
							
							
								
								Kernel: PCIDevice stores its vendor id and device id  
							
							 
							
							
							
						 
						
							2023-10-16 01:44:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								6b1b3d333c 
								
							 
						 
						
							
							
								
								BuildSystem: add cmake variable UEFI_BOOT  
							
							 
							
							... 
							
							
							
							If this variable is defined in cmake, image will be build with esp
and booted with uefi. 
							
						 
						
							2023-10-16 01:44:54 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								cb65be3e33 
								
							 
						 
						
							
							
								
								Toolchain: Build grub with efi capabilities  
							
							 
							
							
							
						 
						
							2023-10-16 01:37:12 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								dafc016293 
								
							 
						 
						
							
							
								
								Kernel: Clear TTY when setting as current  
							
							 
							
							... 
							
							
							
							Actually this should replace from old buffer, but this works
for now. 
							
						 
						
							2023-10-13 17:20:26 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								c7b6fc950a 
								
							 
						 
						
							
							
								
								Kernel: Don't crash if header type != 0 in bar region creation  
							
							 
							
							... 
							
							
							
							Also remove spammy debug printing 
							
						 
						
							2023-10-13 16:32:32 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								45a6783c3d 
								
							 
						 
						
							
							
								
								Kernel: Cleanup GDT code  
							
							 
							
							
							
						 
						
							2023-10-13 16:18:22 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								6b180da4e8 
								
							 
						 
						
							
							
								
								Kernel: Separate scheduler execution and stack loading  
							
							 
							
							... 
							
							
							
							Not sure if this is actually needed, but this allows actual
executing function to be in clean environment 
							
						 
						
							2023-10-13 16:17:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								cf4f5f64a5 
								
							 
						 
						
							
							
								
								Kernel: add NEVER_INLINE and make Interruptable not constructable  
							
							 
							
							
							
						 
						
							2023-10-13 16:17:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								5630f64175 
								
							 
						 
						
							
							
								
								Kernel: Add 16 more irq handlers  
							
							 
							
							... 
							
							
							
							IDT will now panic if trying to assing handler for non supported
irq. 
							
						 
						
							2023-10-13 16:17:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								1d61bccfc3 
								
							 
						 
						
							
							
								
								Kernel: Debug temporary debug print just to beginning when full  
							
							 
							
							
							
						 
						
							2023-10-13 12:43:52 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f842a9255f 
								
							 
						 
						
							
							
								
								Kernel: Allow getting ACPI headers with same signature  
							
							 
							
							
							
						 
						
							2023-10-13 11:24:21 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								72f3c378dd 
								
							 
						 
						
							
							
								
								Kernel: Fix PhysicalRange mapping size  
							
							 
							
							
							
						 
						
							2023-10-13 03:45:01 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								39be6ab099 
								
							 
						 
						
							
							
								
								Kernel: Add temporary terminal output before controlling terminal  
							
							 
							
							... 
							
							
							
							Starting work on getting this boot on real hardware. 
							
						 
						
							2023-10-13 03:31:36 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								773dcdd3a2 
								
							 
						 
						
							
							
								
								Kernel: Check whether ELF address space can be loaded  
							
							 
							
							... 
							
							
							
							Before reserving address space in SYS_EXEC verify that ELF address
space is actually loadable. For example when trying to execute the
kernel binary in userspace, binarys address space would overlap with
current kernel address space. Now kernel won't crash anymore and
will just send SIGKILL to the process calling exec*(). 
							
						 
						
							2023-10-12 22:59:36 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f0820e6f24 
								
							 
						 
						
							
							
								
								Shell: Fix parsing $ with unknown character  
							
							 
							
							
							
						 
						
							2023-10-12 22:24:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								a2b5e71654 
								
							 
						 
						
							
							
								
								Kernel: Implement AHCI driver  
							
							 
							
							... 
							
							
							
							SATA drives can now be used with banan-os. This allows much faster
disk access (writing 10 MiB from 30s to 1.5s). This can definitely
be optimized but the main slow down is probably the whole disk
structure in the os.
AHCI drive is now the default when running qemu. 
							
						 
						
							2023-10-12 21:53:48 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d3e5c8e0aa 
								
							 
						 
						
							
							
								
								Kernel: Generalize ATA device and cleanup code  
							
							 
							
							
							
						 
						
							2023-10-12 21:35:25 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f4b901a646 
								
							 
						 
						
							
							
								
								Kernel: Add Timer::ns_since_boot()  
							
							 
							
							
							
						 
						
							2023-10-12 21:16:39 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								790064d248 
								
							 
						 
						
							
							
								
								Kernel: Add vaddr/paddr conversion functions to DMARegion  
							
							 
							
							
							
						 
						
							2023-10-12 15:20:05 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								ab8b77406d 
								
							 
						 
						
							
							
								
								Kernel: PCI can now get interrupts for devices  
							
							 
							
							
							
						 
						
							2023-10-11 22:18:58 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								1b9e14a53b 
								
							 
						 
						
							
							
								
								Kernel: PCI cleanup PCI::Device API  
							
							 
							
							
							
						 
						
							2023-10-11 21:52:08 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								d2cfc843e4 
								
							 
						 
						
							
							
								
								BAN: Optional can now be constructed from another Optional  
							
							 
							
							... 
							
							
							
							Also fix bug in release_value() where we did not call the
destructor. 
							
						 
						
							2023-10-11 20:10:06 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								521513bed2 
								
							 
						 
						
							
							
								
								Kernel: make DMARegion::create static and fix mapping  
							
							 
							
							
							
						 
						
							2023-10-08 18:18:36 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								400db176d1 
								
							 
						 
						
							
							
								
								Kernel: fix some math in physical ranges  
							
							 
							
							... 
							
							
							
							I allocated 1 bitmap page per 8 data pages. Bitmap page can actually
store 8*PAGE_SIZE data pages.
Also properly set last bits in bitmap. I did not care about endianness
but now we set the bits on unsigned long longs instead of bytes. 
							
						 
						
							2023-10-08 13:25:34 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								211cad03ff 
								
							 
						 
						
							
							
								
								Kernel: Implement bare boness DMA Region  
							
							 
							
							... 
							
							
							
							This does nothing but allocate contiguous physical and virtual memory
and map it as CacheDisable. Also memory is automatically freed RAII style. 
							
						 
						
							2023-10-08 02:57:22 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								8a9816d6e0 
								
							 
						 
						
							
							
								
								Kernel: Add API for getting contiguous physcial pages  
							
							 
							
							... 
							
							
							
							This will be used to create DMA regions. 
							
						 
						
							2023-10-08 02:57:22 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								03d2bf4002 
								
							 
						 
						
							
							
								
								Kernel: Rework physical memory allocation  
							
							 
							
							... 
							
							
							
							PhysicalRange is now much simpler bitmap. This makes expanding
PhysicalRange API much easier. 
							
						 
						
							2023-10-08 02:50:23 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								f071240b33 
								
							 
						 
						
							
							
								
								Kernel: Fix PCI BarRegion offsets  
							
							 
							
							... 
							
							
							
							Calculations accidentally assumed bar registers are 8 byte instead
of 4. 
							
						 
						
							2023-10-08 02:50:23 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								27364f64a6 
								
							 
						 
						
							
							
								
								Kernel: Rework whole ATA driver structure  
							
							 
							
							... 
							
							
							
							Make ATA driver more compatible when we are adding SATA support 
							
						 
						
							2023-10-08 02:50:23 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								bcf62c5f2e 
								
							 
						 
						
							
							
								
								Kernel: Rework interrupt mechanism  
							
							 
							
							... 
							
							
							
							All interruptrable classes now inherit from Interruptable which
has methdo handle_irq which is called on a interrupt. 
							
						 
						
							2023-10-05 18:53:45 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								4d6322ff9c 
								
							 
						 
						
							
							
								
								BuildSystem: Don't strip kernel  
							
							 
							
							
							
						 
						
							2023-10-05 18:52:44 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								2eef581737 
								
							 
						 
						
							
							
								
								BuildSystem: Try to set compiler only if it exists  
							
							 
							
							
							
						 
						
							2023-10-05 18:52:05 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7ce8e2d57b 
								
							 
						 
						
							
							
								
								cat: Use write() instead of puts to print file contents  
							
							 
							
							... 
							
							
							
							This allows printing files that contain null bytes behave more like
you would expect 
							
						 
						
							2023-10-04 22:16:19 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								e780eaa45f 
								
							 
						 
						
							
							
								
								meminfo: Print allocated physical memory percentage  
							
							 
							
							
							
						 
						
							2023-10-03 10:39:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								44cb0af64f 
								
							 
						 
						
							
							
								
								Shell: source $HOME/.shellrc if found on Shell startup  
							
							 
							
							
							
						 
						
							2023-10-03 10:39:27 +03:00  
						
					 
				
					
						
							
							
								
								Bananymous 
							
						 
						
							 
							
							
							
							
								
							
							
								bb0989fdef 
								
							 
						 
						
							
							
								
								Shell: Implement sourcing scripts  
							
							 
							
							
							
						 
						
							2023-10-03 10:24:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f0b6844feb 
								
							 
						 
						
							
							
								
								meminfo: Add process command line to the output  
							
							 
							
							
							
						 
						
							2023-09-30 23:17:31 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b712c70c75 
								
							 
						 
						
							
							
								
								Kernel: Expose command line and environment to /proc  
							
							 
							
							
							
						 
						
							2023-09-30 23:01:33 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								797ca65c66 
								
							 
						 
						
							
							
								
								Kernel: Add physical memory info to /proc/{pid}/meminfo  
							
							 
							
							
							
						 
						
							2023-09-30 22:11:45 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								762b7a4276 
								
							 
						 
						
							
							
								
								Userspace: Add meminfo command that parses /proc/{pid}/meminfo  
							
							 
							
							
							
						 
						
							2023-09-30 21:20:53 +03:00