1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 12:37:44 +00:00
serenity/Kernel/Syscalls
Liav A cbf78975f1 Kernel: Add the futimens syscall
We have a problem with the original utimensat syscall because when we
do call LibC futimens function, internally we provide an empty path,
and the Kernel get_syscall_path_argument method will detect this as an
invalid path.

This happens to spit an error for example in the touch utility, so if a
user is running "touch non_existing_file", it will create that file, but
the user will still see an error coming from LibC futimens function.

This new syscall gets an open file description and it provides the same
functionality as utimensat, on the specified open file description.
The new syscall will be used later by LibC to properly implement LibC
futimens function so the situation described with relation to the
"touch" utility could be fixed.
2023-04-10 10:21:28 +02:00
..
alarm.cpp Kernel: Mark sys$alarm as not needing the big lock 2023-04-04 10:33:42 +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: Use custody_for_dirfd() in more syscalls 2023-04-04 10:33:42 +02:00
chown.cpp Kernel: Use custody_for_dirfd() in more syscalls 2023-04-04 10:33:42 +02:00
clock.cpp Kernel: Mark sys$map_time_page as not needing the big lock 2023-04-06 20:30:03 +03:00
debug.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
disown.cpp Kernel: Make sys$disown not require the big lock 2023-04-04 10:33:42 +02: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: Don't reuse old master TLS region data in sys$execve() 2023-04-08 07:28:27 +02:00
exit.cpp Kernel: Factor our PreviousMode into RegisterState::previous_mode 2023-01-27 11:41:43 +01:00
faccessat.cpp Kernel: Mark sys$faccessat as not needing the big lock 2023-04-05 11:37:27 +02: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: Mark sys$fcntl as not needing the big lock 2023-04-04 10:33:42 +02:00
fork.cpp Kernel: Make Credentials the authority on process SID 2023-04-05 11:37:27 +02: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/Syscalls: Use copy_n_to_user when applicable 2023-03-24 18:25:12 +01: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: Mark inode watcher syscalls as not needing the big lock 2023-04-04 10:33:42 +02: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: Make the Jails' internal design a lot more sane 2023-03-12 10:21:59 -06:00
keymap.cpp Kernel: Remove redundant HID name from all associated files 2023-04-09 18:11:37 +02:00
kill.cpp Kernel: Mark sys$killpg as not needing the big lock 2023-04-04 10:33:42 +02: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: Check flags for MAP_FIXED instead of prot in sys$mmap 2023-04-09 11:10:37 +03:00
mount.cpp Kernel: Stop using *LockRefPtr for FileSystem pointers 2023-04-04 10:33:42 +02:00
open.cpp Kernel: Mark sys$open as not needing the big lock 2023-04-04 10:33:42 +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/Syscalls: Use copy_n_to_user when applicable 2023-03-24 18:25:12 +01:00
pledge.cpp Kernel: Remove pledge syscall from the big lock 2023-02-06 20:36:53 +01:00
poll.cpp Kernel/Syscalls: Use copy_n_to_user when applicable 2023-03-24 18:25:12 +01:00
prctl.cpp Kernel: Merge {get,set}_process_name syscalls to the prctl syscall 2023-03-15 20:10:48 +01:00
process.cpp Kernel: Merge {get,set}_process_name syscalls to the prctl syscall 2023-03-15 20:10:48 +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 Kernel: Mark sys$getrusage as not needing the big lock 2023-04-04 10:33:42 +02: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: Mark sys$setpgid as not needing the big lock 2023-04-05 11:37:27 +02:00
setuid.cpp Kernel: Add sid and pgid to Credentials 2023-01-03 18:13:11 +01:00
sigaction.cpp Kernel: Store FPU state when dispatching signal on aarch64 2023-04-06 21:19:58 +03:00
socket.cpp Kernel: Make the getsockname/getpeername syscall helper a bit nicer 2023-04-04 10:33:42 +02:00
stat.cpp Kernel: Use custody_for_dirfd() in more syscalls 2023-04-04 10:33:42 +02: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: Add non standard value to sys$sysconf 2023-03-11 13:06:36 +00:00
thread.cpp Kernel: Stop using *LockRefPtr for Thread 2023-04-04 10:33:42 +02:00
times.cpp Kernel: Make sys$times not use the big lock 2023-04-04 10:33:42 +02:00
umask.cpp Kernel: Mark sys$umask as not needing the big lock 2023-04-04 10:33:42 +02:00
uname.cpp Kernel: Remove i686 support 2022-12-28 11:53:41 +01:00
unlink.cpp Kernel: Use custody_for_dirfd() in more syscalls 2023-04-04 10:33:42 +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: Add the futimens syscall 2023-04-10 10:21:28 +02:00
waitid.cpp Kernel: Stop using *LockRefPtr for ProcessGroup 2023-04-04 10:33:42 +02:00
write.cpp Kernel+LibC+Tests: Implement pwritev(2) 2022-12-11 19:55:37 -07:00