Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c110cf193d 
								
							 
						 
						
							
							
								
								Kernel: Have the open() syscall take an explicit path length parameter.  
							
							... 
							
							
							
							Instead of computing the path length inside the syscall handler, let the
caller do that work. This allows us to implement to new variants of open()
and creat(), called open_with_path_length() and creat_with_path_length().
These are suitable for use with e.g StringView. 
							
						 
						
							2019-07-08 20:01:49 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								27f699ef0c 
								
							 
						 
						
							
							
								
								AK: Rename the common integer typedefs to make it obvious what they are.  
							
							... 
							
							
							
							These types can be picked up by including <AK/Types.h>:
* u8, u16, u32, u64 (unsigned)
* i8, i16, i32, i64 (signed) 
							
						 
						
							2019-07-03 21:20:13 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robin Burchell 
								
							 
						 
						
							
							
							
							
								
							
							
								952382b413 
								
							 
						 
						
							
							
								
								Kernel/Userland: Add a halt syscall, and a shutdown binary to invoke it  
							
							
							
						 
						
							2019-06-16 12:25:30 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								736092a087 
								
							 
						 
						
							
							
								
								Kernel: Move i386.{cpp,h} => Arch/i386/CPU.{cpp,h}  
							
							... 
							
							
							
							There's a ton of work that would need to be done before we could spin up on
another architecture, but let's at least try to separate things out a bit. 
							
						 
						
							2019-06-07 20:02:01 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								bc951ca565 
								
							 
						 
						
							
							
								
								Kernel: Run clang-format on everything.  
							
							
							
						 
						
							2019-06-07 11:43:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								93d3d1ede1 
								
							 
						 
						
							
							
								
								Kernel: Add fchown() syscall.  
							
							
							
						 
						
							2019-06-01 20:31:36 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Robin Burchell 
								
							 
						 
						
							
							
							
							
								
							
							
								9cd0f6ffac 
								
							 
						 
						
							
							
								
								Kernel/LibC: Implement sched_* functionality to set/get process priority  
							
							... 
							
							
							
							Right now, we allow anything inside a user to raise or lower any other process's
priority. This feels simple enough to me. Linux disallows raising, but
that's annoying in practice. 
							
						 
						
							2019-05-30 02:57:15 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9806a23f83 
								
							 
						 
						
							
							
								
								Kernel: Return ENOSYS if an invalid syscall number is requested.  
							
							
							
						 
						
							2019-05-23 17:04:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ae470ec955 
								
							 
						 
						
							
							
								
								Kernel: Add getpeername() syscall, and fix getsockname() behavior.  
							
							... 
							
							
							
							We were copying the raw IPv4 addresses into the wrong part of sockaddr_in,
and we didn't set sa_family or sa_port. 
							
						 
						
							2019-05-20 20:33:03 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								212a263f0a 
								
							 
						 
						
							
							
								
								Kernel+LibC: Implement getsockname() syscall.  
							
							
							
						 
						
							2019-05-19 19:55:27 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								3cba2a8a78 
								
							 
						 
						
							
							
								
								Kernel: Add a beep() syscall that beeps the PC speaker.  
							
							... 
							
							
							
							Hook this up in Terminal so that the '\a' character generates a beep.
Finally emit an '\a' character in the shell line editing code when
backspacing at the start of the line. 
							
						 
						
							2019-05-15 21:40:41 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								99aead4857 
								
							 
						 
						
							
							
								
								Kernel: Add a writev() syscall for writing multiple buffers in one go.  
							
							... 
							
							
							
							We then use this immediately in the WindowServer/LibGUI communication in
order to send both message + optional "extra data" with a single syscall. 
							
						 
						
							2019-05-10 03:19:25 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								8b249bd09b 
								
							 
						 
						
							
							
								
								Kernel+Userland: Implement mknod() syscall and add a /bin/mknod program.  
							
							
							
						 
						
							2019-05-03 22:59:58 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								25ddcd1022 
								
							 
						 
						
							
							
								
								Kernel: Emit systrace events for exit, thread_exit and sigreturn.  
							
							... 
							
							
							
							Since these syscalls don't return to caller, we have to emit the trace
events manually. 
							
						 
						
							2019-05-02 15:49:48 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								d07be1087a 
								
							 
						 
						
							
							
								
								Kernel+LibC: Add exit_thread() syscall.  
							
							
							
						 
						
							2019-04-29 15:17:20 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								5c68929aa1 
								
							 
						 
						
							
							
								
								Kernel: Add a systrace() syscall and implement /bin/strace using it.  
							
							... 
							
							
							
							Calling systrace(pid) gives you a file descriptor with a stream of the
syscalls made by a peer process. The process must be owned by the same
UID who calls systrace(). :^) 
							
						 
						
							2019-04-22 18:44:45 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c02c6fef28 
								
							 
						 
						
							
							
								
								Kernel+ProcessManager: Show per-process syscall counts.  
							
							... 
							
							
							
							Added a simple syscall counter to the /proc/all contents. :^) 
							
						 
						
							2019-04-17 23:16:14 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								37ae00a4dd 
								
							 
						 
						
							
							
								
								Kernel+Userland: Add the rename() syscall along with a basic /bin/mv.  
							
							
							
						 
						
							2019-04-07 23:35:26 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								d712d353ac 
								
							 
						 
						
							
							
								
								Kernel: Remove leftover debug spam when returning from mkdir() syscall.  
							
							
							
						 
						
							2019-03-14 14:11:35 +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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								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 
								
							 
						 
						
							
							
							
							
								
							
							
								251293f2e1 
								
							 
						 
						
							
							
								
								Kernel: Block a signal from being dispatched again until handler returns.  
							
							... 
							
							
							
							We don't handle nesting yet, but this is a step in the right direction. 
							
						 
						
							2019-03-05 10:34:08 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								2c5a378ccc 
								
							 
						 
						
							
							
								
								Kernel+Userland: Add symlink() syscall and add "-s" flag to /bin/ln.  
							
							... 
							
							
							
							It's now possible to create symbolic links! :^)
This exposed an issue in Ext2FS where we'd write uninitialized data past
the end of an inode's content. Fix this by zeroing out the tail end of
the last block in a file. 
							
						 
						
							2019-03-02 01:52:24 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1b16a29044 
								
							 
						 
						
							
							
								
								Kernel+Userland: Implement fchmod() syscall and use it to improve /bin/cp.  
							
							... 
							
							
							
							/bin/cp will now copy the permission bits from source to destination. :^) 
							
						 
						
							2019-03-01 10:39:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								1d2529b4a1 
								
							 
						 
						
							
							
								
								Add chown() syscall and a simple /bin/chown program.  
							
							
							
						 
						
							2019-02-27 12:32:53 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								e421c10735 
								
							 
						 
						
							
							
								
								More compat work towards porting vim.  
							
							... 
							
							
							
							It now builds and runs in the small-featureset configuration. :^) 
							
						 
						
							2019-02-27 00:02:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								cccc8d8aeb 
								
							 
						 
						
							
							
								
								More compat work.  
							
							... 
							
							
							
							Move syscall to int 0x82 since using int 0x80 was kinda prone to fork bombs
when building things on Linux. :^) 
							
						 
						
							2019-02-26 12:57:02 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								9624b54703 
								
							 
						 
						
							
							
								
								More moving towards using signed types.  
							
							... 
							
							
							
							I'm still feeling this out, but I am starting to like the general idea. 
							
						 
						
							2019-02-25 22:06:55 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								beda478821 
								
							 
						 
						
							
							
								
								Kernel: Make syscalls that take a buffer size use ssize_t instead of size_t.  
							
							... 
							
							
							
							Dealing with the unsigned overflow propagation here just seems unreasonably
error prone. Let's limit ourselves to 2GB buffer sizes instead. 
							
						 
						
							2019-02-25 21:21:12 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								6d3e12899b 
								
							 
						 
						
							
							
								
								Kernel: Pass process arguments directly on the stack.  
							
							... 
							
							
							
							Get rid of the convoluted get_arguments and get_environment syscalls.
This patch also adds a simple /bin/env that just prints its environment. 
							
						 
						
							2019-02-22 01:55:22 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								7d288aafb2 
								
							 
						 
						
							
							
								
								Kernel: Add link() syscall to create hard links.  
							
							... 
							
							
							
							This accidentally grew into a little bit of VFS cleanup as well.
Also add a simple /bin/ln implementation to exercise it. 
							
						 
						
							2019-02-21 13:26:40 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4ea28bf0a5 
								
							 
						 
						
							
							
								
								Kernel: Add a simple shared memory API for two processes only.  
							
							... 
							
							
							
							And use this to implement shared bitmaps between WindowServer and clients. 
							
						 
						
							2019-02-16 12:13:43 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								a63e8839da 
								
							 
						 
						
							
							
								
								LibC: Add socket(), bind(), listen(), accept() and connect().  
							
							
							
						 
						
							2019-02-14 15:26:06 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								f529b845ec 
								
							 
						 
						
							
							
								
								WindowServer: Convert entire API to be message-based.  
							
							... 
							
							
							
							One big step towards userspace WindowServer. :^) 
							
						 
						
							2019-02-14 01:21:32 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ef4e9860fd 
								
							 
						 
						
							
							
								
								WindowServer: Convert the remaining menu APIs into messages.  
							
							
							
						 
						
							2019-02-13 21:47:14 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								cf432b4c3d 
								
							 
						 
						
							
							
								
								WindowServer: Refactor more of the menu APIs to be message-based.  
							
							... 
							
							
							
							This is all pretty verbose but I can whittle it down later. :^) 
							
						 
						
							2019-02-13 18:49:23 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								4f98a35beb 
								
							 
						 
						
							
							
								
								WindowServer: Begin refactoring towards a fully asynchronous protocol.  
							
							... 
							
							
							
							In order to move the WindowServer to userspace, I have to eliminate its
dependence on system call facilities. The communication channel with each
client needs to be message-based in both directions. 
							
						 
						
							2019-02-13 17:54:30 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								133706d697 
								
							 
						 
						
							
							
								
								Add API's and plumbing for WindowServer clients to make menus.  
							
							
							
						 
						
							2019-02-12 00:52:19 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								353b191a49 
								
							 
						 
						
							
							
								
								Clean up some uninteresting log spam.  
							
							
							
						 
						
							2019-02-06 11:32:23 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								dddd0e7b03 
								
							 
						 
						
							
							
								
								Get nyancat nyanning in Serenity.  
							
							... 
							
							
							
							I found a cute program that renders an animated nyancat in the terminal.
This patch adds enough hackery to get it working correctly. :^) 
							
						 
						
							2019-02-03 16:11:28 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								ffab6897aa 
								
							 
						 
						
							
							
								
								Big, possibly complete sweep of naming changes.  
							
							
							
						 
						
							2019-01-31 17:31:23 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Andreas Kling 
								
							 
						 
						
							
							
							
							
								
							
							
								c30e2c8d44 
								
							 
						 
						
							
							
								
								Implement basic chmod() syscall and /bin/chmod helper.  
							
							... 
							
							
							
							Only raw octal modes are supported right now.
This patch also changes mode_t from 32-bit to 16-bit to match the on-disk
type used by Ext2FS.
I also ran into EPERM being errno=0 which was confusing, so I inserted an
ESUCCESS in its place. 
							
						 
						
							2019-01-29 04:55:08 +01:00