/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include "NullDevice.h" #include #include namespace Kernel { static AK::Singleton s_the; UNMAP_AFTER_INIT void NullDevice::initialize() { s_the.ensure_instance(); } NullDevice& NullDevice::the() { return *s_the; } UNMAP_AFTER_INIT NullDevice::NullDevice() : CharacterDevice(1, 3) { } UNMAP_AFTER_INIT NullDevice::~NullDevice() { } bool NullDevice::can_read(const FileDescription&, size_t) const { return true; } KResultOr NullDevice::read(FileDescription&, u64, UserOrKernelBuffer&, size_t) { return 0; } KResultOr NullDevice::write(FileDescription&, u64, const UserOrKernelBuffer&, size_t buffer_size) { return min(static_cast(PAGE_SIZE), buffer_size); } }