/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include namespace Kernel { KResultOr Process::sys$ioctl(int fd, unsigned request, FlatPtr arg) { VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) auto description = TRY(fds().open_file_description(fd)); if (request == FIONBIO) { int non_blocking; TRY(copy_from_user(&non_blocking, Userspace(arg))); description->set_blocking(non_blocking == 0); return KSuccess; } return description->file().ioctl(*description, request, arg); } }