1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 16:18:12 +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:
Andreas Kling 2020-08-04 18:02:23 +02:00
parent 58feebeed2
commit 7a3ab6c517
58 changed files with 223 additions and 229 deletions

View file

@ -52,15 +52,13 @@ void TTY::set_default_termios()
memcpy(m_termios.c_cc, default_cc, sizeof(default_cc));
}
ssize_t TTY::read(FileDescription&, size_t, u8* buffer, ssize_t size)
KResultOr<size_t> TTY::read(FileDescription&, size_t, u8* buffer, size_t size)
{
ASSERT(size >= 0);
if (m_input_buffer.size() < static_cast<size_t>(size))
size = m_input_buffer.size();
if (in_canonical_mode()) {
int i = 0;
size_t i = 0;
for (; i < size; i++) {
u8 ch = m_input_buffer.dequeue();
if (ch == '\0') {
@ -79,21 +77,14 @@ ssize_t TTY::read(FileDescription&, size_t, u8* buffer, ssize_t size)
return i;
}
for (int i = 0; i < size; i++)
for (size_t i = 0; i < size; i++)
buffer[i] = m_input_buffer.dequeue();
return size;
}
ssize_t TTY::write(FileDescription&, size_t, const u8* buffer, ssize_t size)
KResultOr<size_t> TTY::write(FileDescription&, size_t, const u8* buffer, size_t size)
{
#ifdef TTY_DEBUG
dbg() << "TTY::write {" << String::format("%u", size) << "} ";
for (size_t i = 0; i < size; ++i) {
dbg() << String::format("%b ", buffer[i]);
}
dbg() << "";
#endif
on_tty_write(buffer, size);
return size;
}