ioctl.cpp 594 B

12345678910111213141516171819202122232425
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <Kernel/FileSystem/FileDescription.h>
  7. #include <Kernel/Process.h>
  8. #include <LibC/sys/ioctl_numbers.h>
  9. namespace Kernel {
  10. KResultOr<FlatPtr> Process::sys$ioctl(int fd, unsigned request, FlatPtr arg)
  11. {
  12. auto description = file_description(fd);
  13. if (!description)
  14. return EBADF;
  15. if (request == FIONBIO) {
  16. description->set_blocking(arg == 0);
  17. return KSuccess;
  18. }
  19. return description->file().ioctl(*description, request, arg);
  20. }
  21. }