serenity/Kernel
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
..
API Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00
Arch Kernel/HID: Untie the PS2 protocol, i8042 hardware and generic devices 2023-04-09 18:11:37 +02:00
Bus Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
Devices Kernel/HID: Untie the PS2 protocol, i8042 hardware and generic devices 2023-04-09 18:11:37 +02:00
FileSystem Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00
Firmware Kernel/PCI: Hold a reference to DeviceIdentifier in the Device class 2023-01-26 23:04:26 +01:00
Graphics Kernel: Stop using *LockRefPtr for Kernel::Timer 2023-04-04 10:33:42 +02:00
Heap Kernel+LibC: Move name length constants to Kernel/API from limits.h 2023-01-21 10:43:59 -07:00
Interrupts Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Library Kernel: Switch LockRefPtr<Inode> to RefPtr<Inode> 2023-03-09 21:54:59 +01:00
Locking Kernel: Don't ref/unref the holder thread in Mutex 2023-04-04 10:33:42 +02:00
Memory Kernel/Memory: Explain better why we don't use the first 1 MiB on x86_64 2023-04-09 19:40:45 -06:00
Net Kernel: Simplify Process factory functions 2023-04-04 10:33:42 +02:00
Prekernel Kernel: Unify x86-64 assembly snippets naming for RDSEED & RDRAND 2023-01-25 23:17:36 +01:00
Storage Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
Syscalls Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00
Tasks Kernel: Simplify Process factory functions 2023-04-04 10:33:42 +02:00
Time Kernel: Implement TimeManagement::boot_time() for aarch64 2023-04-06 21:19:58 +03:00
TTY Kernel: Remove redundant HID name from all associated files 2023-04-09 18:11:37 +02:00
AddressSanitizer.cpp
AddressSanitizer.h
Assertions.h
AtomicEdgeAction.h
BootInfo.h Kernel: Move Memory/PageDirectory.{cpp,h} to arch-specific directory 2023-01-27 11:41:43 +01:00
CMakeLists.txt Kernel: Remove redundant HID name from all associated files 2023-04-09 18:11:37 +02:00
CommandLine.cpp Everywhere: Stop using NonnullOwnPtrVector 2023-03-06 23:46:35 +01:00
CommandLine.h Everywhere: Remove NonnullOwnPtr.h includes 2023-03-06 23:46:35 +01:00
Coredump.cpp Kernel: Stop using *LockRefPtr for Process pointers 2023-04-04 10:33:42 +02:00
Coredump.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
CrashHandler.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
Credentials.cpp Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Credentials.h Everywhere: Use ReadonlySpan<T> instead of Span<T const> 2023-02-08 19:15:45 +00:00
Debug.h.in Kernel: Add support for Intel HDA 2023-03-25 21:27:03 +01:00
DoubleBuffer.cpp
DoubleBuffer.h
embedmap.sh
ExecutionMode.h Kernel: Factor our PreviousMode into RegisterState::previous_mode 2023-01-27 11:41:43 +01:00
Forward.h Kernel/FileSystem: Simplify the ProcFS significantly 2023-02-24 22:14:18 +01:00
FutexQueue.cpp
FutexQueue.h
generate-version-file.sh
InterruptDisabler.h
IOWindow.cpp Kernel/PCI: Hold a reference to DeviceIdentifier in the Device class 2023-01-26 23:04:26 +01:00
IOWindow.h Kernel: Remove declarations for non-existent methods 2023-01-27 20:33:18 +00:00
Jail.cpp Kernel: Make the Jails' internal design a lot more sane 2023-03-12 10:21:59 -06:00
Jail.h Kernel: Mark a bunch of NonnullRefPtrs also const to ensure immutability 2023-04-08 13:44:21 +02:00
KBuffer.h Everywhere: Remove string.h include from AK/Traits.h and resolve fallout 2023-01-21 10:43:59 -07:00
KBufferBuilder.cpp
KBufferBuilder.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KLexicalPath.cpp
KLexicalPath.h
kprintf.cpp Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
kstdio.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KString.cpp
KString.h AK: Add support for "debug only" formatters 2023-01-13 21:09:26 +00:00
KSyms.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
KSyms.h
MiniStdLib.cpp
mkmap.sh
Multiboot.h
Panic.cpp
Panic.h
PerformanceEventBuffer.cpp AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
PerformanceEventBuffer.h Everywhere: Remove needless copies of Error / ErrorOr instances 2023-02-10 09:08:52 +00:00
PerformanceManager.h AK+Kernel: Add includes before removing Kernel/ProcessExposed.h 2023-02-24 22:14:18 +01:00
PhysicalAddress.h
Process.cpp Kernel: Ensure jailed processes can be reaped by a jailed parent process 2023-04-09 18:49:01 +02:00
Process.h Kernel: Add the futimens syscall 2023-04-10 10:21:28 +02:00
ProcessGroup.cpp Kernel: Make ProcessGroup a ListedRefCounted and fix two races 2023-04-05 11:37:27 +02:00
ProcessGroup.h Kernel: Make ProcessGroup a ListedRefCounted and fix two races 2023-04-05 11:37:27 +02:00
ProcessList.cpp Kernel: Make the Jails' internal design a lot more sane 2023-03-12 10:21:59 -06:00
Random.cpp Kernel/aarch64: Add TimeManagement fallback entropy source to Random.cpp 2023-02-08 18:19:48 +00:00
Random.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
SanCov.cpp
Scheduler.cpp Kernel: Stop using *LockRefPtr for Thread 2023-04-04 10:33:42 +02:00
Scheduler.h Kernel: Turn lock ranks into template parameters 2023-01-02 18:15:27 -05:00
ScopedCritical.cpp
ScopedCritical.h
Sections.h Kernel/aarch64: Change base address of the kernel to 0x2000000000 2023-01-24 14:54:44 +00:00
StdLib.cpp
StdLib.h Kernel/StdLib: Change try_copy_n_to_user to copy_n_to_user 2023-03-24 18:25:12 +01:00
Syscall.cpp Kernel: Add optional userspace backtrace to Process::crash 2023-02-08 18:19:48 +00:00
Thread.cpp Kernel: Make dispatch_signal work for aarch64 2023-04-06 21:19:58 +03:00
Thread.h Kernel: Stop using *LockRefPtr for Kernel::Timer 2023-04-04 10:33:42 +02:00
ThreadBlockers.cpp Kernel: Stop using *LockRefPtr for ProcessGroup 2023-04-04 10:33:42 +02:00
ThreadTracer.cpp
ThreadTracer.h
TimerQueue.cpp Kernel: Stop using *LockRefPtr for Kernel::Timer 2023-04-04 10:33:42 +02:00
TimerQueue.h Kernel: Stop using *LockRefPtr for Kernel::Timer 2023-04-04 10:33:42 +02:00
UBSanitizer.cpp
UnixTypes.h
UserOrKernelBuffer.cpp
UserOrKernelBuffer.h
VirtualAddress.h
WaitQueue.cpp
WaitQueue.h
WorkQueue.cpp Kernel: Simplify Process factory functions 2023-04-04 10:33:42 +02:00
WorkQueue.h Kernel: Stop using *LockRefPtr for Thread 2023-04-04 10:33:42 +02:00