/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include namespace Kernel { UNMAP_AFTER_INIT NonnullRefPtr NullDevice::must_initialize() { return MUST(Device::try_create_device()); } UNMAP_AFTER_INIT NullDevice::NullDevice() : CharacterDevice(MajorAllocation::CharacterDeviceFamily::Generic, 3) { } UNMAP_AFTER_INIT NullDevice::~NullDevice() = default; bool NullDevice::can_read(OpenFileDescription const&, u64) const { return true; } ErrorOr NullDevice::read(OpenFileDescription&, u64, UserOrKernelBuffer&, size_t) { return 0; } ErrorOr NullDevice::write(OpenFileDescription&, u64, UserOrKernelBuffer const&, size_t buffer_size) { return buffer_size; } }