Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								13041f894f 
								
							 
						 
						
							
							
								
								Kernel: Start using StringView in the VFS class.  
							
							... 
							
							
							
							The less kmalloc() we can do, the better. Calling kmalloc() disables all
interrupts while it runs, so it's directly affecting responsiveness. 
							
						 
						
							2019-04-15 14:57:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3f6408919f 
								
							 
						 
						
							
							
								
								AK: Improve smart pointer ergonomics a bit.  
							
							
							
						 
						
							2019-04-14 02:36:06 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								29d0412a06 
								
							 
						 
						
							
							
								
								Kernel: Remove system.h and make the uptime global a qword.  
							
							
							
						 
						
							2019-04-14 01:29:14 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								60a819c14a 
								
							 
						 
						
							
							
								
								Kernel: Yet more work on bringing up POSIX SHM.  
							
							
							
						 
						
							2019-04-09 02:37:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								26a06f3fcd 
								
							 
						 
						
							
							
								
								Kernel: More work towards POSIX SHM, also add ftruncate().  
							
							
							
						 
						
							2019-04-09 01:10:00 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								99f3cc26c3 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add stubs for POSIX shared memory API.  
							
							... 
							
							
							
							Specifically shm_open() and shm_unlink(). This patch just adds stubs. 
							
						 
						
							2019-04-08 23:44:12 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								65d6318c33 
								
							 
						 
						
							
							
								
								Kernel: Support non-blocking connect().  
							
							... 
							
							
							
							If connect() is called on a non-blocking socket, it will "fail" immediately
with -EINPROGRESS. After that, you select() on the socket and wait for it to
become writable. 
							
						 
						
							2019-04-08 04:52:21 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								37ae00a4dd 
								
							 
						 
						
							
							
								
								Kernel+Userland: Add the rename() syscall along with a basic /bin/mv.  
							
							
							
						 
						
							2019-04-07 23:35:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								644c887594 
								
							 
						 
						
							
							
								
								Kernel: Move FIFO into FileSystem/ and Socket+LocalSocket into Net/.  
							
							
							
						 
						
							2019-04-06 20:29:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ac6c7d3e19 
								
							 
						 
						
							
							
								
								Kernel: Use alloc_fd() more instead of walking fd list manually.  
							
							
							
						 
						
							2019-04-06 14:54:32 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a58d7fd8bb 
								
							 
						 
						
							
							
								
								Kernel: Get rid of Kernel/types.h, separate LinearAddress/PhysicalAddress.  
							
							
							
						 
						
							2019-04-06 14:29:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								b9738fa8ac 
								
							 
						 
						
							
							
								
								Kernel: Move VM-related files into Kernel/VM/.  
							
							... 
							
							
							
							Also break MemoryManager.{cpp,h} into one file per class. 
							
						 
						
							2019-04-03 15:13:07 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a095a90b51 
								
							 
						 
						
							
							
								
								Kernel: Remove ancient nprocess and nblocked globals.  
							
							... 
							
							
							
							These were not in sync with reality, and not used anywhere anyway. 
							
						 
						
							2019-04-03 13:05:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ab43658c55 
								
							 
						 
						
							
							
								
								Kernel: Move devices into Kernel/Devices/.  
							
							
							
						 
						
							2019-04-03 12:36:40 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								072ea7eece 
								
							 
						 
						
							
							
								
								Kernel: Move ELF-related files into Kernel/ELF/.  
							
							
							
						 
						
							2019-04-03 12:30:04 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9fca94269e 
								
							 
						 
						
							
							
								
								Kernel: Move TTY-related files into Kernel/TTY/.  
							
							
							
						 
						
							2019-04-03 12:28:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f9864940eb 
								
							 
						 
						
							
							
								
								Kernel: Move FS-related files into Kernel/FileSystem/  
							
							
							
						 
						
							2019-04-03 12:25:24 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d11b5407a3 
								
							 
						 
						
							
							
								
								Kernel: Get rid of the GPL elf.h and import exec_elf.h from OpenBSD.  
							
							
							
						 
						
							2019-04-03 11:30:56 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								649c81a714 
								
							 
						 
						
							
							
								
								Kernel: Move networking related files into Kernel/Net/.  
							
							
							
						 
						
							2019-04-02 19:54:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d5a9f4596b 
								
							 
						 
						
							
							
								
								Kernel: Add a blunt big process lock.  
							
							... 
							
							
							
							We can't have multiple threads in the same process running in the kernel
