umask.cpp 454 B

123456789101112131415161718192021
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include <Kernel/Process.h>
  7. namespace Kernel {
  8. KResultOr<FlatPtr> Process::sys$umask(mode_t mask)
  9. {
  10. VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
  11. REQUIRE_PROMISE(stdio);
  12. auto old_mask = m_protected_values.umask;
  13. ProtectedDataMutationScope scope { *this };
  14. m_protected_values.umask = mask & 0777;
  15. return old_mask;
  16. }
  17. }