3a36c30e80 
								
							 
						 
						
							
							
								
								LibC: math.h defines is*() macros and uses builtins for values  
							
							
							
						 
						
							2023-08-16 10:41:55 +03:00  
				
					
						
							
							
								 
						
							
								a09232a555 
								
							 
						 
						
							
							
								
								cat: use 1025 buffer. this allows reads to be 1024 byte  
							
							... 
							
							
							
							reading from disk currently returns ENOTSUP if buffer size is not
multiple of sector size. 
							
						 
						
							2023-08-16 09:33:14 +03:00  
				
					
						
							
							
								 
						
							
								5a94818210 
								
							 
						 
						
							
							
								
								Shell: $? returns last return value  
							
							
							
						 
						
							2023-08-15 09:17:46 +03:00  
				
					
						
							
							
								 
						
							
								2441f208c6 
								
							 
						 
						
							
							
								
								Userspace: Add basic whoami command  
							
							
							
						 
						
							2023-08-15 09:03:51 +03:00  
				
					
						
							
							
								 
						
							
								db2eca697e 
								
							 
						 
						
							
							
								
								Shell: '\u' in PS1 is replaced with username corresponding to euid  
							
							
							
						 
						
							2023-08-14 14:55:23 +03:00  
				
					
						
							
							
								 
						
							
								81d79cca61 
								
							 
						 
						
							
							
								
								Shell: ^A moves cursor to the beginning of line  
							
							
							
						 
						
							2023-08-14 12:26:22 +03:00  
				
					
						
							
							
								 
						
							
								871c792976 
								
							 
						 
						
							
							
								
								Kernel: O_SEARCH doesn't require any permissions  
							
							... 
							
							
							
							Except read permissions for all directories in the path
This allows us to stat e.g. device files for which we don't have
the permissions. 
							
						 
						
							2023-08-11 12:26:07 +03:00  
				
					
						
							
							
								 
						
							
								9ab7e76a3b 
								
							 
						 
						
							
							
								
								LibC: cleanup fstatat  
							
							
							
						 
						
							2023-08-11 12:25:15 +03:00  
				
					
						
							
							
								 
						
							
								8480ffe108 
								
							 
						 
						
							
							
								
								Kernel: open() now validates file access mode  
							
							
							
						 
						
							2023-08-11 11:53:38 +03:00  
				
					
						
							
							
								 
						
							
								e1400f9680 
								
							 
						 
						
							
							
								
								Kernel: Remove unused syscall  
							
							
							
						 
						
							2023-08-11 11:43:48 +03:00  
				
					
						
							
							
								 
						
							
								77ff585248 
								
							 
						 
						
							
							
								
								Userspace: implement basic stat  
							
							... 
							
							
							
							I tried to format the output pretty much how linux does, except for
uid and git -> name resolution which is not implemented 
							
						 
						
							2023-08-11 10:30:50 +03:00  
				
					
						
							
							
								 
						
							
								9cb50cba33 
								
							 
						 
						
							
							
								
								LibC: Fix S_IF* macros and add macros for access/type masks  
							
							
							
						 
						
							2023-08-11 10:30:50 +03:00  
				
					
						
							
							
								 
						
							
								6e5bce3c57 
								
							 
						 
						
							
							
								
								Kernel: Zero initialize threads sse_storage  
							
							
							
						 
						
							2023-08-11 00:26:43 +03:00  
				
					
						
							
							
								 
						
							
								f75adab9d8 
								
							 
						 
						
							
							
								
								Kernel: Move structures in boot.S to .data section  
							
							
							
						 
						
							2023-08-11 00:26:12 +03:00  
				
					
						
							
							
								 
						
							
								5d0a6e7b08 
								
							 
						 
						
							
							
								
								Kernel: HPET is now used in legacy mode when PIC is forced  
							
							
							
						 
						
							2023-08-10 22:01:30 +03:00  
				
					
						
							
							
								 
						
							
								b0c8a9cdc4 
								
							 
						 
						
							
							
								
								Kernel: Fix slave PIC  
							
							... 
							
							
							
							we dont mask interrupt 2 in PIC since it corresponds to the
