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
47bfbe343b
Kernel: Tidy up SysFS construction
...
- Use KResultOr and TRY() to propagate errors
- Check for OOM errors
- Move allocation out of constructors
There's still a lot more to do here, as SysFS is still quite brittle
in the face of memory pressure.
2021-09-06 13:06:05 +02:00
Liav A
e490c17bde
Kernel/SysFS: Ensure data stability when reading from Inodes
...
Like with the ProcFS, description data can change at anytime, so it's
wise to ensure that when the userland reads from an Inode, data is
consistent unless the userland indicated it wants to refresh the data
(by seeking to offset 0, or re-attaching the Inode).
Otherwise, if the data changes in the middle of the reading, it can
cause silent corruption in output which can lead to random crashes.
2021-09-04 16:33:56 +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
d298de5e09
Kernel/SysFS: Remove redundant SysFS& member from SysFSInode
2021-07-18 02:23:22 +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
b975a74a1d
Kernel/USB: Move USB bus information from /proc to /sys
...
This patch moves all the USB data from /proc/bus/usb to /sys/bus/usb.
2021-07-18 00:55:16 +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
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
cee9528168
Kernel: Rename Lock to Mutex
...
Let's be explicit about what kind of lock this is meant to be.
2021-07-17 21:10:32 +02:00
Andreas Kling
a803c4026c
Kernel: Make FileSystem::class_name() return a StringView
2021-07-17 20:59:48 +02:00
Andreas Kling
805319ed30
Kernel: Replace "Folder" => "Directory" everywhere
...
Folders are a GUI concept, file systems have directories. :^)
2021-07-11 01:33:40 +02:00
Andreas Kling
a9decf5aa6
Kernel: Remove all friend declarations from SysFSComponentRegistry
...
Let them access the class using public API instead.
2021-07-11 01:17:57 +02:00
Andreas Kling
d40ea1a0a8
Kernel: Move SystemExposed.* => FileSystem/SysFSComponent.*
2021-07-11 01:14:53 +02:00
Andreas Kling
807aadbe6e
Kernel: Remove some dead code and unused includes in SysFS files
2021-07-11 01:13:24 +02:00
Andreas Kling
98acebf56b
Kernel: Move SysFS forward declarations to FileSystem/Forward.h
2021-07-11 01:09:48 +02:00
Andreas Kling
60a7a9d523
Kernel: Rename SystemExposedFolder => SysFSDirectory
...
"Folder" is a GUI concept, let's call this "Directory".
Also, "System" is completely generic, so let's be more specific and
call this "SysFS..."
2021-07-11 01:07:27 +02:00
Andreas Kling
517170a986
Kernel: Rename SystemExposedComponent => SysFSComponent
2021-07-11 01:06:27 +02:00
Andreas Kling
27244eb0ee
Kernel: Rename SystemRegistrar => SysFSComponentRegistry
2021-07-11 01:05:26 +02:00
Andreas Kling
66f483b1a1
Kerne: Switch SysFS to east-const style
2021-07-11 00:56:53 +02:00
Andreas Kling
d53d9d3677
Kernel: Rename FS => FileSystem
...
This matches our common naming style better.
2021-07-11 00:20:38 +02:00
Liav A
92c0dab5ab
Kernel: Introduce the new SysFS
...
The intention is to add dynamic mechanism for notifying the userspace
about hotplug events. Currently, the DMI (SMBIOS) blobs and ACPI tables
are exposed in the new filesystem.
2021-06-29 20:53:59 +02:00