Andreas Kling
4a9c18afb9
Kernel: Rename FileDescription => OpenFileDescription
...
Dr. POSIX really calls these "open file description", not just
"file description", so let's call them exactly that. :^)
2021-09-07 13:53:14 +02:00
Andreas Kling
788b91a65c
Kernel: Tidy up DevFS construction and handle OOM errorso
...
- Use KResultOr and TRY() to propagate errors
- Check for OOM
- Move allocations out of the DevFS constructor
2021-09-06 13:06:05 +02:00
Andreas Kling
caaeae9607
Kernel: Make FileSystem::get_inode() return KResultOr<NRP<Inode>>
...
This allows for natural error propagation in a bunch of new places.
2021-09-05 18:55:55 +02:00
Andreas Kling
ae197deb6b
Kernel: Strongly typed user & group ID's
...
Prior to this change, both uid_t and gid_t were typedef'ed to `u32`.
This made it easy to use them interchangeably. Let's not allow that.
This patch adds UserID and GroupID using the AK::DistinctNumeric
mechanism we've already been employing for pid_t/ProcessID.
2021-08-29 01:09:19 +02:00
Andreas Kling
d30d776ca4
Kernel: Make FileSystem::initialize() return KResult
...
This forced me to also come up with error codes for a bunch of
situations where we'd previously just panic the kernel.
2021-08-14 15:19:00 +02:00
Andreas Kling
ef2720bcad
Kernel: Make Inode::lookup() return a KResultOr<NonnullRefPtr<Inode>>
...
This allows file systems to return arbitrary error codes instead of just
an Inode or not an Inode.
2021-08-14 13:34:59 +02:00
Andreas Kling
d3cf4cd8f0
Kernel/DevFS: Remove redundant DevFS& member from DevFSInode
...
All Inode subclasses can get to their FileSystem via Inode::fs().
2021-07-18 02:21:34 +02:00
Andreas Kling
1f18558ee2
Kernel: Make FileSystem::root_inode() return a plain Inode&
...
All file system classes are expected to keep their root Inode object
in memory, so this function can safely return an Inode&.
2021-07-18 01:53:04 +02:00
Andreas Kling
2da0581fd2
Kernel: Replace "folder" => "directory" everywhere
...
Folders are a GUI concept. File systems have directories.
2021-07-17 23:50:00 +02:00
Andreas Kling
b8d6c3722d
Kernel: Remove Inode::directory_entry_count()
...
This was only used in one place: VirtualFileSystem::rmdir(), and that
has now been converted to a simple directory traversal.
2021-07-17 22:36:04 +02:00
Andreas Kling
a3f58a5003
Kernel/DevFS: Use KString for DevFSDeviceInode::m_name
2021-07-17 22:17:07 +02:00
Andreas Kling
0d89cfcd9a
Kernel/DevFS: Use KString for DevFSLinkInode::m_link
2021-07-17 22:11:41 +02:00
Andreas Kling
dd37d0a327
Kernel/DevFS: Use KString for DevFSLinkInode::m_name
2021-07-17 21:40:32 +02:00
Andreas Kling
61c1937d02
Kernel/DevFS: Make DevFSInode::name() return StringView
2021-07-17 21:36:54 +02:00
Andreas Kling
6766efff9c
Kernel: Make Inode::create_child() take the name as a StringView
...
No sense in forcing callers to construct a String. One more small step
towards not using String in the kernel.
2021-07-17 21:32:59 +02:00
Andreas Kling
a803c4026c
Kernel: Make FileSystem::class_name() return a StringView
2021-07-17 20:59:48 +02:00
Andreas Kling
98080497d2
Kernel: Use Forward.h headers more
2021-07-11 14:14:51 +02:00
Andreas Kling
d53d9d3677
Kernel: Rename FS => FileSystem
...
This matches our common naming style better.
2021-07-11 00:20:38 +02:00
Gunnar Beutner
bc3076f894
Kernel: Remove various other uses of ssize_t
2021-06-16 21:29:36 +02:00
Brian Gianforcaro
234c6ae32d
Kernel: Change Inode::{read/write}_bytes interface to KResultOr<ssize_t>
...
The error handling in all these cases was still using the old style
negative values to indicate errors. We have a nicer solution for this
now with KResultOr<T>. This change switches the interface and then all
implementers to use the new style.
2021-05-02 13:27:37 +02:00
Brian Gianforcaro
1682f0b760
Everything: Move to SPDX license identifiers in all files.
...
SPDX License Identifiers are a more compact / standardized
way of representing file license information.
See: https://spdx.dev/resources/use/#identifiers
This was done with the `ambr` search and replace tool.
ambr --no-parent-ignore --key-from-file --rep-from-file key.txt rep.txt *
2021-04-22 11:22:27 +02:00
Andreas Kling
0a45cfee01
DevFS: Use strongly typed InodeIndex
...
Also add an assertion for the DevFS inode index allocator overflowing.
2021-02-12 16:24:40 +01:00
Liav A
247517cd4a
Kernel: Introduce the DevFS
...
The DevFS along with DevPtsFS give a complete solution for populating
device nodes in /dev. The main purpose of DevFS is to eliminate the
need of device nodes generation when building the system.
Later on, DevFS will assist with exposing disk partition nodes.
2020-12-27 23:07:44 +01:00