ladybird/Kernel
Liav A f8489da8ee Kernel/SysFS: Provide a way to "truncate" and "set" mtime on inodes
Normally, trying to truncate a SysFSInode should result in EPERM error.
However, as suggested by Ali (@alimpfard), we can allow the PowerState
node to be "truncated" so one can open that file with O_TRUNC option.
Likewise, we also need to provide a way to set modified time on SysFS
inodes. For most inodes, we should return ENOTIMPL error, but for the
power state switch, we ignore the modified time setting and just return
KSuccess.

These fixes allow to do "echo -n 1 > /sys/firmware/power_state" in Shell
after gaining root permissions, to switch the power state.
2021-10-09 12:07:56 +02:00
..
API Kernel: Fix a few typos 2021-10-01 00:51:49 +01:00
Arch Kernel: Note if the page fault address is a destroyed smart pointer 2021-10-07 21:30:13 +02:00
Bus Kernel: Fix copy paste in VirtIO::RNG::class_name() 2021-10-03 13:36:10 +02:00
Devices Kernel: Use operator ""sv in all class_name() implementations 2021-10-03 13:36:10 +02:00
FileSystem Kernel/SysFS: Provide a way to "truncate" and "set" mtime on inodes 2021-10-09 12:07:56 +02:00
Firmware Kernel/SysFS: Provide a way to "truncate" and "set" mtime on inodes 2021-10-09 12:07:56 +02:00
Graphics Kernel: Use operator ""sv in all class_name() implementations 2021-10-03 13:36:10 +02:00
Heap Kernel: Access Processor static methods statically 2021-10-02 18:16:15 +02:00
Interrupts Kernel: Don't retrieve possibly nonexistent APIC table 2021-10-06 17:11:02 +02:00
Library Kernel: Note if the page fault address is a destroyed smart pointer 2021-10-07 21:30:13 +02:00
Locking Kernel: Disable lock rank enforcement by default for now 2021-09-14 18:31:16 +00:00
Memory Kernel: Use find_largest_not_above in VirtualRangeAllocator 2021-10-07 22:10:45 +02:00
Net Kernel: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
Prekernel Kernel: Make aarch64 UART::print_num() print u64s 2021-10-02 21:23:28 +01:00
Storage Kernel: Add ioctl request for getting a storage device's block size 2021-10-09 12:06:47 +02:00
Syscalls Kernel: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
Tasks Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
Time Kernel: Use operator ""sv in all purpose() implementations 2021-10-03 13:36:10 +02:00
TTY Kernel: Handle backspace for tab character in TTY cooked mode 2021-10-06 12:31:13 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h AK+Kernel: Print TODO when a TODO() is executed 2021-08-04 11:01:16 +02:00
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
BootInfo.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
CMakeLists.txt Kernel/Storage: Unify all ATA devices 2021-10-09 01:39:55 +02:00
CMOS.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp Kernel: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
CommandLine.h Kernel: Use KString all the way in sys$execve() 2021-09-09 21:25:10 +02:00
Coredump.cpp Kernel: Exclude userspace heap memory from coredumps by default 2021-09-30 17:54:32 +02:00
Coredump.h Kernel: Exclude userspace heap memory from coredumps by default 2021-09-30 17:54:32 +02:00
Debug.h.in Kernel: Disable lock rank enforcement by default for now 2021-09-14 18:31:16 +00:00
DoubleBuffer.cpp Kernel: Remove KBuffer::is_null() and bogus call sites :^) 2021-09-07 16:00:39 +02:00
DoubleBuffer.h Kernel: Make DoubleBuffer::try() return KResultOr 2021-09-07 13:53:14 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel: Rename DevFS => DevTmpFS 2021-09-08 00:42:20 +02:00
FutexQueue.cpp Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
FutexQueue.h Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
GlobalProcessExposed.cpp Kernel: Add the /proc/stat ProcFS component 2021-10-07 21:09:38 +02:00
init.cpp Kernel/Devices: Use try_create_device helper for SB16 2021-09-17 01:02:48 +03:00
KBuffer.h Kernel: Add KBuffer::bytes() and use it 2021-09-08 20:16:00 +02:00
KBufferBuilder.cpp AK+Kernel: Avoid unescaped control chars in append_escaped_for_json() 2021-09-13 14:38:53 +04:30
KBufferBuilder.h Kernel: Add KBuffer::bytes() and use it 2021-09-08 20:16:00 +02:00
KLexicalPath.cpp Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
KLexicalPath.h Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
kprintf.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
kstdio.h Kernel: Add kernelearlyputstr and use it in dbgln in very-early boot 2021-09-10 22:58:08 +03:00
KString.cpp Kernel: Make KString factories return KResultOr + use TRY() everywhere 2021-09-06 19:25:36 +02:00
KString.h Kernel: Specialize Traits<(Nonnull)OwnPtr<T>> for KString 2021-09-13 14:38:53 +04:30
KSyms.cpp Kernel: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
KSyms.h Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
linker.ld Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
MiniStdLib.cpp Kernel: Build MiniStdLib.cpp in aarch64 builds 2021-09-07 20:15:15 +01:00
mkmap.sh Kernel: Use our toolchain's c++filt tool for the kernel map 2021-07-29 10:38:31 +02:00
Multiboot.h Prekernel: Export some multiboot parameters in our own BootInfo struct 2021-07-27 13:15:16 +02:00
Panic.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Deduplicate signpost perf event strings 2021-09-13 14:38:53 +04:30
PerformanceEventBuffer.h Kernel: Deduplicate signpost perf event strings 2021-09-13 14:38:53 +04:30
PerformanceManager.h Kernel: Access Processor static methods statically 2021-10-02 18:16:15 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
Process.h Kernel+Userland: Introduce a new way to reboot and poweroff the machine 2021-09-12 11:52:16 +02:00
ProcessExposed.cpp Kernel: Make it possible for KBufferBuilder creation to fail 2021-09-07 15:54:23 +02:00
ProcessExposed.h Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ProcessGroup.cpp Kernel: Use KResultOr better in ProcessGroup construction 2021-09-06 01:55:27 +02:00
ProcessGroup.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
ProcessProcFSTraits.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ProcessSpecificExposed.cpp Kernel: Make PerformanceEventBuffer::to_json() return a KResult 2021-09-07 22:16:25 +02:00
Random.cpp Kernel: Convert random bytes interface to use AK::Bytes 2021-09-01 18:06:14 +02:00
Random.h Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe 2021-09-06 01:53:26 +02:00
RTC.cpp Kernel: Move x86 IO instructions code into the x86 specific folder 2021-10-01 12:27:20 +02:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel/KCOV: Bring closer to typical SerenityOS coding style 2021-09-06 01:55:27 +02:00
Scheduler.cpp AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
StdLib.cpp Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
StdLib.h Kernel: Remove redundant [[nodiscard]] on KResult return values 2021-09-07 01:18:02 +02:00
Syscall.cpp Kernel: Fix -Wunreachable-code warnings from clang 2021-10-08 23:33:46 +02:00
Thread.cpp Kernel: Use AK::to_underlying in lock rank tracking 2021-09-12 18:24:15 +02:00
Thread.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
ThreadBlockers.cpp Kernel: Rename FileDescription => OpenFileDescription 2021-09-07 13:53:14 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Kernel: Use KResultOr and TRY() for ThreadTracer 2021-09-07 14:48:13 +02:00
TimerQueue.cpp Kernel: Remove a bunch of unused TimerQueue functions 2021-09-07 22:16:25 +02:00
TimerQueue.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
UserOrKernelBuffer.h Kernel: Make UserOrKernelBuffer return KResult from read/write/memset 2021-09-07 13:53:14 +02:00
VirtualAddress.h Kernel: Make VirtualAddress methods constexpr 2021-08-25 12:12:59 +02:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WorkQueue.cpp Kernel: Store process names as KString 2021-09-07 13:53:14 +02:00
WorkQueue.h AK+Everywhere: Reduce the number of template parameters of IntrusiveList 2021-09-10 18:05:46 +03:00