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:
parent
58feebeed2
commit
7a3ab6c517
58 changed files with 223 additions and 229 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue