mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-11 01:06:01 +03:00
9201a06027
Before we start disabling acquisition of the big process lock for specific syscalls, make sure to document and assert that all the lock is held during all syscalls.
37 lines
822 B
C++
37 lines
822 B
C++
/*
|
|
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <Kernel/Process.h>
|
|
#include <Kernel/Time/TimeManagement.h>
|
|
|
|
namespace Kernel {
|
|
|
|
KResultOr<FlatPtr> Process::sys$sysconf(int name)
|
|
{
|
|
VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this)
|
|
switch (name) {
|
|
case _SC_MONOTONIC_CLOCK:
|
|
return 1;
|
|
case _SC_NPROCESSORS_CONF:
|
|
case _SC_NPROCESSORS_ONLN:
|
|
return Processor::processor_count();
|
|
case _SC_OPEN_MAX:
|
|
return fds().max_open();
|
|
case _SC_PAGESIZE:
|
|
return PAGE_SIZE;
|
|
case _SC_TTY_NAME_MAX:
|
|
return TTY_NAME_MAX;
|
|
case _SC_GETPW_R_SIZE_MAX:
|
|
return 4096; // idk
|
|
case _SC_CLK_TCK:
|
|
return TimeManagement::the().ticks_per_second();
|
|
default:
|
|
return EINVAL;
|
|
}
|
|
}
|
|
|
|
}
|