ladybird/Kernel
Liav A a10e63f08e Kernel/FileSystem: Send proper filetypes when traversing RAM-backed FSes
SysFS, ProcFS and DevPtsFS were all sending filetype 0 when traversing
their directories, but it is actually very easy to send proper filetypes
in these filesystems.
This patch binds all RAM backed filesystems to use only one enum for
their internal filetype, to simplify the implementation and allow
sharing of code.
Please note that the Plan9FS case is currently not solved as I am not
familiar with this filesystem and its constructs.

The ProcFS mostly keeps track of the filetype, and a fix was needed for
the /proc root directory - all processes exhibit a directory inside it
which makes it very easy to hardcode the directory filetype for them.
There's also the `self` symlink inode which is now exposed as DT_LNK.

As for SysFS, we could leverage the fact everything inherits from the
SysFSComponent class, so we could have a virtual const method to return
the proper filetype.
Most of the files in SysFS are "regular" files though, so the base class
has a non-pure virtual method.

Lastly, the DevPtsFS simply hardcodes '.' and '..' as directory file
type, and everything else is hardcoded to send the character device file
type, as this filesystem is only exposing character pts device files.
2024-01-13 19:01:07 -07:00
..
API Kernel: Add new sysconf option _SC_GETGR_R_SIZE_MAX 2024-01-06 04:59:50 -07:00
Arch Kernel/riscv64: Implement debug_output and change cmdline to use it 2024-01-12 16:46:46 -07:00
Boot Kernel: Enable i8042 first port translation by default 2024-01-12 16:02:13 -07:00
Bus Kernel: Use the new API to query and map BAR spaces in most places 2024-01-12 15:59:47 -07:00
Devices Kernel/HID: Introduce the all-mice device 2024-01-12 16:08:08 -07:00
FileSystem Kernel/FileSystem: Send proper filetypes when traversing RAM-backed FSes 2024-01-13 19:01:07 -07:00
Firmware/ACPI Kernel: Overhaul system shutdown procedure 2023-07-15 00:12:01 +02:00
Heap Kernel: Add initial basic support for KASAN 2023-12-30 13:57:10 +01:00
Interrupts Kernel/Interrupts: Move PCIIRQHandler => PCI::IRQHandler 2023-09-16 14:04:17 -06:00
Library Kernel/riscv64: Implement support for "panic=shutdown" cmdline option 2024-01-12 16:25:46 -07:00
Locking Kernel: Share Processor class (and others) across architectures 2023-10-03 16:08:29 -06:00
Memory Kernel/MM: Don't allocate a temporary Vector when parsing the memory map 2024-01-12 15:59:47 -07:00
Net Kernel: Properly ack segment 2024-01-12 16:29:08 -07:00
Prekernel Kernel: Restrict KASLR randomization range when KASAN is enabled 2023-12-30 23:18:49 +01:00
Security Kernel: Add initial basic support for KASAN 2023-12-30 13:57:10 +01:00
Syscalls Kernel: Add new sysconf option _SC_GETGR_R_SIZE_MAX 2024-01-06 04:59:50 -07:00
Tasks Kernel: Protect processes' master TLS with a fine-grained spinlock 2023-12-26 19:20:21 +01:00
Time Kernel/riscv64: Add RISC-V support to TimeManagement 2024-01-02 06:50:59 -07:00
CMakeLists.txt Kernel/riscv64: Explicitly discard temporary local symbols 2024-01-12 16:46:46 -07:00
Debug.h.in Kernel: Add a framebuffer driver for 3Dfx Voodoo 3 2023-10-16 01:25:45 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Kernel+LibCore+LibC: Split the mount syscall into multiple syscalls 2023-07-02 01:04:51 +02:00
generate-version-file.sh Kernel: Bake version information into the Kernel 2022-10-14 13:45:33 +02:00
kprintf.cpp Kernel: Only write text to serial console if no ConsoleDevice attached 2024-01-02 06:16:53 -07:00
kstdio.h Kernel: Remove includes to LibC stdarg definitions 2023-03-01 19:36:53 -07:00
KSyms.cpp Kernel/riscv64: Fix backtrace generation on RISC-V 2023-12-30 23:24:18 +01:00
KSyms.h Kernel: Add ability to dump backtrace from provided frame pointer 2022-10-01 14:09:01 +02:00
mkmap.sh Kernel: Use the toolchain's nm in mkmap.sh 2021-12-30 18:10:51 +01:00
SanCov.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
Sections.h Kernel: Move all boot-related code to the new Boot subdirectory 2023-06-04 21:32:34 +02:00
UnixTypes.h Kernel/Net: Implement TCP_NODELAY 2023-11-08 09:31:54 +01:00