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 
							
						 
						
							 
							
							
							
							
								
							
							
								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
							
						 
						
							 
							
							
							
							
								
							
							
								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
							
						 
						
							 
							
							
							
							
								
							
							
								a511441f7e 
								
							 
						 
						
							
							
								
								Kernel: /proc/{pid}/meminfo now reports per process memory usage  
							
							 
							
							
							
						 
						
							2023-09-30 21:20:18 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								cd61d710df 
								
							 
						 
						
							
							
								
								Kernel: Add procfs that contains only pids  
							
							 
							
							
							
						 
						
							2023-09-30 21:19:36 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f88ad7efcd 
								
							 
						 
						
							
							
								
								Kernel: All process' memory areas can report their virtual mem usage  
							
							 
							
							
							
						 
						
							2023-09-30 21:15:46 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								d883d212b1 
								
							 
						 
						
							
							
								
								Kernel/LibC: dirent now contains file type  
							
							 
							
							
							
						 
						
							2023-09-30 20:46:57 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								dedb2a2399 
								
							 
						 
						
							
							
								
								Kernel: RamInode verifies that you have not specified mode type  
							
							 
							
							... 
							
							
							
							This is kinda weird behaviour, but it ensures the user cannot
create e.g. CharacterDevice with mode having IFLNK.
The Inode overrider is the only one setting the mode. 
							
						 
						
							2023-09-30 20:46:57 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8604c55de8 
								
							 
						 
						
							
							
								
								Kernel: Add API for RamDirectoryInodes to delete containing inodes  
							
							 
							
							
							
						 
						
							2023-09-30 19:22:30 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								e949e8550c 
								
							 
						 
						
							
							
								
								Kernel: Rework RamInode API  
							
							 
							
							... 
							
							
							
							RamInode is now a general RamInode with no data. RamFileInode is now
a inode for regular files. This is much cleaner and more intuitive
since there is no reason for most non-regular inodes to hold data
Vector. 
							
						 
						
							2023-09-30 19:22:30 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f953f3d3ff 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_SHARED for regular files  
							
							 
							
							... 
							
							
							
							Every inode holds a weak pointer to shared file data. This contains
physical addresses of pages for inode file data. Physical addresses
are allocated and read on demand.
When last shared mapping is unmapped. The inodes shared data is freed
and written to the inode. 
							
						 
						
							2023-09-29 18:59:20 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								9fc75fe445 
								
							 
						 
						
							
							
								
								Kernel: Don't write to stat_loc on SYS_WAIT if it is null  
							
							 
							
							
							
						 
						
							2023-09-29 18:31:44 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								db5d6a7f80 
								
							 
						 
						
							
							
								
								Kernel: Implement MAP_PRIVATE file mappings  
							
							 
							
							... 
							
							
							
							mmap() now supports mapping files with MAP_PRIVATE. 
							
						 
						
							2023-09-29 17:23:42 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								4a92f44cf6 
								
							 
						 
						
							
							
								
								Kernel: Implement new abstract MemoryRegion  
							
							 
							
							... 
							
							
							
							MemoryBackedRegion now inherits from this and is used for private
anonymous mappigs. This will make shared mappings and file backed
mappings much easier to implement. 
							
						 
						
							2023-09-29 16:18:23 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								603fc200e6 
								
							 
						 
						
							
							
								
								Kernel: Add some sanity assertions/functions  
							
							 
							
							
							
						 
						
							2023-09-29 02:03:19 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								c11e84b248 
								
							 
						 
						
							
							
								
								Kernel: Use the new on demand ELF structure  
							
							 
							
							... 
							
							
							
							All executable files are now read from disk and paged on demand.
This was a big rewrite of the old ELF library but in the end
everything seems much cleaner, since all the old functionality was
not actually needed for execution.
I have to do some measurements, but I feel like memory usage dropped
quite a bit after this change. 
							
						 
						
							2023-09-29 02:00:10 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f4049be975 
								
							 
						 
						
							
							
								
								Kernel: Fix off by one error when calculating pages in range  
							
							 
							
							
							
						 
						
							2023-09-29 01:56:15 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6cf7e01fe9 
								
							 
						 
						
							
							
								
								Kernel: Don't map interrupt stack as userspace accessable  
							
							 
							
							
							
						 
						
							2023-09-28 21:58:24 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b51d2f5295 
								
							 
						 
						
							
							
								
								Kernel: mmap regions are now demand paged  
							
							 
							
							... 
							
							
							
							mmap will not actually take any memory unless you use the given
memory. 
							
						 
						
							2023-09-28 21:07:14 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								a66c3bdae5 
								
							 
						 
						
							
							
								
								Kernel: Remove duplicate code in VirtualRange::create_to_vaddr_range  
							
							 
							
							
							
						 
						
							2023-09-28 13:59:49 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								547eabb403 
								
							 
						 
						
							
							
								
								Kernel: Reboot will now always succeed  
							
							 
							
							... 
							
							
							
							If acpi reset fails, we forcefully trigger a triple fault to restart
the system. 
							
						 
						
							2023-09-28 13:53:03 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								79851394b3 
								
							 
						 
						
							
							
								
								Kernel/LibC/Userspace: Add SYS_POWEROFF + cli tool  
							
							 
							
							... 
							
							
							
							You can now shutdown/reboot banan-os with the poweroff cli tool.
