Bananymous 
							
						 
						
							
								e935a33a4d 
								
							 
						 
						
							
							
								
								BAN: add value_type to iterators  
							
							
							
						 
						
							2023-12-07 10:15:18 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								536bb74d53 
								
							 
						 
						
							
							
								
								AOC2023: optimize hand score calculation  
							
							
							
						 
						
							2023-12-07 09:26:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a872efdef2 
								
							 
						 
						
							
							
								
								BAN: implement basic swap  
							
							... 
							
							
							
							This will be improved, currently just works on general type T and
moves values between arguments. 
							
						 
						
							2023-12-07 09:26:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								efd8be8207 
								
							 
						 
						
							
							
								
								AOC2023: implement day7  
							
							
							
						 
						
							2023-12-07 07:56:56 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								06a84da844 
								
							 
						 
						
							
							
								
								Userspace: Implement barebones sudo  
							
							... 
							
							
							
							This doesn't do any password checking or anything. Just sets uid and
gid before execvp() 
							
						 
						
							2023-12-06 18:15:42 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								24b71d1170 
								
							 
						 
						
							
							
								
								Kernel: Appreciate setuid and setgid bits executables  
							
							
							
						 
						
							2023-12-06 18:14:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								0dc168a8c0 
								
							 
						 
						
							
							
								
								LibC: Implement basic execvp  
							
							
							
						 
						
							2023-12-06 18:14:00 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								76049b2e13 
								
							 
						 
						
							
							
								
								LibC: Implement and fix some string.h functions  
							
							
							
						 
						
							2023-12-06 18:13:34 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								393ac33e3c 
								
							 
						 
						
							
							
								
								Kernel: Make sys_nanosleep interruptable by signals  
							
							
							
						 
						
							2023-12-06 16:22:24 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								deeb6d2756 
								
							 
						 
						
							
							
								
								Kernel: Cleanup sys_sleep() and TTY::read_impl  
							
							
							
						 
						
							2023-12-06 16:21:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1ac831d4b1 
								
							 
						 
						
							
							
								
								Kernel: Add API to block on semaphore until unblock or EINTR  
							
							
							
						 
						
							2023-12-06 16:13:07 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								534969df32 
								
							 
						 
						
							
							
								
								Kernel: Scheduler::unblock_thread() wakes sleeping threads  
							
							
							
						 
						
							2023-12-06 16:12:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								976ae64f88 
								
							 
						 
						
							
							
								
								LibC: make sleep() set errno if sleep woke up early  
							
							
							
						 
						
							2023-12-06 13:13:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								a12ffaa8a2 
								
							 
						 
						
							
							
								
								Kernel: Make sleep syscall interruptable  
							
							
							
						 
						
							2023-12-06 13:13:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ff8b3be8dc 
								
							 
						 
						
							
							
								
								Userspace: implement basic sleep command  
							
							
							
						 
						
							2023-12-06 13:05:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								56008869d6 
								
							 
						 
						
							
							
								
								Shell: Handle keyboard input that was interrupted by signal  
							
							
							
						 
						
							2023-12-06 13:04:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								1c78671078 
								
							 
						 
						
							
							
								
								Kernel: Rework all signal code  
							
							... 
							
							
							
							Signal handling code was way too complex. Now everything is
simplified and there is no need for ThreadBlockers.
Only complication that this patch includes is that blocking syscalls
have to manually be made interruptable by signal. There might be some
clever solution to combat this is make this happen automatically. 
							
						 
						
							2023-12-06 13:02:17 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cdcc36efde 
								
							 
						 
						
							
							
								
								Kernel: Remove unnecessary raise syscall  
							
							
							
						 
						
							2023-12-06 13:00:45 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								336daa2cc5 
								
							 
						 
						
							
							
								
								Kernel: Add helper for checking whether segment is from userspace  
							
							
							
						 
						
							2023-12-06 12:57:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								531211e09d 
								
							 
						 
						
							
							
								
								AOC2023: implement day6  
							
							
							
						 
						
							2023-12-06 07:27:25 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								894065a67e 
								
							 
						 
						
							
							
								
								LibC: cleanup and fix fgets  
							
							... 
							
							
							
							My quick fix for fgets wrote non-nullterminated newline if size was
one.
POSIX doesn't specify what happens if size == 0, so I do the same as
glibc and return NULL without setting errno. 
							
						 
						
							2023-12-05 10:00:43 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								82cb2ea20b 
								
							 
						 
						
							
							
								
								AOC2023: implement day5  
							
							
							
						 
						
							2023-12-05 09:13:13 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								95fc894303 
								
							 
						 
						
							
							
								
								LibC: fix fgets when reading empty line  
							
							
							
						 
						
							2023-12-05 07:46:14 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								622007f2ee 
								
							 
						 
						
							
							
								
								Shell: Verify that command exists before executing it  
							
							... 
							
							
							
							This prevents page fault somewhere when executing non-existing
commands. 
							
						 
						
							2023-12-04 22:57:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cf76d2e7d9 
								
							 
						 
						
							
							
								
								AOC2023: remove unnecessary loop  
							
							
							
						 
						
							2023-12-04 17:54:10 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								41f8974080 
								
							 
						 
						
							
							
								
								AOC2023: implement day4  
							
							
							
						 
						
							2023-12-04 17:51:27 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3ed25425a3 
								
							 
						 
						
							
							
								
								AOC2023: implement day3  
							
							... 
							
							
							
							Solution to second puzzle is not optimal, it definately should be
