ladybird/VirtualFileSystem
Andreas Kling c6f2890d8e Implement a basic way for read() to block.
FileHandle gets a hasDataAvailableForRead() getter.
If this returns true in sys$read(), the task will block(BlockedRead) + yield.
The fd blocked on is stored in Task::m_fdBlockedOnRead.
The scheduler then looks at the state of that fd during the unblock phase.

This makes "sh" restful. :^)

There's still some problem with the kernel not surviving the colonel task
getting scheduled. I need to figure that out and fix it.
2018-10-25 13:09:56 +02:00
..
.gitignore Import all this stuff into a single repo called Serenity. 2018-10-10 11:53:07 +02:00
CharacterDevice.cpp Add basic character device support. Start with null and zero. 2018-10-14 03:01:32 +02:00
CharacterDevice.h Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
DiskBackedFileSystem.cpp Add a very naive block cache to the DiskBackedFileSystem. 2018-10-25 12:36:50 +02:00
DiskBackedFileSystem.h Add a very naive block cache to the DiskBackedFileSystem. 2018-10-25 12:36:50 +02:00
DiskDevice.cpp Fix some minor build warnings. 2018-10-17 16:48:43 +02:00
DiskDevice.h Import very modest Userland. 2018-10-22 14:06:22 +02:00
ext2_fs.h Import all this stuff into a single repo called Serenity. 2018-10-10 11:53:07 +02:00
ext2_types.h Import all this stuff into a single repo called Serenity. 2018-10-10 11:53:07 +02:00
Ext2FileSystem.cpp Put more logspam behind EXT2_DEBUG. 2018-10-24 13:38:53 +02:00
Ext2FileSystem.h Integrate ext2 from VFS into Kernel. 2018-10-17 10:57:23 +02:00
FileBackedDiskDevice.cpp Integrate ext2 from VFS into Kernel. 2018-10-17 10:57:23 +02:00
FileBackedDiskDevice.h Integrate ext2 from VFS into Kernel. 2018-10-17 10:57:23 +02:00
FileHandle.cpp Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
FileHandle.h Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
FileSystem.cpp Add a way to initialize VFS globals. 2018-10-19 11:20:49 +02:00
FileSystem.h Add a way to initialize VFS globals. 2018-10-19 11:20:49 +02:00
FullDevice.cpp Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
FullDevice.h Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
InodeIdentifier.cpp Move readEntireInode() up to FileSystem (from ext2.) 2018-10-15 00:16:14 +02:00
InodeIdentifier.h Add a "pwd" utility to userland. 2018-10-24 14:28:22 +02:00
InodeMetadata.h Add a "stat" command to test FileHandle::stat(). 2018-10-14 23:39:11 +02:00
Limits.h Import very modest Userland. 2018-10-22 14:06:22 +02:00
Makefile BlockDevice -> DiskDevice. 2018-10-16 11:21:49 +02:00
NullDevice.cpp Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
NullDevice.h Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
RandomDevice.cpp Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
RandomDevice.h Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
small.fs Lots of hacking: 2018-10-23 10:12:50 +02:00
SyntheticFileSystem.cpp synthfs: generated files should have size=0. 2018-10-24 00:50:23 +02:00
SyntheticFileSystem.h Start adding a basic /proc filesystem and a "ps" utility. 2018-10-23 12:04:03 +02:00
sys-errno.h Minor errno fixups. 2018-10-14 22:16:28 +02:00
test.cpp Generalize the SpinLock and move it to AK. 2018-10-23 23:34:05 +02:00
UnixTypes.h Import very modest Userland. 2018-10-22 14:06:22 +02:00
VirtualFileSystem.cpp Lots of hacking to make a very simple "ls" utility. 2018-10-24 12:50:07 +02:00
VirtualFileSystem.h Add a "pwd" utility to userland. 2018-10-24 14:28:22 +02:00
ZeroDevice.cpp Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00
ZeroDevice.h Implement a basic way for read() to block. 2018-10-25 13:09:56 +02:00