You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.6 KiB
79 lines
2.6 KiB
# Kernel configuration options |
|
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc. |
|
# SPDX-License-Identifier: Apache-2.0 |
|
|
|
menu "Memory Domains" |
|
|
|
config MAX_DOMAIN_PARTITIONS |
|
int "Maximum number of partitions per memory domain" |
|
default 16 |
|
range 0 $(UINT8_MAX) |
|
depends on USERSPACE |
|
help |
|
Configure the maximum number of partitions per memory domain. |
|
|
|
config ARCH_MEM_DOMAIN_DATA |
|
bool |
|
depends on USERSPACE |
|
help |
|
This hidden option is selected by the target architecture if |
|
architecture-specific data is needed on a per memory domain basis. |
|
If so, the architecture defines a 'struct arch_mem_domain' which is |
|
embedded within every struct k_mem_domain. The architecture |
|
must also define the arch_mem_domain_init() function to set this up |
|
when a memory domain is created. |
|
|
|
Typical uses might be a set of page tables for that memory domain. |
|
|
|
config ARCH_MEM_DOMAIN_SYNCHRONOUS_API |
|
bool |
|
depends on USERSPACE |
|
help |
|
This hidden option is selected by the target architecture if |
|
modifying a memory domain's partitions at runtime, or changing |
|
a memory domain's thread membership requires synchronous calls |
|
into the architecture layer. |
|
|
|
If enabled, the architecture layer must implement the following |
|
APIs: |
|
|
|
arch_mem_domain_thread_add |
|
arch_mem_domain_thread_remove |
|
arch_mem_domain_partition_remove |
|
arch_mem_domain_partition_add |
|
|
|
It's important to note that although supervisor threads can be |
|
members of memory domains, they have no implications on supervisor |
|
thread access to memory. Memory domain APIs may only be invoked from |
|
supervisor mode. |
|
|
|
For these reasons, on uniprocessor systems unless memory access |
|
policy is managed in separate software constructions like page |
|
tables, these APIs don't need to be implemented as the underlying |
|
memory management hardware will be reprogrammed on context switch |
|
anyway. |
|
|
|
config ARCH_MEM_DOMAIN_SUPPORTS_ISOLATED_STACKS |
|
bool |
|
help |
|
This hidden option is selected by the target architecture if |
|
the architecture supports isolating thread stacks for threads |
|
within the same memory domain. |
|
|
|
config MEM_DOMAIN_ISOLATED_STACKS |
|
bool |
|
default y |
|
depends on (MMU || MPU) && ARCH_MEM_DOMAIN_SUPPORTS_ISOLATED_STACKS |
|
help |
|
If enabled, thread stacks within the same memory domains are |
|
isolated which means threads within the same memory domains |
|
have no access to others threads' stacks. |
|
|
|
If disabled, threads within the same memory domains can access |
|
other threads' stacks. |
|
|
|
Regardless of this settings, threads cannot access the stacks of |
|
threads outside of their domains. |
|
|
|
endmenu
|
|
|