at the same time, so let's have a per-process lock that threads have to
acquire on syscall entry/exit (and yield while blocked.) 
							
						 
						
							2019-04-01 20:04:29 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								245c4bd7c8 
								
							 
						 
						
							
							
								
								Kernel: Add a bit of debug output in do_exec() to learn about thread counts.  
							
							
							
						 
						
							2019-03-30 21:14:40 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								44e1e7423f 
								
							 
						 
						
							
							
								
								Kernel: Put a bunch of debug spam behind #ifdefs.  
							
							
							
						 
						
							2019-03-27 15:07:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a2fe5f8517 
								
							 
						 
						
							
							
								
								Kernel: Don't disable interrupts during Process destruction.  
							
							
							
						 
						
							2019-03-27 14:38:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1592612a60 
								
							 
						 
						
							
							
								
								Kernel: Don't disable interrupts during Thread destruction.  
							
							
							
						 
						
							2019-03-27 14:30:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								75207ddffd 
								
							 
						 
						
							
							
								
								Kernel: Load ELF executable pages lazily when possible.  
							
							... 
							
							
							
							This currently only works for "normal" processes created by fork().
It does not work for create_user_process() processes spawned by the
kernel, as those are a bit special during construction. 
							
						 
						
							2019-03-27 04:01:15 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								500df578fe 
								
							 
						 
						
							
							
								
								LibGUI+Kernel: Add a GLock class (userspace mutex.)  
							
							... 
							
							
							
							It's basically a userspace port of the kernel's Lock class.
Added gettid() and donate() syscalls to support the timeslice donation
feature we already enjoyed in the kernel. 
							
						 
						
							2019-03-25 13:03:49 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ab11f42094 
								
							 
						 
						
							
							
								
								Kernel: Do timekeeping manually instead of asking the RTC all the time.  
							
							... 
							
							
							
							This introduces a tiny amount of timer drift which I will have to fix
somehow eventually, but it's a huge improvement in timing consistency
as we no longer suddenly jump from e.g 10:45:49.123 to 10:45:50.000. 
							
						 
						
							2019-03-25 02:06:57 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								239c0bd6a6 
								
							 
						 
						
							
							
								
								Kernel: Make block() and yield() automatically call Scheduler::yield().  
							
							... 
							
							
							
							This exposed some places we were accidentally doing a double yield(). 
							
						 
						
							2019-03-24 01:52:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5713c3a0cb 
								
							 
						 
						
							
							
								
								Kernel: Fix broken destruction order for Process/Thread.  
							
							
							
						 
						
							2019-03-24 01:20:35 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e561ab1b0b 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add a simple create_thread() syscall.  
							
							... 
							
							
							
							It takes two parameters, a function pointer for the entry function,
and a void* argument to be passed to that function on the new thread. 
							
						 
						
							2019-03-23 22:59:08 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								60d25f0f4a 
								
							 
						 
						
							
							
								
								Kernel: Introduce threads, and refactor everything in support of it.  
							
							... 
							
							
							
							The scheduler now operates on threads, rather than on processes.
Each process has a main thread, and can have any number of additional
threads. The process exits when the main thread exits.
This patch doesn't actually spawn any additional threads, it merely
does all the plumbing needed to make it possible. :^) 
							
						 
						
							2019-03-23 22:03:17 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								367bb9e4eb 
								
							 
						 
						
							
							
								
								Kernel: Remove ioctl for getting a socket peer's PID.  
							
							... 
							
							
							
							Now that everything is nice and mature, the WindowServer can just use the
client PID it receives in the Greeting message, and we can get rid of this
hacky ioctl. :^) 
							
						 
						
							2019-03-20 17:14:48 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bc1da7f1fd 
								
							 
						 
						
							
							
								
								Kernel: Snooze the NetworkTask until there are incoming packets to process.  
							
							... 
							
							
							
							This is accomplished using a new Alarm class and a BlockedSnoozing state.
