Serenity Operating System
at master 22 lines 517 B view raw
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}