File.cpp 1.1 KB

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