1#
2# Copyright 2016, Data61
3# Commonwealth Scientific and Industrial Research Organisation (CSIRO)
4# ABN 41 687 119 230.
5#
6# This software may be distributed and modified according to the terms of
7# the BSD 2-Clause license. Note that NO WARRANTY is provided.
8# See "LICENSE_BSD2.txt" for details.
9#
10# @TAG(D61_BSD)
11#
12
13menuconfig APP_PROCESS_SERVER
14    bool "RefOS Process Server"
15    default y
16    depends on LIB_SEL4 && LIB_CPIO && LIB_REFOS 
17    select HAVE_SEL4_APPS
18    help
19        RefOS Process Server application, which runs as the initial root task of the
20        entire system. The process server is a trusted component; its responsible for starting
21        and managing processes and threads, and hands the right capabilities to the right processes.
22        The process server is required for the system to start.
23
24config PROCSERV_INITIAL_MEM_SIZE
25    int "Initial memory pool size"
26    default 196608
27    depends on APP_PROCESS_SERVER
28    help
29        Initial process server allocator memory pool. In order to solve cyclic allocation dependency
30        problems, the allocator requires a static pre-allocated pool of memory in order to function.
31        If this is set too high, too much memory will be reserved for book keeping and not enough
32        RAM is left to be used to useful stuff. If this is set too low, the allocator runs out of
33        memory to book keep the allocated objects, and starts failing object allocation before all
34        the available RAM is used up.
35
36config PROCSERV_MAX_VSPACES
37    int "Max number of available page directories."
38    default 64
39    depends on APP_PROCESS_SERVER
40    help
41        Number of available statically allocated page directory objects. This is done to avoid
42        allocator fragmentation, as kernel PD objects are quite big. They can easily fail to
43        allocate if allocated dynamically. This number inheritly also limits the maximum number of
44        processes available at once in the system. The actual number of processes available is
45        MIN(PROCSERV_MAX_VSPACES, PROCSERV_MAX_PROCESSES).
46