Basically, you call Process::snooze_until(some_alarm) and then the scheduler
won't wake up the process until some_alarm.is_ringing() returns true. 
							
						 
						
							2019-03-20 17:09:46 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e48cbf3c8c 
								
							 
						 
						
							
							
								
								Kernel: connect() should fail with EISCONN for already-connected sockets.  
							
							... 
							
							
							
							Also make sure to reset the socket role if Socket::connect() fails. 
							
						 
						
							2019-03-20 02:38:36 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4aa0ab4e08 
								
							 
						 
						
							
							
								
								Kernel: Fix race between accept() and connect().  
							
							... 
							
							
							
							We had a bug where an accepted socket would appear to be EOF/disconnected
on the accepting side until the connecting side had called attach_fd().
Fix this by adding a new SocketRole::Connecting state. 
							
						 
						
							2019-03-20 02:33:51 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								69ffaa366d 
								
							 
						 
						
							
							
								
								Kernel: Handle unaligned ELF segments gracefully in the executable loader.  
							
							
							
						 
						
							2019-03-14 14:51:43 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								66d55f8e0c 
								
							 
						 
						
							
							
								
								IPv4: More work on the TCP implementation.  
							
							... 
							
							
							
							I can now establish a connection to my little test server on the host. 
							
						 
						
							2019-03-14 00:20:44 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								032d9d7065 
								
							 
						 
						
							
							
								
								IPv4: More hacking on bringing up TCP support.  
							
							... 
							
							
							
							This was a bit more complicated than I expected, but it's moving forward. 
							
						 
						
							2019-03-13 23:14:30 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								19a51132f5 
								
							 
						 
						
							
							
								
								Kernel: recvfrom() should treat the address arguments as outparams.  
							
							
							
						 
						
							2019-03-13 14:47:21 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								562663df7c 
								
							 
						 
						
							
							
								
								Add support for socket send/receive timeouts.  
							
							... 
							
							
							
							Only the receive timeout is hooked up yet. You can change the timeout by
calling setsockopt(..., SOL_SOCKET, SO_RCVTIMEO, ...).
Use this mechanism to make /bin/ping report timeouts. 
							
						 
						
							2019-03-13 13:15:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ce7c302933 
								
							 
						 
						
							
							
								
								Kernel: Oops, gettimeofday()'s tv_usec should be micro, not milliseconds.  
							
							
							
						 
						
							2019-03-13 03:25:18 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a7d5e9781a 
								
							 
						 
						
							
							
								
								Kernel+LibC+Userland: Yet more networking bringup hacking.  
							
							... 
							
							
							
							All ICMP sockets now receive all ICMP packets. All this buffering is gonna
need some limits and such. 
							
						 
						
							2019-03-12 17:27:07 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a017a77442 
								
							 
						 
						
							
							
								
								Kernel+LibC+Userland: Start working on an IPv4 socket backend.  
							
							... 
							
							
							
							The first userland networking program will be "ping" :^) 
							
						 
						
							2019-03-12 15:51:42 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c6a2012fe9 
								
							 
						 
						
							
							
								
								Kernel: Collect IPv4 stuff in IPv4.h and ARP stuff in ARP.h.  
							
							
							
						 
						
							2019-03-12 12:49:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a36eaeb18c 
								
							 
						 
						
							
							
								
								Kernel: Remove accidentally committed debugging code.  
							
							
							
						 
						
							2019-03-11 01:57:34 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1678ac69ef 
								
							 
						 
						
							
							
								
								Kernel: More work on Ethernet support.  
							
							
							
						 
						
							2019-03-10 23:40:09 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								97664fad60 
								
							 
						 
						
							
							
								
								Kernel: A bunch of hacking towards initial Ethernet support.  
							
							
							
						 
						
							2019-03-10 20:59:23 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								eda0866992 
								
							 
						 
						
							
							
								
								Add a C++ helper class for working with shared buffers.  
							
							... 
							
							
							
							This is a bit more comfortable than passing the shared buffer ID manually
everywhere and keeping track of size etc. 
							
						 
						
							2019-03-08 12:24:05 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e56fe71dbc 
								
							 
						 
						
							
							
								
								Kernel: And some more KResult/KResultOr<T> porting work.  
							
							
							
						 
						
							2019-03-06 22:30:13 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								028afabf6b 
								
							 
						 
						
							
							
								
								Kernel: Port more code to KResult and KResultOr<T>.  
							
							
							
						 
						
							2019-03-06 22:14:31 +01:00