AK: Provide is_errno for Kernel Errors

It wouldn't make much sense on its own (as the Kernel only has errno
Errors), but it's an easy fix for not having to ifdef away every single
usage of `is_errno` in code that is shared between Userland and Kernel.
This commit is contained in:
Tim Schumacher 2023-02-10 11:42:54 +01:00 committed by Andreas Kling
parent be25602d44
commit 332b253a47
2 changed files with 3 additions and 13 deletions

View file

@ -76,11 +76,11 @@ public:
}
int code() const { return m_code; }
#ifndef KERNEL
bool is_errno() const
{
return m_code != 0;
}
#ifndef KERNEL
bool is_syscall() const
{
return m_syscall;

View file

@ -20,15 +20,10 @@ ErrorOr<void> Stream::read_entire_buffer(Bytes buffer)
auto result = read(buffer.slice(nread));
if (result.is_error()) {
#ifdef KERNEL
if (result.error().code() == EINTR) {
continue;
}
#else
if (result.error().is_errno() && result.error().code() == EINTR) {
continue;
}
#endif
return result.release_error();
}
@ -89,15 +84,10 @@ ErrorOr<void> Stream::write_entire_buffer(ReadonlyBytes buffer)
while (nwritten < buffer.size()) {
auto result = write(buffer.slice(nwritten));
if (result.is_error()) {
#ifdef KERNEL
if (result.error().code() == EINTR) {
continue;
}
#else
if (result.error().is_errno() && result.error().code() == EINTR) {
continue;
}
#endif
return result.release_error();
}