mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 18:15:07 +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
|
@ -426,9 +426,10 @@ KResult Plan9FS::post_message(Message& message)
|
|||
if (Thread::current()->block<Thread::WriteBlocker>(nullptr, description).was_interrupted())
|
||||
return KResult(-EINTR);
|
||||
}
|
||||
ssize_t nwritten = description.write(data, size);
|
||||
if (nwritten < 0)
|
||||
return KResult(nwritten);
|
||||
auto nwritten_or_error = description.write(data, size);
|
||||
if (nwritten_or_error.is_error())
|
||||
return nwritten_or_error.error();
|
||||
auto nwritten = nwritten_or_error.value();
|
||||
data += nwritten;
|
||||
size -= nwritten;
|
||||
}
|
||||
|
@ -444,9 +445,10 @@ KResult Plan9FS::do_read(u8* data, size_t size)
|
|||
if (Thread::current()->block<Thread::ReadBlocker>(nullptr, description).was_interrupted())
|
||||
return KResult(-EINTR);
|
||||
}
|
||||
ssize_t nread = description.read(data, size);
|
||||
if (nread < 0)
|
||||
return KResult(nread);
|
||||
auto nread_or_error = description.read(data, size);
|
||||
if (nread_or_error.is_error())
|
||||
return nread_or_error.error();
|
||||
auto nread = nread_or_error.value();
|
||||
if (nread == 0)
|
||||
return KResult(-EIO);
|
||||
data += nread;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue