serenity/Kernel/Syscalls
Liav A. 01e1af732b Kernel/FileSystem: Introduce the VFSRootContext class
The VFSRootContext class, as its name suggests, holds a context for a
root directory with its mount table and the root custody/inode in the
same class.

The idea is derived from the Linux mount namespace mechanism.
It mimicks the concept of the ProcessList object, but it is adjusted for
a root directory tree context.
In contrast to the ProcessList concept, processes that share the default
VFSRootContext can't see other VFSRootContext related properties such as
as the mount table and root custody/inode.

To accommodate to this change progressively, we internally create 2 main
VFS root contexts for now - one for kernel processes (as they don't need
to care about VFS root contexts for the most part), and another for all
userspace programs.
This separation allows us to continue pretending for userspace that
everything is "normal" as it is used to be, until we introduce proper
interfaces in the mount-related syscalls as well as in the SysFS.

We make VFSRootContext objects being listed, as another preparation
before we could expose interfaces to userspace.
As a result, the PowerStateSwitchTask now iterates on all contexts
and tear them down one by one.
2024-07-21 11:44:23 +02:00
..
alarm.cpp
anon_create.cpp
chdir.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
chmod.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
chown.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
clock.cpp
debug.cpp
disown.cpp
dup2.cpp
emuctl.cpp
execve.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
exit.cpp
faccessat.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
fallocate.cpp
fcntl.cpp
fork.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
fsync.cpp
ftruncate.cpp
futex.cpp
get_dir_entries.cpp
get_stack_bounds.cpp
getrandom.cpp
getuid.cpp
hostname.cpp
inode_watcher.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
ioctl.cpp
jail.cpp Documentation: Fix some minor ESL grammar issues 2024-07-03 00:17:46 +02:00
keymap.cpp
kill.cpp
link.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
lseek.cpp
mkdir.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
mknod.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
mmap.cpp Kernel+Userland: Reject W->X prot region transition after a prctl call 2024-05-14 12:41:51 -06:00
mount.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
open.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
perf_event.cpp
pipe.cpp
pledge.cpp
poll.cpp
prctl.cpp Kernel+Userland: Reject W->X prot region transition after a prctl call 2024-05-14 12:41:51 -06:00
process.cpp
profiled_syscalls.cpp
profiling.cpp
ptrace.cpp
purge.cpp
read.cpp
readlink.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
realpath.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
rename.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
resource.cpp
rmdir.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
sched.cpp
sendfd.cpp
setpgid.cpp
setuid.cpp
sigaction.cpp
socket.cpp Kernel: Don't try to copy empty Vector in sys$recvmsg 2024-04-19 16:38:55 -04:00
stat.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
statvfs.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
sync.cpp
SyscallHandler.cpp Everywhere: Use east const in more places 2024-04-19 06:31:19 -04:00
sysconf.cpp
thread.cpp Kernel+LibC+LibELF: Move TLS handling to userspace 2024-04-19 16:46:47 -06:00
times.cpp
umask.cpp
uname.cpp
unlink.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
unveil.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
utime.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
utimensat.cpp Kernel/FileSystem: Introduce the VFSRootContext class 2024-07-21 11:44:23 +02:00
waitid.cpp
write.cpp