O(1) space, but I didn't want to think about it. 
							
						 
						
							2023-12-03 17:07:09 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								49f8c4268f 
								
							 
						 
						
							
							
								
								AOC2023: implement day2  
							
							
							
						 
						
							2023-12-02 16:10:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								70c224d8ea 
								
							 
						 
						
							
							
								
								AOC2023: Cleanup day1 code  
							
							
							
						 
						
							2023-12-01 13:31:55 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6a7335e5c9 
								
							 
						 
						
							
							
								
								AOC2023: implement day1  
							
							
							
						 
						
							2023-12-01 12:38:01 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								3aaa755c51 
								
							 
						 
						
							
							
								
								AOC2023: update buildsystem  
							
							
							
						 
						
							2023-12-01 12:38:01 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c140dd2a65 
								
							 
						 
						
							
							
								
								Kernel: Fix keyboard layout for underscore  
							
							
							
						 
						
							2023-12-01 12:31:16 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								dabd79afa7 
								
							 
						 
						
							
							
								
								Userspace: Prepare aoc2023 environment :)  
							
							
							
						 
						
							2023-12-01 01:22:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								6ccb1bbbf9 
								
							 
						 
						
							
							
								
								init: set default termios on every username prompt  
							
							... 
							
							
							
							Before if e.g. Shell crashed init would have broken termios 
							
						 
						
							2023-12-01 01:22:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								9b841cb823 
								
							 
						 
						
							
							
								
								BuildSystem/Kernel: Enable -Wextra and -Werror in kernel  
							
							... 
							
							
							
							Only needed to fix some unused variable bugs 
							
						 
						
							2023-12-01 01:22:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								c1cac43f28 
								
							 
						 
						
							
							
								
								BuildSystem: Don't build lai with -Wstack-usage  
							
							... 
							
							
							
							Lai has two functions that trigger warnings on gcc. There isn't
really anything I can do about it, so just disable the warning 
							
						 
						
							2023-12-01 01:22:53 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								8564b59e14 
								
							 
						 
						
							
							
								
								image: Remove inheritance from Netbpm  
							
							... 
							
							
							
							This inheritance made no sense 
							
						 
						
							2023-11-29 20:56:05 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								fdb6dc94ba 
								
							 
						 
						
							
							
								
								Kernel: cast between inheritance with static_cast  
							
							... 
							
							
							
							using reinterpret_cast is not a good idea. preferably we would use
dynamic_cast, but that is not possible since kernel is compiled with
-fno-rtti. 
							
						 
						
							2023-11-29 20:50:57 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								327b330338 
								
							 
						 
						
							
							
								
								Kernel: Make internal framebuffer bpp constexpr defined in libc  
							
							
							
						 
						
							2023-11-29 20:07:33 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								7090388c70 
								
							 
						 
						
							
							
								
								cp: allow copying all files except directories  
							
							... 
							
							
							
							The old condition seemed odd. This allows taking screen shots by
copying the /dev/fb0. 
							
						 
						
							2023-11-29 16:13:40 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								ff550785a7 
								
							 
						 
						
							
							
								
								Userspace: Implement basic image rendering for Netbpm  
							
							... 
							
							
							
							You can now render Netbpm (P6) format image to framebuffer using
`image` command. I added basic test image to
/usr/share/images/sample.ppm 
							
						 
						
							2023-11-29 16:11:35 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d7a3aca5d4 
								
							 
						 
						
							
							
								
								Kernel: Use the correct bpp when writing to framebuffer  
							
							
							
						 
						
							2023-11-29 00:31:24 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								056586486d 
								
							 
						 
						
							
							
								
								Shell: make clear use \e[2J instead of \e[J  
							
							... 
							
							
							
							This makes kernel to actually clear the full screen. If framebuffer
did not fit font exactly last row would be left partially uncleared 
							
						 
						
							2023-11-28 23:55:37 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								42a1d26d5b 
								
							 
						 
						
							
							
								
								Userspace: Implement basic test for framebuffer mmap  
							
							
							
						 
						
							2023-11-28 23:52:22 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								cc572af390 
								
							 
						 
						
							
							
								
								Kernel: Implement mmaping for framebuffer device  
							
							
							
						 
						
							2023-11-28 23:51:56 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4275d2ce48 
								
							 
						 
						
							
							
								
								Kernel: Add framebuffer device to devfs  
							
							
							
						 
						
							2023-11-28 23:51:28 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4a87d6052b 
								
							 
						 
						
							
							
								
								Kernel: Add API for implementing mmappable devices  
							
							
							
						 
						
							2023-11-28 23:50:49 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								d86ecf4f61 
								
							 
						 
						
							
							
								
								Kernel: Reading from negative offset in fb dev gives out info  
							
							
							
						 
						
							2023-11-28 23:50:11 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								09b7cb2f33 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement pread()  
							
							
							
						 
						
							2023-11-28 23:47:30 +02:00  
				
					
						
							
							
								
								Bananymous 
							
						 
						
							
								4c3da66c92 
								
							 
						 
						
							
							
								
								mmap-shared-test: Add test case for msync  
							
							
							
						 
						
							2023-11-22 22:45:16 +02:00