Reboot doesn't seem to work on qemu. 
							
						 
						
							2023-09-28 12:36:47 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								fcdc922343 
								
							 
						 
						
							
							
								
								Kernel: Enter ACPI mode with lai  
							
							 
							
							
							
						 
						
							2023-09-28 12:30:27 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								f7097398ca 
								
							 
						 
						
							
							
								
								Kernel: Make tty overload correct has_data() function  
							
							 
							
							... 
							
							
							
							This allows snake game to work again :) 
							
						 
						
							2023-09-28 11:54:12 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8d5369fafe 
								
							 
						 
						
							
							
								
								Kernel: Add some functionality to disable TTY input/output  
							
							 
							
							... 
							
							
							
							Userspace programs can call tty_ctrl() to disable/enable tty from
handling input and displaying output.
This API is probably going to change in the future to ioctl calls
but I'm not sure how ioctl is used and what functionality should it
have. I decided to create whole new function and syscall for now.
Next I will expose framebuffer in /dev/fb0 and then I can start work
on graphical environment! :D 
							
						 
						
							2023-09-27 15:44:05 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								feafc57b63 
								
							 
						 
						
							
							
								
								Kernel: Disable DiskCache sync messages  
							
							 
							
							
							
						 
						
							2023-09-27 14:12:21 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								6e1825d6b4 
								
							 
						 
						
							
							
								
								Kernel: Add missing TRY() to font loading  
							
							 
							
							
							
						 
						
							2023-09-27 00:49:53 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								05e57801e7 
								
							 
						 
						
							
							
								
								Kernel: SYS_SYNC now schedules sync to happen soon  
							
							 
							
							... 
							
							
							
							You can pass non-zero argument to the syscall to block until the
sync has finished. 
							
						 
						
							2023-09-27 00:34:00 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b924c85669 
								
							 
						 
						
							
							
								
								Kernel: DiskCache now requires sync to be called from kernel thread  
							
							 
							
							... 
							
							
							
							This disables the scenario where user interrupts sync operation
possibly leaving the syncing in invalid state. 
							
						 
						
							2023-09-27 00:32:13 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								09c1aa44d8 
								
							 
						 
						
							
							
								
								Kernel: Allow creationg of empty processes and manual registration  
							
							 
							
							... 
							
							
							
							You can now create kernel processes without any threads, add the
needed threads and only then register the process and its threads
to the scheduler. 
							
						 
						
							2023-09-27 00:29:45 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								1d470fb5ba 
								
							 
						 
						
							
							
								
								Kernel: All syscalls now validate users pointers  
							
							 
							
							... 
							
							
							
							We now validate pointers passed by the user, to forbid arbitary
memory read/write. Now the user is only allowed to pass in pointers
in their own mapped memory space (or null). 
							
						 
						
							2023-09-25 22:07:12 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								b4e4f7a6cc 
								
							 
						 
						
							
							
								
								Kernel: Print more detailed output on ISR  
							
							 
							
							
							
						 
						
							2023-09-25 20:33:07 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								55d30a7cc3 
								
							 
						 
						
							
							
								
								Kernel: Ext2 inodes are now stored in cache  
							
							 
							
							... 
							
							
							
							This allows faster inode access and ensures working inodes when
opened in multiple places. 
							
						 
						
							2023-09-25 20:31:40 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8caba1e774 
								
							 
						 
						
							
							
								
								Kernel: Ext2 filesystem now holds 10 preallocated block buffers  
							
							 
							
							... 
							
							
							
							Inodes can query blocks from this buffer. This allows allocation of
blocks to not fail during normal operations. Also less stress on
kmalloc. 
							
						 
						
							2023-09-25 14:32:25 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								7bdb428938 
								
							 
						 
						
							
							
								
								Kernel: Fix ext2 block allocation  
							
							 
							
							... 
							
							
							
							Redo ext2 block allocation. This is now much "cleaner" although
I'm not too fond of the macros. 
							
						 
						
							2023-09-25 13:17:44 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								18d582c6ce 
								
							 
						 
						
							
							
								
								Kernel: Hacky kmalloc quick fix  
							
							 
							
							... 
							
							
							
							Remove GeneralAllocator from kmalloc as it is not CriticalScope safe.
This requires increasing kmalloc memory. 
							
						 
						
							2023-09-25 13:13:57 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								8b2bb95b81 
								
							 
						 
						
							
							
								
								Kernel: VirtualRange doesn't store physical addresses of pages  
							
							 
							
							... 
							
							
							
							This was unnecessarry allocation, since the page table allready
contains virtual address -> physical address mappings. 
							
						 
						
							2023-09-24 01:29:34 +03:00  
						
					 
				
					
						
							
							
								 
								Bananymous
							
						 
						
							 
							
							
							
							
								
							
							
								2ef496a24a 
								
							 
						 
						
							
							
								
								Kernel: all mapped ranges are now stored in one container  
							
							 
							
							... 
							
							
							
							We just now have a flag if a mapping is unmappable 
							
						 
						
							2023-09-23 23:45:26 +03:00