1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 12:27:34 +00:00

Kernel: Make UserOrKernelBuffer return KResult from read/write/memset

This allows us to simplify a whole bunch of call sites with TRY(). :^)
This commit is contained in:
Andreas Kling 2021-09-07 12:09:52 +02:00
parent 7bf8844499
commit b481132418
29 changed files with 85 additions and 118 deletions

View file

@ -81,7 +81,7 @@ public:
void* get_private() const { return m_private; }
template<typename... Args>
[[nodiscard]] bool write_to_buffer(UserOrKernelBuffer& buffer, Args... args)
KResult write_to_buffer(UserOrKernelBuffer& buffer, Args... args)
{
if (in_target_context(buffer))
return buffer.write(forward<Args>(args)...);
@ -99,7 +99,7 @@ public:
}
template<typename... Args>
[[nodiscard]] bool read_from_buffer(const UserOrKernelBuffer& buffer, Args... args)
KResult read_from_buffer(const UserOrKernelBuffer& buffer, Args... args)
{
if (in_target_context(buffer))
return buffer.read(forward<Args>(args)...);

View file

@ -32,8 +32,7 @@ bool FullDevice::can_read(const FileDescription&, size_t) const
KResultOr<size_t> FullDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size)
{
if (!buffer.memset(0, size))
return EFAULT;
TRY(buffer.memset(0, size));
return size;
}

View file

@ -39,8 +39,7 @@ KResultOr<size_t> MouseDevice::read(FileDescription&, u64, UserOrKernelBuffer& b
dbgln_if(MOUSE_DEBUG, "PS2 Mouse Read: Filter packets");
size_t bytes_read_from_packet = min(remaining_space_in_buffer, sizeof(MousePacket));
if (!buffer.write(&packet, nread, bytes_read_from_packet))
return EFAULT;
TRY(buffer.write(&packet, nread, bytes_read_from_packet));
nread += bytes_read_from_packet;
remaining_space_in_buffer -= bytes_read_from_packet;

View file

@ -276,8 +276,7 @@ KResultOr<size_t> SB16::write(FileDescription&, u64, UserOrKernelBuffer const& d
u8 mode = (u8)SampleFormat::Signed | (u8)SampleFormat::Stereo;
if (!data.read(m_dma_region->vaddr().as_ptr(), length))
return EFAULT;
TRY(data.read(m_dma_region->vaddr().as_ptr(), length));
dma_start(length);
// 16-bit single-cycle output.

View file

@ -31,8 +31,7 @@ bool ZeroDevice::can_read(const FileDescription&, size_t) const
KResultOr<size_t> ZeroDevice::read(FileDescription&, u64, UserOrKernelBuffer& buffer, size_t size)
{
if (!buffer.memset(0, size))
return EFAULT;
TRY(buffer.memset(0, size));
return size;
}