ladybird/Kernel/FileSystem
Nicholas Baron aa4d41fe2c
AK+Kernel+LibELF: Remove the need for IteratorDecision::Continue
By constraining two implementations, the compiler will select the best
fitting one. All this will require is duplicating the implementation and
simplifying for the `void` case.

This constraining also informs both the caller and compiler by passing
the callback parameter types as part of the constraint
(e.g.: `IterationFunction<int>`).

Some `for_each` functions in LibELF only take functions which return
`void`. This is a minimal correctness check, as it removes one way for a
function to incompletely do something.

There seems to be a possible idiom where inside a lambda, a `return;` is
the same as `continue;` in a for-loop.
2021-05-16 10:36:52 +01:00
..
AnonymousFile.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
AnonymousFile.h AK: Rename adopt() to adopt_ref() 2021-04-23 16:46:57 +02:00
BlockBasedFileSystem.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
BlockBasedFileSystem.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Custody.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Custody.h Kernel: Replace bare new in Custody::create() with adopt_ref_if_nonnull 2021-05-13 16:21:53 +02:00
DevFS.cpp Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
DevFS.h Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
DevPtsFS.cpp Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
DevPtsFS.h Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
ext2_fs.h Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
ext2_types.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Ext2FileSystem.cpp Kernel: Replace make<T>() with adopt_own_if_nonnull() in Ext2FileSystem 2021-05-13 16:21:53 +02:00
Ext2FileSystem.h Kernel: Place ext2 dir entries so they don't span multiple blocks 2021-05-08 15:25:50 +02:00
FIFO.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
FIFO.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
File.cpp Kernel: Closing a file descriptor should not always close the file 2021-04-30 11:42:35 +02:00
File.h Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
FileBackedFileSystem.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FileBackedFileSystem.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FileDescription.cpp Kernel: Remove unused header from FileDescription.cpp 2021-05-13 08:29:01 +02:00
FileDescription.h Kernel: Move FileDescription::get_dir_entries to KResultOr<ssize_t> 2021-05-13 08:29:01 +02:00
FileSystem.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FileSystem.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Inode.cpp Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
Inode.h Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
InodeFile.cpp Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
InodeFile.h Kernel: Make InodeFile::create() API OOM safe 2021-05-13 08:29:01 +02:00
InodeIdentifier.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
InodeMetadata.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
InodeWatcher.cpp Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
InodeWatcher.h Kernel: Make InodeWatcher::crate API OOM safe 2021-05-13 16:21:53 +02:00
Plan9FileSystem.cpp Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
Plan9FileSystem.h Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
ProcFS.cpp AK+Kernel+LibELF: Remove the need for IteratorDecision::Continue 2021-05-16 10:36:52 +01:00
ProcFS.h Kernel: Fix writes to ProcFS (#6879) 2021-05-05 21:07:13 +02:00
TmpFS.cpp Kernel: Implement multi-watch InodeWatcher :^) 2021-05-12 22:38:20 +02:00
TmpFS.h Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t> 2021-05-02 13:27:37 +02:00
VirtualFileSystem.cpp Kernel: Plumb OOM propagation through Custody factory 2021-05-10 11:55:52 +02:00
VirtualFileSystem.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00