mirror of
https://github.com/RGBCube/serenity
synced 2025-07-10 11:57:35 +00:00
Kernel: Make File::write() and File::read() return KResultOr<size_t>
Instead of returning a ssize_t where negative values mean error, we now return KResultOr<size_t> and use the error state to report errors exclusively.
This commit is contained in:
parent
58feebeed2
commit
7a3ab6c517
58 changed files with 223 additions and 229 deletions
|
@ -145,29 +145,19 @@ bool FIFO::can_write(const FileDescription&, size_t) const
|
|||
return m_buffer.space_for_writing() || !m_readers;
|
||||
}
|
||||
|
||||
ssize_t FIFO::read(FileDescription&, size_t, u8* buffer, ssize_t size)
|
||||
KResultOr<size_t> FIFO::read(FileDescription&, size_t, u8* buffer, size_t size)
|
||||
{
|
||||
if (!m_writers && m_buffer.is_empty())
|
||||
return 0;
|
||||
#ifdef FIFO_DEBUG
|
||||
dbg() << "fifo: read(" << size << ")\n";
|
||||
#endif
|
||||
ssize_t nread = m_buffer.read(buffer, size);
|
||||
#ifdef FIFO_DEBUG
|
||||
dbg() << " -> read (" << String::format("%c", buffer[0]) << ") " << nread;
|
||||
#endif
|
||||
return nread;
|
||||
return m_buffer.read(buffer, size);
|
||||
}
|
||||
|
||||
ssize_t FIFO::write(FileDescription&, size_t, const u8* buffer, ssize_t size)
|
||||
KResultOr<size_t> FIFO::write(FileDescription&, size_t, const u8* buffer, size_t size)
|
||||
{
|
||||
if (!m_readers) {
|
||||
Thread::current()->send_signal(SIGPIPE, Process::current());
|
||||
return -EPIPE;
|
||||
}
|
||||
#ifdef FIFO_DEBUG
|
||||
dbg() << "fifo: write(" << (const void*)buffer << ", " << size << ")";
|
||||
#endif
|
||||
return m_buffer.write(buffer, size);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue