ladybird/Kernel/Syscalls
Andreas Kling d1371d66f7 Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription
This patch switches away from {Nonnull,}LockRefPtr to the non-locking
smart pointers throughout the kernel.

I've looked at the handful of places where these were being persisted
and I don't see any race situations.

Note that the process file descriptor table (Process::m_fds) was already
guarded via MutexProtected.
2023-03-07 00:30:12 +01:00
..
alarm.cpp Kernel: Make self-contained locking smart pointers their own classes 2022-08-20 17:20:43 +02:00
anon_create.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
beep.cpp Kernel+Userland: Add support for using the PCSpeaker with various tones 2023-03-05 08:38:29 +00:00
chdir.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
chmod.cpp Kernel: Make File::{chown,chmod} take credentials as input 2022-08-21 16:15:29 +02:00
chown.cpp Kernel: Stop using NonnullLockRefPtrVector 2023-03-06 23:46:36 +01:00
clock.cpp Kernel: Support more clocks in sys$clock_getres() 2023-02-21 01:00:06 +01:00
debug.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
disown.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
dup2.cpp Kernel: Mark sys$dup2() as not needing the big lock 2022-03-09 16:43:00 +01:00
emuctl.cpp Kernel: Mark sys$emuctl() as not needing the big lock 2022-03-09 16:43:00 +01:00
execve.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
exit.cpp Kernel: Factor our PreviousMode into RegisterState::previous_mode 2023-01-27 11:41:43 +01:00
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 Kernel: Support F_DUPFD_CLOEXEC command to fcntl(2) 2023-02-19 00:37:37 +01:00
fork.cpp Kernel: Protect Process::m_name with a spinlock 2023-02-06 20:36:53 +01:00
fsync.cpp Kernel: Mark sys$fsync() as not needing the big lock 2022-03-08 00:19:49 +01:00
ftruncate.cpp Kernel: Mark sys$ftruncate() as not needing the big lock 2022-03-09 16:43:00 +01:00
futex.cpp Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
get_dir_entries.cpp Kernel: Convert process file descriptor table to a SpinlockProtected 2022-01-29 02:17:06 +01:00
get_stack_bounds.cpp Kernel: Wrap process address spaces in SpinlockProtected 2022-08-24 14:57:51 +02:00
getrandom.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
getuid.cpp Kernel: Use Process::credentials() and remove user ID/group ID helpers 2022-08-22 12:46:32 +02:00
hostname.cpp Kernel: Use Process::credentials() and remove user ID/group ID helpers 2022-08-22 12:46:32 +02:00
inode_watcher.cpp Kernel: Remove create_inode_watcher syscall from the big lock 2023-02-06 20:36:53 +01:00
ioctl.cpp Kernel+Userland: Move LibC/sys/ioctl_numbers to Kernel/API/Ioctl.h 2023-01-21 10:43:59 -07:00
jail.cpp Kernel+Userland: Move LibC/sys/ioctl_numbers to Kernel/API/Ioctl.h 2023-01-21 10:43:59 -07:00
keymap.cpp Kernel: Use Process::credentials() and remove user ID/group ID helpers 2022-08-22 12:46:32 +02:00
kill.cpp Kernel: Protect Process::m_name with a spinlock 2023-02-06 20:36:53 +01:00
link.cpp Kernel+LibC+LibCore: Implement symlinkat(2) 2022-12-11 19:55:37 -07:00
lseek.cpp Kernel: Mark sys$lseek() as not needing the big lock 2022-03-09 16:43:00 +01:00
mkdir.cpp Kernel+LibC+LibCore: Implement mkdirat(2) 2022-12-11 19:55:37 -07:00
mknod.cpp Kernel: Make sys$mknod() not take the big lock 2022-08-22 17:56:03 +02:00
mmap.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
mount.cpp Kernel+SystemServer+Base: Introduce the RAMFS filesystem 2023-02-04 15:32:45 -07:00
open.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
perf_event.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
pipe.cpp Kernel: Use Process::credentials() and remove user ID/group ID helpers 2022-08-22 12:46:32 +02:00
pledge.cpp Kernel: Remove pledge syscall from the big lock 2023-02-06 20:36:53 +01:00
poll.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
prctl.cpp Kernel: Move process coredump metadata modification to the prctl syscall 2023-03-05 16:55:08 +01:00
process.cpp Kernel: Move process coredump metadata modification to the prctl syscall 2023-03-05 16:55:08 +01:00
profiling.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
ptrace.cpp Kernel: Update registers in tracer when attaching to a stopped thread 2023-02-08 19:23:07 +01:00
purge.cpp Kernel: Stop using NonnullLockRefPtrVector 2023-03-06 23:46:36 +01:00
read.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
readlink.cpp Kernel+LibC: Implement readlinkat(2) 2022-12-11 19:55:37 -07:00
realpath.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
rename.cpp Kernel+LibC+LibCore: Implement renameat(2) 2022-12-11 19:55:37 -07:00
resource.cpp AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
rmdir.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
sched.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
sendfd.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
setpgid.cpp Kernel: Require "stdio" pledge promise when calling get_root_session_id 2023-01-13 13:41:30 +01:00
setuid.cpp Kernel: Add sid and pgid to Credentials 2023-01-03 18:13:11 +01:00
sigaction.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
socket.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
stat.cpp Kernel: Stop using NonnullLockRefPtrVector 2023-03-06 23:46:36 +01:00
statvfs.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
sync.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
sysconf.cpp Kernel: Require semicolon after VERIFY_{NO_,}PROCESS_BIG_LOCK_ACQUIRED 2022-08-17 22:56:51 +02:00
thread.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
times.cpp AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
umask.cpp Kernel: Guard Process "protected data" with a spinlock 2022-08-21 12:25:14 +02:00
uname.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
unlink.cpp Kernel: Make VirtualFileSystem functions take credentials as input 2022-08-21 16:02:24 +02:00
unveil.cpp Kernel+LibCore+LibC: Implement support for forcing unveil on exec 2022-11-26 12:42:15 -07:00
utime.cpp Kernel: Make sys$utime() and sys$utimensat() not take the big lock 2022-08-22 17:56:03 +02:00
utimensat.cpp Kernel: Use non-locking {Nonnull,}RefPtr for OpenFileDescription 2023-03-07 00:30:12 +01:00
waitid.cpp Kernel: Add support for jails 2022-11-05 18:00:58 -06:00
write.cpp Kernel+LibC+Tests: Implement pwritev(2) 2022-12-11 19:55:37 -07:00