Serenity Operating System
1/*
2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <Kernel/Process.h>
8
9namespace Kernel {
10
11ErrorOr<FlatPtr> Process::sys$umask(mode_t mask)
12{
13 VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this);
14 TRY(require_promise(Pledge::stdio));
15 return with_mutable_protected_data([&](auto& protected_data) -> ErrorOr<FlatPtr> {
16 auto old_mask = protected_data.umask;
17 protected_data.umask = mask & 0777;
18 return old_mask;
19 });
20}
21
22}