/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include namespace Kernel { File::File() { } File::~File() { } bool File::unref() const { if (deref_base()) return false; const_cast(*this).before_removing(); delete this; return true; } ErrorOr> File::open(int options) { auto description = OpenFileDescription::try_create(*this); if (!description.is_error()) { description.value()->set_rw_mode(options); description.value()->set_file_flags(options); } return description; } ErrorOr File::close() { return {}; } ErrorOr File::ioctl(OpenFileDescription&, unsigned, Userspace) { return ENOTTY; } ErrorOr File::mmap(Process&, OpenFileDescription&, Memory::VirtualRange const&, u64, int, bool) { return ENODEV; } ErrorOr File::attach(OpenFileDescription&) { m_attach_count++; return {}; } void File::detach(OpenFileDescription&) { m_attach_count--; } }