Kernel: Add basic support for O_NONBLOCK (only for tty)
This commit is contained in:
@@ -87,6 +87,7 @@ namespace Kernel
|
||||
|
||||
virtual BAN::ErrorOr<size_t> read(size_t, void*, size_t) { if (mode().ifdir()) return BAN::Error::from_errno(EISDIR); ASSERT_NOT_REACHED(); }
|
||||
virtual BAN::ErrorOr<size_t> write(size_t, const void*, size_t) { if (mode().ifdir()) return BAN::Error::from_errno(EISDIR); ASSERT_NOT_REACHED(); }
|
||||
virtual bool has_data() const { dwarnln("nonblock not supported"); return true; }
|
||||
|
||||
virtual BAN::ErrorOr<void> truncate(size_t) { if (mode().ifdir()) return BAN::Error::from_errno(EISDIR); return BAN::Error::from_errno(ENOTSUP); }
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@ namespace Kernel
|
||||
|
||||
virtual BAN::ErrorOr<size_t> read(size_t, void*, size_t) override;
|
||||
virtual BAN::ErrorOr<size_t> write(size_t, const void*, size_t) override;
|
||||
virtual bool has_data() const override;
|
||||
|
||||
private:
|
||||
void clear();
|
||||
@@ -78,7 +79,7 @@ namespace Kernel
|
||||
};
|
||||
|
||||
private:
|
||||
Kernel::SpinLock m_lock;
|
||||
mutable Kernel::SpinLock m_lock;
|
||||
|
||||
State m_state { State::Normal };
|
||||
AnsiState m_ansi_state { };
|
||||
|
||||
Reference in New Issue
Block a user