Serenity Operating System
at master 26 lines 683 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#include <Kernel/Time/TimeManagement.h> 9 10namespace Kernel { 11 12ErrorOr<FlatPtr> Process::sys$times(Userspace<tms*> user_times) 13{ 14 VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this); 15 TRY(require_promise(Pledge::stdio)); 16 tms times = {}; 17 times.tms_utime = m_ticks_in_user; 18 times.tms_stime = m_ticks_in_kernel; 19 times.tms_cutime = m_ticks_in_user_for_dead_children; 20 times.tms_cstime = m_ticks_in_kernel_for_dead_children; 21 22 TRY(copy_to_user(user_times, &times)); 23 return TimeManagement::the().uptime_ms() & 0x7fffffff; 24} 25 26}