slave PIC. Also cleanup PIC code :) 
							
						 
						
							2023-08-10 21:52:31 +03:00  
				
					
						
							
							
								 
						
							
								ebe0adb3b5 
								
							 
						 
						
							
							
								
								Kernel: HPET doesn't use the legacy mapping anymore  
							
							
							
						 
						
							2023-08-10 21:08:32 +03:00  
				
					
						
							
							
								 
						
							
								4842d5e2b9 
								
							 
						 
						
							
							
								
								Kernel: APIC now uses MMIO namespace functions for mmio  
							
							
							
						 
						
							2023-08-10 21:07:23 +03:00  
				
					
						
							
							
								 
						
							
								0b8396b1a6 
								
							 
						 
						
							
							
								
								Kernel: IDT now sends EOI for every interrupt  
							
							... 
							
							
							
							EOI is sent before calling the interrupt handler. This should be fine
since all interrupts are processed with interrupts disabled 
							
						 
						
							2023-08-09 09:57:02 +03:00  
				
					
						
							
							
								 
						
							
								55ef793a74 
								
							 
						 
						
							
							
								
								Kernel: Validate HPET tick period  
							
							
							
						 
						
							2023-08-09 09:50:38 +03:00  
				
					
						
							
							
								 
						
							
								96c0ad0d3d 
								
							 
						 
						
							
							
								
								Kernel: Remove get_unix_timestamp from SystemTimer  
							
							... 
							
							
							
							Kernel now uses the percise real_time() and time_since_boot() 
							
						 
						
							2023-08-09 08:57:50 +03:00  
				
					
						
							
							
								 
						
							
								6fcb191ca0 
								
							 
						 
						
							
							
								
								Kernel: Add PageTable::Flags::CacheDisable  
							
							... 
							
							
							
							Also fix multiple places where we were using uint8_t as page table
flags instead of PageTable::flags_t which we promoted to uint16_t
while back. 
							
						 
						
							2023-08-06 23:59:30 +03:00  
				
					
						
							
							
								 
						
							
								3df97c36e6 
								
							 
						 
						
							
							
								
								Kerne: SystemTimer can now output the current real time  
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								c732297623 
								
							 
						 
						
							
							
								
								Kernel: Rename TimerHandler to SystemTimer  
							
							... 
							
							
							
							I changed SystemTimer to only handle the "best" supported timer
it can initialize. 
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								ca5a097ef5 
								
							 
						 
						
							
							
								
								Kernel: Add function to retrieve boot time as timespec  
							
							
							
						 
						
							2023-08-04 16:06:47 +03:00  
				
					
						
							
							
								 
						
							
								1f8a5f0ce5 
								
							 
						 
						
							
							
								
								Kernel: F11 now prints current time to debug output  
							
							... 
							
							
							
							This allows better timer percision and system freeze checks 
							
						 
						
							2023-08-04 15:22:51 +03:00  
				
					
						
							
							
								 
						
							
								1fa7a1cac4 
								
							 
						 
						
							
							
								
								Kernel: Add basic HPET support to replace PIT if exists  
							
							... 
							
							
							
							This works same way as the PIT implementation; calls Scheduler every
milli second. 
							
						 
						
							2023-08-04 15:22:51 +03:00  
				
					
						
							
							
								 
						
							
								ea4a70c3b3 
								
							 
						 
						
							
							
								
								Kernel: Move sleep() implementation to TimerHandler  
							
							
							
						 
						
							2023-08-04 15:15:00 +03:00  
				
					
						
							
							
								 
						
							
								aa0929614a 
								
							 
						 
						
							
							
								
								Kernel: Add more structures to ACPI  
							
							
							
						 
						
							2023-08-04 15:13:47 +03:00  
				
					
						
							
							
								 
						
							
								3c31fc9c4b 
								
							 
						 
						
							
							
								
								Kernel: Implement basic MMIO functions  
							
							... 
							
							
							
							This is equivalent to IO.h except for memory mapped io instead of
IO ports 
							
						 
						
							2023-08-04 15:12:29 +03:00  
				
					
						
							
							
								 
						
							
								7eb2c140fe 
								
							 
						 
						
							
							
								
								Kernel: Move RTC to Timer directory  
							
							... 
							
							
							
							PIT ms counter seems to be off by multiple seconds/minute. I will
be probably changing to HPET for system time 
							
						 
						
							2023-08-04 11:12:16 +03:00  
				
					
						
							
							
								 
						
							
								659adb89a6 
								
							 
						 
						
							
							
								
								Kernel: Start work on abstracting Timers  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								dd17124c77 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary timer check from Scheduler  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								453a5387cb 
								
							 
						 
						
							
							
								
								BAN: UniqPtr can now be constructed from other convertible UniqPtr  
							
							
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								643e87a076 
								
							 
						 
						
							
							
								
								Kernel: Threads are deleted sooner and cleaner  
							
							... 
							
							
							
							We now delete threads when
    1. it is marked as Terminated and is the current thread
    2. it tries to start execution in Terminated state
