Serenity Operating System
at master 53 lines 1.1 kB view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <AK/StringView.h> 8#include <AK/Userspace.h> 9#include <Kernel/FileSystem/File.h> 10#include <Kernel/FileSystem/OpenFileDescription.h> 11#include <Kernel/Process.h> 12 13namespace Kernel { 14 15File::File() = default; 16File::~File() = default; 17 18ErrorOr<NonnullRefPtr<OpenFileDescription>> File::open(int options) 19{ 20 auto description = OpenFileDescription::try_create(*this); 21 if (!description.is_error()) { 22 description.value()->set_rw_mode(options); 23 description.value()->set_file_flags(options); 24 } 25 return description; 26} 27 28ErrorOr<void> File::close() 29{ 30 return {}; 31} 32 33ErrorOr<void> File::ioctl(OpenFileDescription&, unsigned, Userspace<void*>) 34{ 35 return ENOTTY; 36} 37 38ErrorOr<NonnullLockRefPtr<Memory::VMObject>> File::vmobject_for_mmap(Process&, Memory::VirtualRange const&, u64&, bool) 39{ 40 return ENODEV; 41} 42 43ErrorOr<void> File::attach(OpenFileDescription&) 44{ 45 m_attach_count++; 46 return {}; 47} 48 49void File::detach(OpenFileDescription&) 50{ 51 m_attach_count--; 52} 53}