serenity/Kernel/Syscalls
kleines Filmröllchen a6a439243f Kernel: Turn lock ranks into template parameters
This step would ideally not have been necessary (increases amount of
refactoring and templates necessary, which in turn increases build
times), but it gives us a couple of nice properties:
- SpinlockProtected inside Singleton (a very common combination) can now
  obtain any lock rank just via the template parameter. It was not
  previously possible to do this with SingletonInstanceCreator magic.
- SpinlockProtected's lock rank is now mandatory; this is the majority
  of cases and allows us to see where we're still missing proper ranks.
- The type already informs us what lock rank a lock has, which aids code
  readability and (possibly, if gdb cooperates) lock mismatch debugging.
- The rank of a lock can no longer be dynamic, which is not something we
  wanted in the first place (or made use of). Locks randomly changing
  their rank sounds like a disaster waiting to happen.
- In some places, we might be able to statically check that locks are
  taken in the right order (with the right lock rank checking
  implementation) as rank information is fully statically known.

This refactoring even more exposes the fact that Mutex has no lock rank
capabilites, which is not fixed here.
2023-01-02 18:15:27 -05:00
..
alarm.cpp
anon_create.cpp
beep.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
chdir.cpp
chmod.cpp
chown.cpp
clock.cpp
debug.cpp
disown.cpp
dup2.cpp
emuctl.cpp
execve.cpp Kernel: Disallow executing SUID binaries if process is jailed 2022-12-30 15:49:37 -05:00
exit.cpp
faccessat.cpp Kernel+LibC+LibCore+UserspaceEmulator: Implement faccessat(2) 2022-12-11 19:55:37 -07:00
fallocate.cpp Kernel: Add some spec links and comments to sys$posix_fallocate() 2022-11-29 11:09:19 +01:00
fcntl.cpp
fork.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
fsync.cpp
ftruncate.cpp
futex.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
get_dir_entries.cpp
get_stack_bounds.cpp
getrandom.cpp
getuid.cpp
hostname.cpp
inode_watcher.cpp
ioctl.cpp
jail.cpp Kernel: Disallow executing SUID binaries if process is jailed 2022-12-30 15:49:37 -05:00
keymap.cpp
kill.cpp
link.cpp Kernel+LibC+LibCore: Implement symlinkat(2) 2022-12-11 19:55:37 -07:00
lseek.cpp
mkdir.cpp Kernel+LibC+LibCore: Implement mkdirat(2) 2022-12-11 19:55:37 -07:00
mknod.cpp
mmap.cpp Kernel: Reorganize Arch/x86 directory to Arch/x86_64 after i686 removal 2022-12-28 11:53:41 +01:00
mount.cpp Kernel: Split the Ext2FileSystem.{cpp,h} files into smaller components 2022-11-08 02:54:48 -07:00
open.cpp
perf_event.cpp
pipe.cpp
pledge.cpp
poll.cpp
prctl.cpp
process.cpp
profiling.cpp
ptrace.cpp
purge.cpp
read.cpp
readlink.cpp Kernel+LibC: Implement readlinkat(2) 2022-12-11 19:55:37 -07:00
realpath.cpp
rename.cpp Kernel+LibC+LibCore: Implement renameat(2) 2022-12-11 19:55:37 -07:00
resource.cpp
rmdir.cpp
sched.cpp
sendfd.cpp
setpgid.cpp
setuid.cpp Kernel+LibC: Implement setregid(2) 2022-12-11 19:55:37 -07:00
sigaction.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
socket.cpp
stat.cpp
statvfs.cpp
sync.cpp
sysconf.cpp
thread.cpp Kernel: Move ThreadRegisters into arch-specific directory 2022-12-29 19:32:20 -07:00
times.cpp
umask.cpp
uname.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
unlink.cpp
unveil.cpp Kernel+LibCore+LibC: Implement support for forcing unveil on exec 2022-11-26 12:42:15 -07:00
utime.cpp
utimensat.cpp Kernel: Update tv_nsec field when using utimensat() with UTIME_NOW 2022-11-24 16:56:27 +01:00
waitid.cpp
write.cpp Kernel+LibC+Tests: Implement pwritev(2) 2022-12-11 19:55:37 -07:00