This allows us to never have thread executing in Terminated state 
							
						 
						
							2023-08-04 10:29:42 +03:00  
				
					
						
							
							
								 
						
							
								20eafb4cc4 
								
							 
						 
						
							
							
								
								Kernel: align userspace stacks  
							
							... 
							
							
							
							I was getting #GP on sse instructions 
							
						 
						
							2023-08-03 18:09:48 +03:00  
				
					
						
							
							
								 
						
							
								e715d52f80 
								
							 
						 
						
							
							
								
								LibC: fix typo  
							
							
							
						 
						
							2023-08-02 22:10:12 +03:00  
				
					
						
							
							
								 
						
							
								3139391e06 
								
							 
						 
						
							
							
								
								Kernel: Change PageTable API  
							
							... 
							
							
							
							Getting free pages not reserves them, so you don't have to hold
the page table lock :) 
							
						 
						
							2023-08-02 22:09:14 +03:00  
				
					
						
							
							
								 
						
							
								64ad752e73 
								
							 
						 
						
							
							
								
								Kernel: PageTable now supports reserved pages  
							
							... 
							
							
							
							You can now map pages as reserved, so that they will not be given
from get_free_page() or get_free_contiguous_pages(). 
							
						 
						
							2023-08-01 16:35:54 +03:00  
				
					
						
							
							
								 
						
							
								dddfa308d7 
								
							 
						 
						
							
							
								
								Shell: Print if the process exited because of a signal  
							
							
							
						 
						
							2023-08-01 14:24:36 +03:00  
				
					
						
							
							
								 
						
							
								a78a7ed156 
								
							 
						 
						
							
							
								
								Kernel: Cleanup returns from any kind on interrupts  
							
							
							
						 
						
							2023-08-01 14:23:50 +03:00  
				
					
						
							
							
								 
						
							
								b4eddf04c4 
								
							 
						 
						
							
							
								
								LibC: sys/wait.h now has proper exit status macros  
							
							... 
							
							
							
							We use the same format as basically every implementation 
							
						 
						
							2023-08-01 10:32:04 +03:00  
				
					
						
							
							
								 
						
							
								2a851b52f1 
								
							 
						 
						
							
							
								
								BuildSystem: Edit build flags regarding sse and warnings  
							
							
							
						 
						
							2023-07-31 22:31:17 +03:00  
				
					
						
							
							
								 
						
							
								b245a55ea0 
								
							 
						 
						
							
							
								
								Kernel: store/load sse/mmx/fpu state on isr/irq/syscall  
							
							... 
							
							
							
							I haven't tested this yet but should be fine. This will be optimized
to only save state from threads that are using it 
							
						 
						
							2023-07-31 22:28:57 +03:00  
				
					
						
							
							
								 
						
							
								c4f6c859c1 
								
							 
						 
						
							
							
								
								Kernel: Generally improve signals  
							
							
							
						 
						
							2023-07-31 22:28:18 +03:00  
				
					
						
							
							
								 
						
							
								834bf33e57 
								
							 
						 
						
							
							
								
								LibC: we don't parse syscall arguments in unistd  
							
							... 
							
							
							
							We just call Kernel::syscall() with 5 arguments from the variadic function.
This was a necessary addition since the syscall() function
used over 2 KiB of stack space. 
							
						 
						
							2023-07-31 22:24:11 +03:00  
				
					
						
							
							
								 
						
							
								1a6100f083 
								
							 
						 
						
							
							
								
								Kernel: Cleanup signal trampoline  
							
							
							
						 
						
							2023-07-30 15:58:35 +03:00  
				
					
						
							
							
								 
						
							
								de927b6b05 
								
							 
						 
						
							
							
								
								Kernel: Remove is_in_syscall from Thread  
							
							
							
						 
						
							2023-07-30 14:49:51 +03:00  
				
					
						
							
							
								 
						
							
								1d7795e22c 
								
							 
						 
						
							
							
								
								Kernel: Hardware exceptions  now sends signals to userspace  
							
							
							
						 
						
							2023-07-30 14:34:15 +03:00  
				
					
						
							
							
								 
						
							
								abe8810d47 
								
							 
						 
						
							
							
								
								Kernel: raise() now force sends signal  
							
							
							
						 
						
							2023-07-30 14:17:07 +03:00